使用 kubeadm 安裝 Kubernetes 1.16

配置要求

對于 Kubernetes 初學者垃帅,推薦在阿里云采購如下配置:(您也可以使用自己的虛擬機、私有云等您最容易獲得的 Linux 環(huán)境)

  • 3臺 2核4G 的ECS(突發(fā)性能實例 t5 ecs.t5-c1m2.large或同等配置址貌,單臺約 0.4元/小時删壮,停機時不收費)
  • Cent OS 7.6

安裝后的軟件版本為

  • Kubernetes v1.16.0
    • calico 3.8.2
    • nginx-ingress 1.5.5
  • Docker 18.09.7

安裝后的拓撲圖如下:下載拓撲圖源文件 使用Axure RP 9.0可打開該文件

image-20190826000521999

關于二進制安裝

鑒于目前已經(jīng)有比較方便的辦法獲得 kubernetes 鏡像贪绘,我將回避 二進制 安裝是否更好的爭論。本文采用 kubernetes.io 官方推薦的 kubeadm 工具安裝 kubernetes 集群央碟。

檢查 centos / hostname

# 在 master 節(jié)點和 worker 節(jié)點都要執(zhí)行 
cat /etc/redhat-release 
# 此處 hostname 的輸出將會是該機器在 Kubernetes 集群中的節(jié)點名字  
# 不能使用 localhost 作為節(jié)點的名字 
hostname 
# 請使用 lscpu 命令税灌,核對 CPU 信息  
# Architecture: x86_64    本安裝文檔不支持 arm 架構(gòu)  
# CPU(s):       2         CPU 內(nèi)核數(shù)量不能低于 2 
lscpu

操作系統(tǒng)兼容性

CentOS 版本 本文檔是否兼容 備注
7.6 ?? 已驗證
7.5 ?? 已驗證
7.4 ?? 已證實會出現(xiàn) kubelet 無法啟動的問題
7.3 ?? 已證實會出現(xiàn) kubelet 無法啟動的問題
7.2 ?? 已證實會出現(xiàn) kubelet 無法啟動的問題

修改 hostname

如果您需要修改 hostname均函,可執(zhí)行如下指令:

# 修改 hostname 
hostnamectl set-hostname your-new-host-name 
# 查看修改結(jié)果 
hostnamectl status 
# 設置 hostname 解析 
echo "127.0.0.1   $(hostname)"  >>  /etc/hosts

請確保:

  • 我的任意節(jié)點 centos 版本在兼容列表中
  • 我的任意節(jié)點 hostname 不是 localhost
  • 我的任意節(jié)點 CPU 內(nèi)核數(shù)量大于等于 2
  • 請訪問 https://kuboard.cn/install/install-k8s.html 以獲得該文檔的最新版本

安裝 docker / kubelet

請訪問 https://kuboard.cn/install/install-k8s.html 以獲得該文檔的最新版本

使用 root 身份在所有節(jié)點執(zhí)行如下代碼,以安裝軟件:

  • docker
  • nfs-utils
  • kubectl / kubeadm / kubelet
# 在 master 節(jié)點和 worker 節(jié)點都要執(zhí)行 
curl -sSL https://kuboard.cn/install-script/v1.16.0/install-kubelet.sh | sh

初始化 master 節(jié)點

  • 以 root 身份在 demo-master-a-1 機器上執(zhí)行

  • 初始化 master 節(jié)點時菱涤,如果因為中間某些步驟的配置出錯苞也,想要重新初始化 master 節(jié)點,請先執(zhí)行 kubeadm reset 操作

  • POD_SUBNET 所使用的網(wǎng)段不能與 master節(jié)點/worker節(jié)點 所在的網(wǎng)段重疊粘秆。該字段的取值為一個 CIDR 值如迟,如果您對 CIDR 這個概念還不熟悉,請不要修改這個字段的取值 10.100.0.1/20

# 只在 master 節(jié)點執(zhí)行  # 替換 x.x.x.x 為 master 節(jié)點實際 IP(請使用內(nèi)網(wǎng) IP) 
# export 命令只在當前 shell 會話中有效攻走,開啟新的 shell 窗口后殷勘,如果要繼續(xù)安裝過程,請重新執(zhí)行此處的 export 命令  
export MASTER_IP=x.x.x.x 
# 替換 apiserver.demo 為 您想要的 dnsName (不建議使用 master 的 hostname 作為 APISERVER_NAME)  
export APISERVER_NAME=apiserver.demo 
# Kubernetes 容器組所在的網(wǎng)段昔搂,該網(wǎng)段安裝完成后玲销,由 kubernetes 創(chuàng)建,事先并不存在于您的物理網(wǎng)絡中  
export POD_SUBNET=10.100.0.1/20 
echo "${MASTER_IP}    ${APISERVER_NAME}"  >>  /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.16.0/init-master.sh | sh

檢查 master 初始化結(jié)果

