目標
在沒有互聯(lián)網(wǎng)到企業(yè)內(nèi)網(wǎng)部署Kubernetes集群
目錄
2020年2月21日更新:
為了簡化安裝過程,我將第一篇文章做好的離線資源包上傳百度云,大家可以下載直接使用。https://pan.baidu.com/s/176xRjEM8PC698zVH9TdacA 提取碼: bhmn
為了大家學習方便,請見Kubernetes離線部署視頻教程
環(huán)境
- CentOS Linux release 7.7.1908 (Core)
- Docker 19.03.5
- Kubernetes 1.17.1
- Master節(jié)點 192.168.1.30
- Worker節(jié)點 192.168.1.31
安裝Master
在master節(jié)點上執(zhí)行。
-
scp命令上傳資源包到/root目錄下解壓,192.168.1.30改為你節(jié)點的IP。
scp k8sOfflineSetup.tar.gz root@192.168.1.30:/root
- 解壓到
/root/k8sOfflineSetup目錄
??注意:解壓路徑不能修改。
mkdir /root/k8sOfflineSetup
tar -xzvf k8sOfflineSetup.tar.gz -C /root/k8sOfflineSetup
- 設置參數(shù)并安裝
# master節(jié)點的主機名
export HOSTNAME=k8s-master
# kubernetes apiserver的主機地址
export APISERVER_NAME=apiserver.k8s.com
# 集群中master節(jié)點的ip地址
export MASTER_IP=192.168.1.30
# Pod 使用的網(wǎng)段
export POD_SUBNET=10.11.10.0/16
cd /root/k8sOfflineSetup
./setup_master.sh
安裝Worker
在worker節(jié)點上執(zhí)行。
-
scp命令上傳資源包到/root目錄下解壓,192.168.1.31改為你節(jié)點的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的參數(shù)
??注意:是在master節(jié)點上執(zhí)行。
# 在 master 節(jié)點執(zhí)行
kubeadm token create --print-join-command
# 得到token和cert,這兩個參數(shù)在2個小時內(nèi)可以重復使用,超過以后就得再次生成
kubeadm join apiserver.k8s.com --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303
- 設置參數(shù)并安裝
# worker節(jié)點的主機名
export HOSTNAME=k8s-worker2
# kubernetes apiserver的主機地址
export APISERVER_NAME=apiserver.k8s.com
# 集群中master節(jié)點的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
完成
現(xiàn)在你可以在master節(jié)點,執(zhí)行kubectl get nodes看到所有節(jié)點都在線了,是不是非??炀屯瓿刹渴鹆?。
訪問Kuboard
Kuboard是一個非常方便的web管理界面,安裝完以后可以通過http://任意節(jié)點IP:32567/訪問。詳細使用請參考 <www.kuboard.cn>
獲取登陸Token
# 在 Master 節(jié)點上執(zhí)行此命令
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如果不存在才拉取就行了。不過你應該記得要把每個節(jié)點包括master和worker都導入鏡像才行。