摘要:主要在文件附加下面的源我使用的是阿里的鏡像,如果你使用的其他國內(nèi)鏡像,請找對應的鏡像源然后執(zhí)行下列命令,安裝軟件。參考資料只要用小朋友都能部署基本安裝基于阿里云鏡像站安裝用在上快速構(gòu)建測試集群
本次安裝環(huán)境是Ubuntu16.04,其他環(huán)境下,shell命令會有一些不同,但步驟應該大致相同,默認docker已經(jīng)安裝完成
下載下載安裝下列軟件
kubelet Node上運行的節(jié)點代理
kubeadm 用來master初始化集群,及node加入集群
kubectl 客戶端,用來向master發(fā)送請求,進行應用的部署
由于墻的原因,獲取這些軟件包有些麻煩。經(jīng)過上網(wǎng)查閱了一些資料,目前主要有兩種下載安裝這些軟件包。
其中一種是去k8s的github倉庫上下載源碼,解壓安裝。我最開始就是用的這種方式,但是以失敗告終,詳情見后面的問題總結(jié)。
第二種是添加k8s國內(nèi)軟件鏡像源,使用apt進行下載安裝。主要在/etc/apt/source.list文件附加下面的源
# 我使用的是阿里的鏡像,如果你使用的其他國內(nèi)鏡像,請找對應的k8s鏡像源 deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
然后執(zhí)行下列命令,安裝軟件。
# 我使用的是1.13.0-00版本,如果不清楚具體的版本號, # 可以使用 apt-cache show 命令進行查詢 export K8S_VERSION=1.13.0-00 apt-get update # 更新軟件源 apt-get install kubelet=${K8S_VERSION} apt-get install kubeadm=${K8S_VERSION} apt-get install kubectl=${K8S_VERSION}
通過這種方式下載的軟件,已經(jīng)被自動安裝好了,所有的環(huán)境已經(jīng)被設(shè)置好了,可以直接運行命令即可。
如果不熟悉kubelet和kubeadm的一些啟動參數(shù),不建議下載可執(zhí)行包,自己手動安裝。
通過apt進行安裝,可以省下很多事情。我最終通過這種方式成功安裝好了三個軟件。
首先需要做一些配置,以及下載必要的鏡像。本來可以直接執(zhí)行kubeadm init命令初始化master節(jié)點的,但是由于國內(nèi)有墻,所以在執(zhí)行kubeadm init命令前,需要做一些額外的工作,主要是下載鏡像。
關(guān)閉虛擬內(nèi)存一般情況下需要執(zhí)行下列命令關(guān)閉虛擬內(nèi)存[1],否則報如下錯誤
# 關(guān)閉swap。 # 但是系統(tǒng)重啟后,swap又會被啟動。 # 因此每次重啟節(jié)點,都要手動執(zhí)行該命令關(guān)閉swap,否則kubelet會啟動失敗 # 可以執(zhí)行 sysctl -w vm.swappiness=0 徹底關(guān)掉swap swapoff -a下載鏡像
由于墻的原因,在下載"pause"等docker鏡像時,會出現(xiàn)問題
解決辦法是從阿里docker鏡像網(wǎng)站上下載鏡像,然后修改鏡像的tag[3]
執(zhí)行如下命令
# $imageName指要下載鏡像的名稱,可以通過 kubeadm config images list 命令獲取,但要去掉前面的k8s.gcr.io/ docker pull registry.aliyuncs.com/google_containers/$imageName docker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName docker rmi registry.aliyuncs.com/google_containers/$imageName執(zhí)行kube init
執(zhí)行kubeadm init命令,結(jié)果如下:
接下來配置kubectl(如果kubeadm init執(zhí)行成功的,會顯示如何配置kubectl),主要執(zhí)行下列命令
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config # 將文件權(quán)限設(shè)為當前用戶
然后就可以用kubectl執(zhí)行一些命令測試是否成功運行(如 kubectl get nodes)。
由于我是只有一臺機器,所以只有一個master節(jié)點
執(zhí)行kubeadm token create --print-join-command獲取加入命令,然后在節(jié)點上執(zhí)行,即可加入集群
為k8s安裝插件,相當于在集群中創(chuàng)建一些資源,主要使用kubectl apply -f config_file
網(wǎng)絡(luò)插件為了使Pod之間能夠跨節(jié)點通信,因此需要按照額外的虛擬二層網(wǎng)絡(luò)組件。由于我目前只有一臺節(jié)點,無法測試,所以暫未安裝
問題總結(jié) 記一次手動安裝kubeadm,kubelet和kubectl失敗的經(jīng)歷首先需要去github上k8s的倉庫下,找到release頁面,并在該頁面下尋找需要下載的版本,比如我們目前的項目需要1.13版,那么我就找到了https://github.com/kubernetes...這個頁面,然后不要去下載這個頁面里的壓縮包,找到CHANGELOG-1.13,點擊進入真正的下載頁面。如下圖紅圈所示:
進入該頁面,找到Server區(qū)域,下載k8s服務(wù)端的軟件包(壓縮包里包括了安裝k8s必須的軟件),這里我下載的是kubernetes-server-linux-amd64.tar.gz軟件包。
下載完成后,切換到期望安裝的目錄,然后解壓軟件包。這里我希望安裝到/usr/local目錄下,所以執(zhí)行下列命令
cd /usr/local tar zxf kubernetes-server-linux-amd64.tar.gz
然后設(shè)置PATH,修改/etc/profile
export K8S_HOME=/usr/local/kubernetes export PATH=$PATH:$K8S_HOME/server/bin
然后重啟,或者執(zhí)行source /etc/profile,以更新環(huán)境變量。
通過這種方式下載軟件包后,還需要做很多工作去安裝配置kubeadm和kubelet,很麻煩。
經(jīng)過我無數(shù)次的嘗試,我最終以失敗告終,沒有用這種方式安裝配置成功。
主要的問題在于kubeadm和kubelet的啟動參數(shù)有點復雜,自己配置的話,需要對k8s有很深入的認識,否則會按下葫蘆浮起瓢。
我自己在那設(shè)置的半天,systemd都用的很熟練了,依然沒有安裝成功。
當我把我的ubuntu虛擬機重啟后,發(fā)現(xiàn)k8s的組件沒有自動運行,然后我一個個的去啟動相應的容器,但是沒有用。
最后我發(fā)現(xiàn)是因為kubelet沒有啟動成功,而沒有啟動的成功的原因是因為swap沒有關(guān)閉。
并且我還發(fā)現(xiàn)當在master節(jié)點上成功啟動kubelet后,其他的組件,如apiserver也會隨之啟動。
[1] 只要用 kubeadm 小朋友都能部署 Kubernetes
[2] kubernetes基本安裝-k8s-3
[3] 基于阿里云鏡像站安裝Kubernetes
[4] 用kubeadm在Ubuntu上快速構(gòu)建Kubernetes測試集群
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/33167.html
摘要:我推薦你使用進行日志收集,將作為的出口。集群目前暫時沒有提供日志查看機制。以如下的形式啟動容器,容器日志將發(fā)往配置的。 【作者barnett】本文介紹了k8s官方提供的日志收集方法,并介紹了Fluentd日志收集器并與其他產(chǎn)品做了比較。最后介紹了好雨云幫如何對k8s進行改造并使用ZeroMQ以消息的形式將日志傳輸?shù)浇y(tǒng)一的日志處理中心。 容器日志存在形式 目前容器日志有兩種輸出形式: ...
摘要:我推薦你使用進行日志收集,將作為的出口。集群目前暫時沒有提供日志查看機制。以如下的形式啟動容器,容器日志將發(fā)往配置的。 【作者barnett】本文介紹了k8s官方提供的日志收集方法,并介紹了Fluentd日志收集器并與其他產(chǎn)品做了比較。最后介紹了好雨云幫如何對k8s進行改造并使用ZeroMQ以消息的形式將日志傳輸?shù)浇y(tǒng)一的日志處理中心。 容器日志存在形式 目前容器日志有兩種輸出形式: ...
摘要:后面會涉及以配置文件進行部署。的調(diào)度完成,被分配到指定上。這是的一種最終狀態(tài)。圖相較而言,除了提供的基本功能,還支持聲明式的更新和回滾。共享數(shù)據(jù)存儲的問題主要分為數(shù)據(jù)臨時存儲與持久性存儲。 帶著問題學 Kubernetes 基本單元 Pod 摘要:本文屬于原創(chuàng),歡迎轉(zhuǎn)載,轉(zhuǎn)載請保留出處:https://github.com/jasonGeng88/blog 文章一:帶著問題學 Kube...
摘要:后面會涉及以配置文件進行部署。的調(diào)度完成,被分配到指定上。這是的一種最終狀態(tài)。圖相較而言,除了提供的基本功能,還支持聲明式的更新和回滾。共享數(shù)據(jù)存儲的問題主要分為數(shù)據(jù)臨時存儲與持久性存儲。 帶著問題學 Kubernetes 基本單元 Pod 摘要:本文屬于原創(chuàng),歡迎轉(zhuǎn)載,轉(zhuǎn)載請保留出處:https://github.com/jasonGeng88/blog 文章一:帶著問題學 Kube...
閱讀 2981·2021-11-15 18:02
閱讀 3877·2021-10-14 09:43
閱讀 3866·2021-09-08 10:41
閱讀 2580·2019-08-30 15:53
閱讀 1861·2019-08-30 14:14
閱讀 2014·2019-08-29 16:12
閱讀 3204·2019-08-29 14:03
閱讀 1336·2019-08-29 13:46