kubeadm方式部署Kubernetes集群與Dashboard

1. 集群規(guī)劃及基礎(chǔ)操作

1.1. 主機名及IP地址規(guī)劃

主機名 IP地址
k8s-master 172.25.1.100
k8s-node1 172.25.1.101
k8s-node2 172.25.1.102

1.2. 基礎(chǔ)環(huán)境優(yōu)化

修改主機名

安裝上述規(guī)劃在服務(wù)器上執(zhí)行命令,將主機名與IP地址修改對應(yīng)拴鸵。

hostnamectl set-hostname k8s-master

修改網(wǎng)卡地址

按照規(guī)劃將IP地址與主機名修改對應(yīng)。

vim /etc/sysconfig/network-scripts/ifcfg-eth0
systemctl restart  network

添加host解析

cat >> /etc/hosts << EOF
172.25.1.100  k8s-master
172.25.1.101  k8s-node01
172.25.1.102  k8s-node02
EOF

關(guān)閉selinux與防火墻

# 關(guān)閉防火墻
systemctl stop firewalld && systemctl disable firewalld

# 關(guān)閉Selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
setenforce 0  # 臨時

關(guān)閉swap并同步時間

# 關(guān)閉swap
swapoff -a  # 臨時
sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久

# 時間同步
yum install ntpdate -y
ntpdate time.windows.com

2. 安裝軟件

2.1. 全部主機執(zhí)行的操作

安裝并配置docker

# 下載docker源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

# 安裝docker
yum -y install docker-ce

# 啟動docker并設(shè)置開機啟動
systemctl enable docker && systemctl start docker

# 優(yōu)化下載源
cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF

systemctl restart docker

docker info

安裝kubeadm、kubelet苞轿、kubectl

# 添加阿里云的kubernetes源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

# 下載kubelet逛万、kubeadm麦射、kubectl 
yum install -y kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0

# 設(shè)置kubelet開機自啟
systemctl enable kubelet

2.2. k8s-master執(zhí)行

kubeadm init \
  --apiserver-advertise-address=172.25.1.100 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.21.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16 \
  --ignore-preflight-errors=all

--apiserver-advertise-address 集群通告地址,這里表示為master地址
--image-repository 由于默認拉取鏡像地址k8s.gcr.io國內(nèi)無法訪問敦腔,這里指定阿里云鏡像倉庫地址
--kubernetes-version K8s版本,需要與剛才安裝的保持一致
--service-cidr k8s中service的地址范圍
--pod-network-cidr k8s中pod網(wǎng)絡(luò)的地址范圍恨溜,需要與部署的CNI網(wǎng)絡(luò)插件yaml中的地址保持一致符衔。

上述命令執(zhí)行完畢之后會生成一個類似于如下形式的命令:kubeadm join 172.25.1.100:6443 --token q47twe.qa81kuygbhs3uqzy \ --discovery-token-ca-cert-hash sha256:63e97ccc0b88ccc471ffe07c8e1cbac2751b09acbb5a25f77f2e09301403f76f 這個命令需要在node節(jié)點上執(zhí)行,用來使node節(jié)點加入集群的糟袁,這里先記下柏腻。

初始化命令執(zhí)行完畢后同樣會生成以下命令,該命令是用來讓kubectl找到集群所使用的系吭,需要在k8s-master節(jié)點上執(zhí)行五嫂。

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

2.3. k8s-node執(zhí)行

這里提到的命令需要在k8s-node01、k8s-node02上分別執(zhí)行肯尺。

kubeadm join 172.25.1.100:6443 --token q47twe.qa81kuygbhs3uqzy \
--discovery-token-ca-cert-hash sha256:63e97ccc0b88ccc471ffe07c8e1cbac2751b09acbb5a25f77f2e09301403f76f

執(zhí)行完成這條命令沃缘,就行相當將執(zhí)行命令的主機以node的身份加入到了剛才k8s-maser創(chuàng)建的集群中。
通過kubectl get nodes命令可以看到當前節(jié)點還是NotReady狀態(tài)则吟,這時需要安裝k8s的網(wǎng)絡(luò)查件槐臀,安裝完成后集群狀態(tài)將進入Ready狀態(tài)。

節(jié)點狀態(tài)

3. 部署網(wǎng)絡(luò)組建Calico并修復CoreDNS

下滿提到的所有命令都是需要在k8s-master節(jié)點上運行的氓仲。