# 只在 master 節(jié)點執(zhí)行  
# 執(zhí)行如下命令贤斜,等待 3-10 分鐘逛裤,直到所有的容器組處于 Running 狀態(tài) 
watch kubectl get pod -n kube-system -o wide 
# 查看 master 節(jié)點初始化結(jié)果 
kubectl get nodes -o wide

初始化 worker節(jié)點

獲得 join命令參數(shù)

  • 在 master 節(jié)點上執(zhí)行
# 只在 master 節(jié)點執(zhí)行 
kubeadm token create --print-join-command

可獲取kubeadm join 命令及參數(shù),如下所示

# kubeadm token create 命令的輸出 
kubeadm join apiserver.demo:6443  --token mpfjma.4vjjg8flqihor4vt  --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303
  • 初始化worker

    針對所有的 worker 節(jié)點執(zhí)行

# 只在 worker 節(jié)點執(zhí)行  
# 替換 ${MASTER_IP} 為 master 節(jié)點實際 IP  
# 替換 ${APISERVER_NAME} 為初始化 master 節(jié)點時所使用的 APISERVER_NAME 
echo "${MASTER_IP}    ${APISERVER_NAME}"  >>  /etc/hosts 
# 替換為 master 節(jié)點上 kubeadm token create 命令的輸出 
kubeadm join apiserver.demo:6443  --token mpfjma.4vjjg8flqihor4vt  --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303

檢查初始化結(jié)果

在 master 節(jié)點上執(zhí)行

# 只在 master 節(jié)點執(zhí)行 
kubectl get nodes -o wide

輸出結(jié)果如下所示:

[root@demo-master-a-1  ~]# kubectl get nodes 
NAME     STATUS   ROLES    AGE     VERSION
demo-master-a-1  Ready master 5m3s v1.16.0 
demo-worker-a-1  Ready  <none>  2m26s v1.16.0 
demo-worker-a-2  Ready  <none>  3m56s v1.16.0
  • 移除 worker 節(jié)點

正常情況下草讶,您無需移除 worker 節(jié)點炉菲,如果添加到集群出錯坤溃,您可以移除 worker 節(jié)點,再重新嘗試添加

在準備移除的 worker 節(jié)點上執(zhí)行

# 只在 worker 節(jié)點執(zhí)行 
kubeadm reset
  • 在 master 節(jié)點 demo-master-a-1 上執(zhí)行
# 只在 master 節(jié)點執(zhí)行 
kubectl delete node demo-worker-x-x
  • 將 demo-worker-x-x 替換為要移除的 worker 節(jié)點的名字
  • worker 節(jié)點的名字可以通過在節(jié)點 demo-master-a-1 上執(zhí)行 kubectl get nodes 命令獲得

安裝 Ingress Controller

  • 在 master 節(jié)點上執(zhí)行
# 只在 master 節(jié)點執(zhí)行 
kubectl apply -f https://kuboard.cn/install-script/v1.16.0/nginx-ingress.yaml
  • 配置域名解析

將域名 *.demo.yourdomain.com 解析到 demo-worker-a-2 的 IP 地址 z.z.z.z (也可以是 demo-worker-a-1 的地址 y.y.y.y)

  • 驗證配置

在瀏覽器訪問 a.demo.yourdomain.com祠饺,將得到 404 NotFound 錯誤頁面

如果您打算將 Kubernetes 用于生產(chǎn)環(huán)境汁政,請參考此文檔 Installing Ingress Controller,完善 Ingress 的配置

下一步

?? ?? ??

您已經(jīng)完成了 Kubernetes 集群的安裝勺鸦, Have fun!

本文由kuboard提供目木,了解更多其他安裝教材可移步:https://kuboard.cn/install/install-dashboard.html

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市军拟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌懈息,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怒见,死亡現(xiàn)場離奇詭異,居然都是意外死亡骇两,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門配阵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來示血,“玉大人,你說我怎么就攤上這事难审。” “怎么了告喊?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵黔姜,是天一觀的道長。 經(jīng)常有香客問我秆吵,道長,這世上最難降的妖魔是什么纳寂? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮忽媒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘猾浦。我一直安慰自己,他們只是感情好金赦,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著夹抗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪杏愤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天珊楼,我揣著相機與錄音度液,去河邊找鬼。 笑死堕担,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的佑惠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼膜楷,長吁一口氣:“原來是場噩夢啊……” “哼贞奋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起忆矛,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤催训,失蹤者是張志新(化名)和其女友劉穎宗收,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體混稽,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡审胚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年膳叨,在試婚紗的時候發(fā)現(xiàn)自己被綠了痘系。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡汰翠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出复唤,到底是詐尸還是另有隱情,我是刑警寧澤妓局,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布雳旅,位于F島的核電站,受9級特大地震影響攒盈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜型豁,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望充尉。 院中可真熱鬧,春花似錦驼侠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至腻菇,卻和暖如春昔馋,著一層夾襖步出監(jiān)牢的瞬間糖耸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工蔬捷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人周拐。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像妥粟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子勾给,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

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