持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天,点击查看活动详情
上一节主要讲解了怎么安装Matser节点,那么这一节,将带领大家怎么安装Node节点,
Node
-
配置环境,参考Master
-
安装containerd,参考Master
-
安装kubectl、kubelet、kubeadm工具,参考Master
-
安装网络插件,参考Master
#设置crictl cat << EOF >> /etc/crictl.yaml runtime-endpoint: unix:///var/run/containerd/containerd.sock image-endpoint: unix:///var/run/containerd/containerd.sock timeout: 10 debug: false EOF # 拉取镜像 crictl pull registry.aliyuncs.com/google_containers/kube-proxy:v1.23.1 crictl pull registry.aliyuncs.com/google_containers/pause:3.6 ctr -n k8s.io i ls -q crictl images crictl ps -a mkdir -p $HOME/.kube sudo cp -i master:/etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Join
join操作将slaver节点加入到集群中。
-
生成永久token,生成的token类似:q7zp90.hywock1tphsdrvkq,然后他就会生成一条默认的join语句。
kubeadm token create --ttl 0 --print-join-command使用
kubeadm token list查看所有token[root@master k8s]# kubeadm token list TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS q7zp90.hywock1tphsdrvkq <forever> <never> authentication,signing <none> system:bootstrappers:kubeadm:default-node-token -
进行join
使用第一步生成join语句直接在node节点上执行
kubeadm join 8.16.0.67:6443 --token q7zp90.hywock1tphsdrvkq --discovery-token-ca-cert-hash sha256:266cfd8963dbefe1cfa0b2c965896d185182133b908d2d24c6f214356e1822fc认证方式参考:kubeadm join
测试
至此大功就告成啦。🎉🎉🎉
可以采用kubectl get node -o wide命令查看所有节点
[root@master k8s]# kubectl get node
NAME STATUS ROLES AGE VERSION
master Ready control-plane,master 2d v1.23.1
slaver Ready <none> 44h v1.23.1
那就安装一个nginx来测试一下吧。
创建一个nginx的deployment并且将其expose对外暴露。
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
等待一段时间,安装完成后,deployment、pod、service将会各生成一个。
使用kubectl get svc,pod,deploy -o wide便可查看
[root@master k8s]# kubectl get svc,pod,deploy
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d
service/nginx NodePort 10.109.59.210 <none> 80:31732/TCP 33h
NAME READY STATUS RESTARTS AGE
pod/nginx-85b98978db-9z9ck 1/1 Running 0 33h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/nginx 1/1 1 1 33h
访问nginx地址,成功