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