使用kubeadm部署kubernetes v1.16

一,准备环境信息

1,1个master节点
2,至少1个worker节点

二,所有节点

1,操作系统大于等于Centos7.5,且最小化安装
2,关闭selinux、firewalld
3,配置对应的hostname(不可以含localhost),并添加到/etc/hosts
4,确保CPU内核数量大于等于2(可以用lscpu命令查看)
5,使用root身份安装dockernfs-utilskubectlkubeadmkubelet

curl -sSL https://kuboard.cn/install-script/v1.16.0/install-kubelet.sh | sh

三,Master节点

1,如果想要重新初始化master节点,请执行kubeadm reset
2,配置环境变量

#master实际内网IP
export MASTER_IP=192.168.1.11
#dnsName,建议使用master的hostname
export APISERVER_NAME=dns-ys.ps-ef.cn
#容器所在网段,不可以和物理网络有冲突
export POD_SUBNET=10.0.0.0/16

3,更改docker源为国内源(只保留以下内容)

vi /etc/docker/daemon.json
    {"registry-mirrors": ["http://hub-mirror.c.163.com"]}
systemctl restart docker

3,开始初始化

curl -sSL https://kuboard.cn/install-script/v1.16.0/init-master.sh | sh

4,等待所有容器的状态处于Running状态

watch kubectl get pod -n kube-system -o wide

5,查看master节点初始化结果

kubectl get nodes -o wide

6,获取join命令参数,并保存输出结果

kubeadm token create --print-join-command

四,worker节点

1,如果想要重新初始化worker节点,请执行kubeadm reset
2,配置环境变量

#master实际内网IP
export MASTER_IP=192.168.1.11
#dnsName,建议使用master的hostname
export APISERVER_NAME=dns-ys.ps-ef.cn
#容器所在网段,不可以和物理网络有冲突
export POD_SUBNET=10.0.0.0/16

3,部署,将“三/6”命令的输出结果作为当前命令并执行

kubeadm join dns-ys.ps-ef.cn:6443 --token pvzau3.xm178n35z8h2sc7h     --discovery-token-ca-cert-hash sha256:c2afe94c795bf7b291cc05fc74b69056fcaa84757b47cbd536f0702e3478de5a

4,在master节点查看worker状态

kubectl get nodes -o wide

五,移除worker节点

1,在worker节点执行

kubeadm reset

2,在master节点执行

kubectl delete worker <worker节点主机名>

六,安装 Ingress Controller

1,在master节点执行

kubectl apply -f https://kuboard.cn/install-script/v1.16.0/nginx-ingress.yaml

2,详细的教程

https://github.com/nginxinc/kubernetes-ingress/blob/v1.5.3/docs/installation.md

七,安装 Kuboard(图形化web管理界面)
1,在master节点执行

kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml

2,查看运行状态,可能需要几分钟的时候才能成为Running状态

kubectl get pods -l k8s.eip.work/name=kuboard -n kube-system

3,获取token(管理员权限)

kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d

4,获取token(只读权限)

kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kuboard-viewer | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d

5,访问

http://任意一个Worker节点的IP地址:32567/

本文链接:

http://blog.ps-ef.cn/Kubernetes/42.html
1 + 8 =
快来做第一个评论的人吧~