规划
这一次部署K8S的环境,目的在于做CKA的实验,因此,资源用量比较小。
计算机名 | IP | CPU | MEM | DISK | USERNAME |
---|---|---|---|---|---|
k8smaster | 192.168.10.20 | 4 | 6 | 40 | ruilin |
k8snode01 | 192.168.10.21 | 2 | 4 | 16 | ruilin |
k8snode02 | 192.168.10.22 | 2 | 4 | 16 | ruilin |
部署虚拟机
因为CKA的考试环境为Ubuntu,因此,三台虚拟机也都选择了 UBUNTU 20.04。为了更轻量化,镜像选择了命令行的Server版本。
安装Docker
更新安装基础软件
$ apt-get update && sudo apt-get install -y apt-transport-https curl
$ apt-get -y install apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
$ add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
$ apt-get update
$ apt-get install docker-ce
安装Kubeadm
$ add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"
$ apt-get update
$ apt install -y kubelet=1.19.4-00 kubectl=1.19.4-00 kubeadm=1.19.4-00 --allow-unauthenticated
若提示如下错误:
GPG error: https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 6A030B21BA07F4FB NO_PUBKEY 8B57C5C2836F4BEB
解决方法:
$ apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 6A030B21BA07F4FB(更换为实际的PUBKEY即可)
$ apt-mark hold kubelet kubeadm kubectl docker
$ systemctl daemon-reload
$ systemctl restart kubelet
配置常见功能
关闭swap
$ swapoff -a
关闭防火墙
$ ufw disable
配置网络
$ cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
>> net.bridge.bridge-nf-call-ip6tables = 1
>> net.bridge.bridge-nf-call-iptables = 1
>> EOF
>> sysctl –system
修改/etc/hosts
192.168.10.20 k8smaster
192.168.10.21 k8snode01
192.168.10.22 k8snode02
开启集群
在master节点上 初始化kubeadm
$ kubeadm init --apiserver-advertise-address=192.168.10.20 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
在master节点上下载flannel.yml
$ kubectl apply -f kube-flannel.yml
记住上面在master上的初始化后结尾的带token的命令,和下面的相似:
在node节点上链接master节点:
$ kubeadm join 192.168.2.131:6443 --token xxpowp.b8zoas29foe15zuz \
--discovery-token-ca-cert-hash sha256:9025b306232c82bb8f5a572d0453247d6db95e5c70dea1e90c63a5e8b8309af5
验证集群
$ kubectl get nodes

$ kubectl get pods -A

以上,环境就部署完了,可以做试验了~
reference:https://blog.csdn.net/u011127242/article/details/111413292