部署k8s集群

7 篇文章 0 订阅
2 篇文章 0 订阅

首先,查看k8s和docker的版本对应关系

从版本对应关系可以看到我们要安装哪个版本的docker和k8s,本案例,我安装的docker是20.10.24 , k8s安装的是 1.22.17。注意,版本要对应,否则 执行 kubeadm init 的时候会报错!

1、修改节点主机名

hostnamectl --static set-hostname k8s-master

修改hosts 

vim /etc/hosts

添加的内容如下 :

192.168.0.107 k8s-master 
192.168.0.106 k8s-node1 
192.168.0.108 k8s-node2

2、关闭swap分区

临时关闭

swapoff -a

永久关闭:

sed -ri 's/.*swap.*/#&/' /etc/fstab

3、关闭防火墙

ufw disable

4、安装docker

1)首先删除电脑之前安装的docker

apt-get purge docker-buildx-plugin docker-ce  docker-ce-cli docker-ce-rootless-extras docker-compose-plugin containerd.io  

2)执行以下命令安装docker

apt update

apt install -y apt-transport-https ca-certificates curl gnupg-agent  software-properties-common

sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

add-apt-repository \
   "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

apt update

apt install -y docker-ce=5:20.10.24~3-0~ubuntu-focal docker-ce-cli=5:20.10.24~3-0~ubuntu-focal

docker version

切换docker下载源为国内镜像站 以及 修改cgroups

vim /etc/docker/daemon.json

打开后输入以下内容:

{
   "registry-mirrors": ["https://zfzbet67.mirror.aliyuncs.com"],
   "exec-opts": [ "native.cgroupdriver=systemd" ]
}

重启docker服务

service docker restart

5、安装k8s

apt update && apt install apt-transport-https

curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -

add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"

apt-cache madison kubelet kubectl kubeadm |grep '1.22.17-00' 

apt install -y kubelet=1.22.17-00 kubectl=1.22.17-00 kubeadm=1.22.17-00

配置禁用 swap

vim /etc/default/kubelet

添加以下内容:

KUBELET_EXTRA_ARGS="--fail-swap-on=false"

重启服务:

systemctl daemon-reload && systemctl restart kubelet

默认是pause:3.7 在kubeadm init 初始化会爆粗,所以需要pause:3.6

ctr -n k8s.io image pull registry.aliyuncs.com/google_containers/pause:3.6
ctr -n k8s.io image tag registry.aliyuncs.com/google_containers/pause:3.6 k8s.gcr.io/pause:3.6

6、添加master节点和node节点

注意 master节点和 node节点都是需要 执行 1-5一遍的

1)master 节点初始化节点

kubeadm init \
  --kubernetes-version=v1.22.17 \
  --image-repository registry.aliyuncs.com/google_containers \
  --pod-network-cidr=10.244.0.0/16 \
  --ignore-preflight-errors=Swap

当你看到如下字样是,就说明初始化成功了,请把最后那行以kubeadm join开头的命令复制下来,之后安装工作节点时要用到的,如果你不慎遗失了该命令,可以在master节点上使用kubeadm token create --print-join-command命令来重新生成一条。

接着,执行以下 命令:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

部署flannel网络

flannel是什么?它是一个专门为 k8s 设置的网络规划服务,可以让集群中的不同节点主机创建的 docker 容器都具有全集群唯一的虚拟IP地址。想要部署flannel的话直接执行下述命令即可:

kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

输出如下内容即为安装完成:

clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.extensions/kube-flannel-ds-amd64 created
daemonset.extensions/kube-flannel-ds-arm64 created
daemonset.extensions/kube-flannel-ds-arm created
daemonset.extensions/kube-flannel-ds-ppc64le created
daemonset.extensions/kube-flannel-ds-s390x created

查看namespace为 kube-flannel的pod的运行状态,如果都是 Running状态,则flannel网络就安装成功,如下图:

kubectl get pods --all-namespaces

或者  kubectl get pods -n kube-flannel 查看kube-flannel命名空间的pod,如下图:

kubectl get pods -n kube-flannel

2)添加node到集群 

将master的/etc/kubernetes/admin.conf拷贝到node上 (拷贝完成需要到node节点进行检查)

scp -r -P22 /etc/kubernetes/admin.conf  zengyanhui@192.168.0.106:/etc/kubernetes/

集群初始化时打印出来的命令,在所有node节点上输入命令:

kubeadm join 192.168.0.107:6443 --token 5eyukl.0wjrcu9c9tvg5273 \
        --discovery-token-ca-cert-hash sha256:c6eb9ffcdbf458c9d40df9d8b0258a254db16da64f8feb9dc1a947165729e3fb 
		

如果执行 kubectl get nodes 报The connection to the server localhost:8080 was refused - did you specify the right host or port 则在在master和node都执行以下命令:

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile

source /etc/profile
kubectl get nodes

7、注意事项

如果在kubeadm init的时候报错 ,则 清理上次执行产生的数据

kubeadm reset 

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值