安装--centos7上使用kubeadm安装三节点的k8s集群

2023-11-14

安装文档:https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
参考:
https://blog.csdn.net/qq_34041723/article/details/115842607

1、集群规划
node002 192.168.20.132 master
node003 192.168.20.133 node1
node004 192.168.20.134 node2
资源:3c4g100G
系统:centos7.6(内核3.10.0)
版本:
docker-v18.06.1
k8s-v1.18.0

以下版本同样适用该步骤:
docker-v20.10.18
k8s-v1.21.14

2、准备环境:
#在初始化操作基础上再做以下操作:
# 关闭swap
swapoff -a  # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久
# 在master添加hosts
cat >> /etc/hosts << EOF
192.168.20.132 node002
192.168.20.133 node003
192.168.20.134 node004
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.windows.com


3、所有节点安装Docker/kubeadm/kubelet
(1)安装Docker
$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
$ yum -y install docker-ce-18.06.1.ce-3.el7
$ systemctl enable docker && systemctl start docker
$ docker --version
Docker version 18.06.1-ce, build e68fc7a
$ cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
$ systemctl daemon-reload
$ systemctl restart docker


(2)添加阿里云YUM软件源
$ cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

(3)安装kubeadm,kubelet和kubectl
$ yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
$ systemctl enable kubelet

4、部署master
#在master执行
$ kubeadm init \
  --apiserver-advertise-address=192.168.20.132 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.18.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16

使用kubectl工具:(kubeadm init输出的kubectl相关命令)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ kubectl get nodes


5、加入Kubernetes Node
#在node上执行(kubeadm init输出的kubeadm join命令)
kubeadm join 192.168.20.132:6443 --token to8n1j.m95bbrlvpp49cbfc \
    --discovery-token-ca-cert-hash sha256:b2140fdec7032372680e0eee83cc17d6a233f4991f28cacb0129c4f99760e227 

6. 部署CNI网络插件
#安装calico
kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml

#验证所有数据
[root@node002 ~]#kubectl get po -A
NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-75d555c48-tk5sd   1/1     Running   0          2m4s
kube-system   calico-node-79s9v                         1/1     Running   0          2m4s
kube-system   calico-node-89chs                         1/1     Running   0          2m4s
kube-system   calico-node-fsh4n                         1/1     Running   0          2m4s
kube-system   coredns-7ff77c879f-cmsz9                  1/1     Running   0          13m
kube-system   coredns-7ff77c879f-ggrvd                  1/1     Running   0          13m
kube-system   etcd-node002                              1/1     Running   0          13m
kube-system   kube-apiserver-node002                    1/1     Running   0          13m
kube-system   kube-controller-manager-node002           1/1     Running   0          13m
kube-system   kube-proxy-b8ccw                          1/1     Running   0          13m
kube-system   kube-proxy-dwn2h                          1/1     Running   0          10m
kube-system   kube-proxy-ndxpr                          1/1     Running   0          10m
kube-system   kube-scheduler-node002                    1/1     Running   0          13m
[root@node002 ~]#kubectl get nodes
NAME      STATUS   ROLES    AGE   VERSION
node002   Ready    master   14m   v1.18.0
node003   Ready    <none>   10m   v1.18.0
node004   Ready    <none>   10m   v1.18.0

7. 测试kubernetes集群
在Kubernetes集群中创建一个pod,验证是否正常运行:
$ kubectl create deployment nginx --image=nginx
$ kubectl expose deployment nginx --port=80 --type=NodePort
$ kubectl get pod,svc
NAME                        READY   STATUS    RESTARTS   AGE
pod/nginx-f89759699-l4tjt   1/1     Running   0          21m

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        40m
service/nginx        NodePort    10.96.147.252   <none>        80:31331/TCP   21m
#验证:
http://192.168.20.132:31331/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安装--centos7上使用kubeadm安装三节点的k8s集群 的相关文章

随机推荐