【愚公系列】2022年04月 Kubernetes容器基本环境的配置
【摘要】 前言软件版本:操作系统:ubuntu22.04容器引擎:Docker 20.10.14Kubernetes:v1.23.6K8S官网:https://kubernetes.io/docs/setup/最新版高可用安装:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability...
前言
软件版本:
- 操作系统:ubuntu22.04
- 容器引擎:Docker 20.10.14
- Kubernetes:v1.23.6
K8S官网:https://kubernetes.io/docs/setup/
最新版高可用安装:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/
一、集群规划
IP地址 | 功能/主机 | 服务 | 安装程序包 | 角色 |
---|---|---|---|---|
192.168.16.133 | k8s-master01.ilinux.io k8s-master01 | docker、kubelet、kube-proxy、flannel、etcd、kube-apiserver、kube-controller-manager、kube-scheduler | kubelet(pod形式)、kube-proxy(pod形式)、flannel(pod形式)、kubeadm、kubectl、docker | master |
192.168.16.134 | k8s-node01.ilinux.io k8s-node01 | docker、kubelet、kube-proxy、flannel、etcd | kubelet(pod形式)、kube-proxy(pod形式)、flannel(pod形式)、kubectl、docker | node01 |
二、修改主机名
hostnamectl set-hostname k8s-master01
三、配置host
sudo gedit /etc/hosts
#配置host如下
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.16.133 k8s-master01.ilinux.io k8s-master01 k8s-api.ilinux.io
192.168.16.134 k8s-node01.ilinux.io k8s-node01
四、时钟同步
systemctl start chronyd;systemctl enable chronyd
chronyc sources #看连接状态
chronyc tracking #看同步状态,时间差
chronyc -a makestep #立即同步时间
五、关闭相应服务
1.关闭防火墙
ubuntu是自动关闭防火墙的,查看命令如下:
sudo ufw status
2.关闭swap
sudo swapoff -a
sudo gedit /etc/fstab
3.配置NAT转发
modprobe br_netfilter
cat /etc/profile
cat /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
sudo sysctl -p /etc/sysctl.d/k8s.conf #执行同步参数
4.SSH密钥免密
sudo apt-get install openssh-server
ssh-keygen -t rsa
此时会在/home/ubuntu/.ssh目录下生成密钥对
ll .ssh
上传公钥到对应服务器
ssh-copy-id 192.168.16.133
ssh-copy-id 192.168.16.134
六、安装k8s
# 使得 apt 支持 ssl 传输
apt-get update && apt-get install -y apt-transport-https
# 下载 gpg 密钥
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
# 添加 k8s 镜像源
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
# 更新源列表
apt-get update
# 下载 kubectl,kubeadm以及 kubelet
apt-get install -y kubelet kubeadm kubectl
七、初始化 master 节点
kubeadm init \
--apiserver-advertise-address=192.168.16.133 \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16
这里介绍一下一些常用参数的含义:
- –apiserver-advertise-address: k8s 中的主要服务apiserver的部署地址,填自己的管理节点 ip
- –image-repository: 拉取的 docker 镜像源,因为初始化的时候kubeadm会去拉 k8s 的很多组件来进行部署,所以需要指定国内镜像源,下不然会拉取不到镜像。
- –pod-network-cidr: 这个是 k8s 采用的节点网络,因为我们将要使用flannel作为 k8s 的网络,所以这里填10.244.0.0/16就好
- –kubernetes-version: 这个是用来指定你要部署的 k8s 版本的,一般不用填,不过如果初始化过程中出现了因为版本不对导致的安装错误的话,可以用这个参数手动指定。
- –ignore-preflight-errors: 忽略初始化时遇到的错误,比如说我想忽略 cpu 数量不够 2 核引起的错误,就可以用–ignore-preflight-errors=CpuNum。错误名称在初始化错误时会给出来。
八、Kubernetes的其他用法
1.集群使用的kubeconfig
在k8s-master01上执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
2.集群部署网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
3.api高可用,增加控制平台(暂不操作)
kubeadm join k8s-api.ilinux.io:6443 --token 5ppzww.4lv5mi6q59gu46mo --discovery-token-ca-cert-hash sha256:b5054b0ddbbc0f048f569fc732ce23ae021cf21bb1cee38c7a2dddd5a0f73a43 --control-plane
4.集群加入node节点
kubeadm join k8s-api.ilinux.io:6443 --token 5ppzww.4lv5mi6q59gu46mo --discovery-token-ca-cert-hash sha256:b5054b0ddbbc0f048f569fc732ce23ae021cf21bb1cee38c7a2dddd5a0f73a43
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)