规划

这一次部署K8S的环境,目的在于做CKA的实验,因此,资源用量比较小。

计算机名IPCPUMEMDISKUSERNAME
k8smaster192.168.10.204640ruilin
k8snode01192.168.10.212416ruilin
k8snode02192.168.10.222416ruilin

部署虚拟机

因为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

Categories:

Tags: