Ubuntu 20.04搭建K8S集群:
注:
1、该kubenetes操作仍然使用docker为容器进行时
2、swap需要关闭
安装(所有node上都执行):
swapoff -a
/etc/fstab里记得也注掉
vi /etc/hosts
10.0.0.3 mingk8s01
:wq
vi /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
vm.swappiness = 0
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
:wq
sysctl -p /etc/sysctl.d/k8s.conf
vi /etc/apt/sources.list.d/kubernetes.list
deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable
deb http://mirrors.aliyun.com/ubuntu focal main restricted
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
:wq
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
apt-get update
apt-get install -y docker-ce
vi /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
:wq
systemctl restart docker
apt-get install kubeadm kubectl kubelet
systemctl enable kubelet
初始化master节点(仅master上执行):
kubeadm config print init-defaults > kubeadm.yaml
vi kubeadm.yaml
advertiseAddress: 10.0.0.3 (默认为1.2.3.4,改为本机ip)
name: mingk8s01 (本机名)
imageRepository: registry.aliyuncs.com/google_containers (默认为k8s.gcr.io)
podSubnet: 10.244.0.0/16 (指定pod网段)
:wq
kubeadm config images pull --config kubeadm.yaml
kubeadm init --config kubeadm.yaml
出现successfully
另外会显示加入该集群命令
mkdir ~/.kube
cp -rv /etc/kubernetes/admin.conf ~/.kube/config
chown root:root ~/.kube/config
此时看master为NotReady状态(因为没有网络插件)
kubectl get nodes
安装calico网络插件(该步只需在master上操作)
curl https://docs.projectcalico.org/manifests/calico.yaml -0 (最后0为数字)
kubectl apply -f calico.yaml
查看calico pods状态(需要5~10分钟完成)
kubectl get pods -n kube-system
再看master状态应该就ready了
kubectl get nodes
其它node加入集群:
kubeadm join 10.0.0.3:6443 --token yio1o6.zq85eudygtevzvd1 --discovery-token-ca-cert-hash sha256:318eebe90133c8f9892ac00c072c584025f36f1b6dae3ae4b5948f8c981bd90f
如果再次加入需要先reset
#kubeadm reset
验证(在master上执行):