目标
在没有互联网到企业内网部署Kubernetes集群
目录
2020年2月21日更新:
为了简化安装过程,我将第一篇文章做好的离线资源包上传百度云,大家可以下载直接使用。https://pan.baidu.com/s/176xRjEM8PC698zVH9TdacA 提取码: bhmn
为了大家学习方便,请见Kubernetes离线部署视频教程
环境
- CentOS Linux release 7.7.1908 (Core)
- Docker 19.03.5
- Kubernetes 1.17.1
- Master节点 192.168.1.30
- Worker节点 192.168.1.31
安装Master
在master
节点上执行。
-
scp
命令上传资源包到/root
目录下解压,192.168.1.30
改为你节点的IP。
scp k8sOfflineSetup.tar.gz root@192.168.1.30:/root
- 解压到
/root/k8sOfflineSetup
目录
⚠️注意:解压路径不能修改。
mkdir /root/k8sOfflineSetup
tar -xzvf k8sOfflineSetup.tar.gz -C /root/k8sOfflineSetup
- 设置参数并安装
# master节点的主机名
export HOSTNAME=k8s-master
# kubernetes apiserver的主机地址
export APISERVER_NAME=apiserver.k8s.com
# 集群中master节点的ip地址
export MASTER_IP=192.168.1.30
# Pod 使用的网段
export POD_SUBNET=10.11.10.0/16
cd /root/k8sOfflineSetup
./setup_master.sh
安装Worker
在worker
节点上执行。
-
scp
命令上传资源包到/root
目录下解压,192.168.1.31
改为你节点的IP。
scp k8sOfflineSetup.tar.gz root@192.168.1.31:/root
- 解压到
/root/k8sOfflineSetup
目录
⚠️注意:解压路径不能修改。
mkdir /root/k8sOfflineSetup
tar -xzvf k8sOfflineSetup.tar.gz -C /root/k8sOfflineSetup
- 获取加入master的参数
⚠️注意:是在master
节点上执行。
# 在 master 节点执行
kubeadm token create --print-join-command
# 得到token和cert,这两个参数在2个小时内可以重复使用,超过以后就得再次生成
kubeadm join apiserver.k8s.com --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303
- 设置参数并安装
# worker节点的主机名
export HOSTNAME=k8s-worker2
# kubernetes apiserver的主机地址
export APISERVER_NAME=apiserver.k8s.com
# 集群中master节点的ip地址
export MASTER_IP=192.168.1.30
# 加入master的token
export TOKEN=35jn30.4ru763yqfvp4j89m
# 加入master的证书
export CERT=sha256:4c720c8dbf3f91a542ee892188108f99ff80ba1025099a8210145917b1f13a13
cd /root/k8sOfflineSetup
./setup_worker.sh
完成
现在你可以在master节点,执行kubectl get nodes
看到所有节点都在线了,是不是非常快就完成部署了。
访问Kuboard
Kuboard是一个非常方便的web管理界面,安装完以后可以通过http://任意节点IP:32567/访问。详细使用请参考 <www.kuboard.cn>
获取登陆Token
# 在 Master 节点上执行此命令
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
访问Kubernetes Dashboard
请参加我的另一篇文章:从零开始部署Kubernetes v1.17.1集群(四)部署可视化管理工具
常见问题
Pod启动报镜像拉取失败
有些部署文件中设置了镜像拉取策略为imagePullPolicy:Always
,意思是每次启动都要拉取镜像,修改为imagePullPolicy:IfNotPresent
如果不存在才拉取就行了。不过你应该记得要把每个节点包括master和worker都导入镜像才行。
网友评论