Calico是一個純?nèi)龑拥臄?shù)據(jù)中心網(wǎng)絡(luò)方案水慨,是目前比較主流的k8s網(wǎng)絡(luò)解決方案得糜。通過以下命令下載部署calico的yaml文件,這里需要注意的是需要修改yaml中pod網(wǎng)絡(luò)配置選項CALICO_IPV4POOL_CIDR的地址與kubeadm init--pod-network-cidr指定的地址一樣晰洒。

CoreDNS是k8s集群內(nèi)部實現(xiàn)DNS解析的重要組件朝抖,但是因為yaml內(nèi)中的鏡像名稱有問題,后期需要手動干預(yù)一下才能正常使用谍珊。

wget https://docs.projectcalico.org/manifests/calico.yaml

# 更改CALICO_IPV4POOL_CIDR地址
vim calico.yaml

# 部署calico
kubectl apply -f calico.yaml

稍等片刻后治宣,執(zhí)行kubectl get pod -A命令查詢pod運行情況。

calico-pod狀態(tài)

可以看到calico個別pod已經(jīng)Running狀態(tài)砌滞,這是需要稍微等待一下所有的calico的pod全部Running侮邀,那么,k8s集群狀態(tài)也就正常了贝润。

但是在上圖中也可以看到绊茧,還有coredns的pod還沒有創(chuàng)建成功,這是因為yaml中的鏡像名稱有問題打掘,這是需要手動干預(yù)一下按傅,通過如下命令幾個完成修復。

docker pull registry.aliyuncs.com/google_containers/coredns:1.8.0
docker tag registry.aliyuncs.com/google_containers/coredns:1.8.0 registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0

上述命令執(zhí)行完成之后需要稍微等待一會胧卤,或者通過kubectl delete pod -n kube-system coredns-xxxxxxxpodnamexxxxx刪除對應(yīng)的pod加快啟動唯绍。

此時輸入命令檢查k8s集群狀態(tài),發(fā)現(xiàn)所有節(jié)點都應(yīng)已經(jīng)正常運行枝誊,那么到這里k8s集群就已經(jīng)搭建成功了况芒,基礎(chǔ)功能就已經(jīng)可以使用了。

node狀態(tài)及pod狀態(tài)

部署Dashboard面板

Dashboard是一個官方提供的UI叶撒,可用于基本k8s資源管理绝骚。執(zhí)行如下命令進行安裝,這里需要需要注意祠够,為了方便訪問压汪,可以更改Dashboard的service類型來方便訪問。

# 獲取yaml
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml

# 創(chuàng)建用戶
kubectl create serviceaccount dashboard-admin -n kube-system
# 用戶授權(quán)
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
# 獲取用戶Token
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

訪問Dashboard地址為:https://nodeIP:30001 這里需要注意古瓤,使用Google瀏覽器無法打開頁面止剖,可以使用Firefox瀏覽器進行打開。訪問頁面的token通過以上命令獲取落君。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末穿香,一起剝皮案震驚了整個濱河市污它,隨后出現(xiàn)的幾起案子猾普,更是在濱河造成了極大的恐慌,老刑警劉巖瞄桨,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纹冤,死亡現(xiàn)場離奇詭異洒宝,居然都是意外死亡购公,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門雁歌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宏浩,“玉大人,你說我怎么就攤上這事将宪。” “怎么了橡庞?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵较坛,是天一觀的道長。 經(jīng)常有香客問我扒最,道長丑勤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任吧趣,我火速辦了婚禮法竞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘强挫。我一直安慰自己岔霸,他們只是感情好,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布俯渤。 她就那樣靜靜地躺著呆细,像睡著了一般。 火紅的嫁衣襯著肌膚如雪八匠。 梳的紋絲不亂的頭發(fā)上絮爷,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音梨树,去河邊找鬼坑夯。 笑死,一個胖子當著我的面吹牛抡四,可吹牛的內(nèi)容都是我干的柜蜈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼指巡,長吁一口氣:“原來是場噩夢啊……” “哼跨释!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起厌处,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鳖谈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后阔涉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缆娃,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡捷绒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了贯要。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片暖侨。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖崇渗,靈堂內(nèi)的尸體忽然破棺而出字逗,到底是詐尸還是另有隱情,我是刑警寧澤宅广,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布葫掉,位于F島的核電站,受9級特大地震影響跟狱,放射性物質(zhì)發(fā)生泄漏俭厚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一驶臊、第九天 我趴在偏房一處隱蔽的房頂上張望挪挤。 院中可真熱鬧,春花似錦关翎、人聲如沸扛门。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尖飞。三九已至,卻和暖如春店雅,著一層夾襖步出監(jiān)牢的瞬間政基,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工闹啦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留沮明,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓窍奋,卻偏偏與公主長得像荐健,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子琳袄,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容