kubeadm安装k8s v1.20集群
kubeadm 安装kubernetes v1.20环境准备安装Docker安装kubeadm , kubectl , kubelet部署master向集群添加节点部署容器网络环境准备角色IPk8s-master172.16.10.50k8s-node1172.16.10.51k8s-node2172.16.10.52关闭防火墙:$ systemctl stop firewalld$ system
·
环境准备
角色 | IP |
---|---|
k8s-master | 172.16.10.50 |
k8s-node1 | 172.16.10.51 |
k8s-node2 | 172.16.10.52 |
关闭防火墙:
$ systemctl stop firewalld
$ systemctl disable firewalld
关闭selinux:
$ sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
$ setenforce 0 # 临时
关闭swap:
$ swapoff -a # 临时
$ vim /etc/fstab # 永久
设置主机名:
$ hostnamectl set-hostname <hostname>
在master添加hosts:
$ cat >> /etc/hosts << EOF
172.16.10.50 k8s-master
172.16.10.51 k8s-node1
172.16.10.52 k8s-node2
EOF
将桥接的IPv4流量传递到iptables的链:
$ cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
$ sysctl --system # 生效
时间同步:
$ yum install ntpdate -y
$ ntpdate time.google.com # 我的环境是经过科学上网的, 境内使用ntp.aliyun.com即可
安装Docker
#在所有节点上执行
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
安装kubeadm , kubectl , kubelet
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
yum -y install kubeadm-1.20.0 kubectl-1.20.0 kubelet-1.20.0
systemctl enable kubelet
部署master
kubeadm init \
--apiserver-advertise-address=172.16.10.50 \
--kubernetes-version v1.20.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all
#安装完成之后执行如下
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
向集群添加节点
kubeadm join 172.16.10.50:6443 --token 7gqt13.kncw9hg5085iwclx \
--discovery-token-ca-cert-hash sha256:66fbfcf18649a5841474c288888888888888898ed690e1754437be35a01
部署容器网络
我们这里使用calico,参考官网
https://docs.projectcalico.org/getting-started/kubernetes/
wget https://docs.projectcalico.org/manifests/calico.yaml
下载完后需要修改里面定义Pod网络(CALICO_IPV4POOL_CIDR),与前面kubeadm init指定的要一样
kubectl apply -f calico.yaml
kubectl get pods -n kube-system
kubectl get nodes
当看到所有的node都是ready状态后,就部署成功了, 可以尝试创建一个pod;
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
部署完成!
额外注意:
- 部署过程尽量参考官网,kubeadm这种部署方式除了kubelet通过系统进程守护,其他都是容器部署;
- 网络插件可以使用flannel或者calico,都是可以,网络没有enable之前node状态不会ready
- 中国境内,要么科学上网, 要么切换阿里云镜像源
- 部署成功之后,IP地址不要随便更改,否则导致证书失效
- 其他的,暂时没想起来
更多推荐
已为社区贡献4条内容
所有评论(0)