安装K8S折腾了好久,总算成功了,下面是安装全过程。
基础环境准备
准备CentOS虚拟机4台。全新安装。
master1 10.0.37.150【最低2核,不然KubeAdmin会报错】
master2 10.0.37.151【最低2核,不然KubeAdmin会报错】
node1 10.0.37.152
node2 10.0.37.153
所有虚拟机执行步骤1-3.
1.更新Centos.(避免Docker运行报错)
yum update -y
2.运行nmtui,设置IP地址和hostname.
3.运行环境准备脚本k8s-pre.sh。(主要用途:关闭selinux,关闭防火墙,关闭swap,修改/etc/hosts,修改iptables链接,安装docker,安装kubeadm,kubectl,kubelet V1.15)
4.登陆到10.0.37.150 master1 部署k8s master
kubeadm init \
--apiserver-advertise-address 10.0.37.150 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.15.0 \
--service-cidr 10.1.0.0/16 \
--pod-network-cidr 10.244.0.0/16
注意: 提示信息中包含node 加入到当前集群的命令。在部署node的时候需要。如果失败,可以使用kubeadm reset重新部署。常见问题请参考部署常见错误文档。
5.给当前用户赋权
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
6.安装POD网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
7.登陆到10.0.37.152 & 153 部署k8s node1 & k8s node2
先安装flannel
docker pull lizhenliang/flannel:v0.11.0-amd64
再加入集群
kubeadm join 10.0.37.150:6443 --token tt7879.ridi9k0uf0adihp8 \
--discovery-token-ca-cert-hash sha256:1f381aec366336c21c4c2041882e581087b71f614f0781211f6b1bba35a359fa
8.返回10.0.37.150。运行如下命令查看集群状态,确保为Ready状态。
[root@k8s-master1 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master1 Ready master 117m v1.15.0
k8s-node1 Ready <none> 30m v1.15.0
k8s-node2 Ready <none> 27m v1.15.0
9. 在Kubernetes集群中创建一个pod,验证是否正常运行:
创建nginx容器
kubectl create deployment nginx --image=nginx
暴露对外端口
kubectl expose deployment nginx --port=80 --type=NodePort
查看nginx是否运行成功
kubectl get pod,svc
在浏览器访问。三个结点都可访问,说明集群已经搭建完成,
参考连接:https://blog.csdn.net/heian_99/article/details/103888459