前提:
1、操作系统Centos 7.4
2、通过阿里云相关镜像源安装
操作步骤:
1、修改主机名
hostnamectl set-hostname hanyu1
vi /etc/resolv.conf
nameserver 10.150.0.251
2、安装docker
安装必要的工具
yum install -y yum-utils device-mapper-persistent-data lvm2
配置官方docker源或者aliyun docker源
或者
查询docker版本(否则yum install默认安装最新的版本)
yum list docker-ce --showduplicates | sort -r
安装指定版本docker
yum -y install docker-ce-18.09.3-3.el7
启动docker
systemctl enable docker && systemctl start docker
查询docker服务状态
systemctl status docker
查看docker版本
docker version
安装kubelet、kubeadm 和 kubectl
配置kubernetes.repo的源,由于官方源国内无法访问,这里使用阿里云yum源
在所有节点上安装指定版本 kubelet、kubeadm 和 kubectl(这里我安装1.16.0,目前最新版本)
yum list kubectl --showduplicates | sort -r
yum list kubeadm --showduplicates | sort -r
yum list kubelet --showduplicates | sort -r
yum install -y kubectl-1.16.0-0 kubeadm-1.16.0-0 kubelet-1.16.0-0
启动kubelet服务
systemctl enable kubelet && systemctl start kubelet
关闭swap分区
swapoff -a
初始化master节点
按照kubeadm init成功后打印提示,继续操作:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown (id -g) $HOME/.kube/config
kubectl get nodes查询到节点处于NotReady状态,是因为网络插件还未就位,也就是这里要求运行的
如果要暂时忽略让节点Ready,将如下文件的--network-plugin=cni字段去掉, (该文件是在kubeadm init或者kubeadm join过程中生成的), 修改完后重启kubelet即可(systemctl restart kubelet)
join node
查询所有node及pod状态
[root@hanyu1 ~]# kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
hanyu1 Ready master 5d22h v1.16.0 10.20.0.210 <none> CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://18.9.3
hanyu2 Ready <none> 5d22h v1.16.0 10.20.0.212 <none> CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://18.9.3
hanyu3 Ready <none> 5d19h v1.16.0 10.20.0.213 <none> CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://18.9.3
hanyu4 Ready <none> 5d18h v1.16.0 10.20.0.214 <none> CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://18.9.3
hanyu5 Ready <none> 4h9m v1.16.0 10.20.0.215 <none> CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://18.9.3
hanyu6 Ready <none> 4h9m v1.16.0 10.20.0.211 <none> CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://18.9.3
[root@hanyu1 ~]# kubectl get pod --all-namespaces -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system coredns-58cc8c89f4-nx8p7 1/1 Running 3 5d22h 172.17.0.2 hanyu1 <none> <none>
kube-system coredns-58cc8c89f4-tpd9h 1/1 Running 3 5d22h 172.17.0.3 hanyu1 <none> <none>
kube-system etcd-hanyu1 1/1 Running 3 5d22h 10.20.0.210 hanyu1 <none> <none>
kube-system kube-apiserver-hanyu1 1/1 Running 3 5d22h 10.20.0.210 hanyu1 <none> <none>
kube-system kube-controller-manager-hanyu1 1/1 Running 3 5d22h 10.20.0.210 hanyu1 <none> <none>
kube-system kube-proxy-cd6lb 1/1 Running 1 5d18h 10.20.0.214 hanyu4 <none> <none>
kube-system kube-proxy-grp6n 1/1 Running 1 5d19h 10.20.0.213 hanyu3 <none> <none>
kube-system kube-proxy-kthlt 1/1 Running 0 4h11m 10.20.0.211 hanyu6 <none> <none>
kube-system kube-proxy-vpx6w 1/1 Running 1 5d22h 10.20.0.212 hanyu2 <none> <none>
kube-system kube-proxy-wqgrc 1/1 Running 0 4h11m 10.20.0.215 hanyu5 <none> <none>
kube-system kube-proxy-xvtjc 1/1 Running 3 5d22h 10.20.0.210 hanyu1 <none> <none>
kube-system kube-scheduler-hanyu1 1/1 Running 3 5d22h 10.20.0.210 hanyu1 <none> <none>