Kubernetes+flannnel部署

一、kubernetes(以下簡(jiǎn)稱k8s)和相關(guān)服務(wù)介紹

1.etcd:

  • key-value鍵值存儲(chǔ)數(shù)據(jù)庫,用來存儲(chǔ)kubernetes的信息。

2.flannel:

  • Flannel 是 CoreOS 團(tuán)隊(duì)針對(duì) Kubernetes 設(shè)計(jì)的一個(gè)覆蓋網(wǎng)絡(luò)(Overlay Network)工具,需要另外下載部署。我們知道當(dāng)我們啟動(dòng) Docker 后會(huì)有一個(gè)用于和容器進(jìn)行交互的 IP 地址,如果不去管理的話可能這個(gè) IP 地址在各個(gè)機(jī)器上是一樣的,并且僅限于在本機(jī)上進(jìn)行通信,無法訪問到其他機(jī)器上的 Docker 容器。Flannel 的目的就是為集群中的所有節(jié)點(diǎn)重新規(guī)劃 IP 地址的使用規(guī)則,從而使得不同節(jié)點(diǎn)上的容器能夠獲得同屬一個(gè)內(nèi)網(wǎng)且不重復(fù)的 IP 地址,并讓屬于不同節(jié)點(diǎn)上的容器能夠直接通過內(nèi)網(wǎng) IP 通信。

3.k8s master 組件:

  • Kubernetes 集群中主要存在兩種類型的節(jié)點(diǎn),分別是 master 節(jié)點(diǎn),以及 minion 節(jié)點(diǎn)。Minion 節(jié)點(diǎn)是實(shí)際運(yùn)行 Docker 容器的節(jié)點(diǎn),負(fù)責(zé)和節(jié)點(diǎn)上運(yùn)行的 Docker 進(jìn)行交互,并且提供了代理功能。
  • Master 節(jié)點(diǎn)負(fù)責(zé)對(duì)外提供一系列管理集群的 API 接口,并且通過和 Minion 節(jié)點(diǎn)交互來實(shí)現(xiàn)對(duì)集群的操作管理。整體架構(gòu)圖如下:

(1) kubectl

  • 客戶端命令行工具,將接受的命令格式化后發(fā)送給kube-apiserver,作為整個(gè)系統(tǒng)的操作入口。

(2) kube-apiserver

  • 作為整個(gè)系統(tǒng)的控制入口,以REST API服務(wù)提供接口。用戶和 kubernetes 集群交互的入口,封裝了核心對(duì)象的增刪改查操作,提供了 RESTFul 風(fēng)格的 API 接口,通過 etcd 來實(shí)現(xiàn)持久化并維護(hù)對(duì)象的一致性。

(3) kube-controller-manager

  • 用來執(zhí)行整個(gè)系統(tǒng)中的后臺(tái)任務(wù),包括節(jié)點(diǎn)狀態(tài)狀況、Pod個(gè)數(shù)、Pods和Service的關(guān)聯(lián)等。主要是用于保證 replicationController 定義的復(fù)制數(shù)量和實(shí)際運(yùn)行的 pod 數(shù)量一致,另外還保證了從 service 到 pod 的映射關(guān)系總是最新的。

(4)kube-scheduler

  • 負(fù)責(zé)節(jié)點(diǎn)資源管理,接受來自kube-apiserver創(chuàng)建Pods任務(wù),并分配到某個(gè)節(jié)點(diǎn)。負(fù)責(zé)集群資源的調(diào)度和管理,例如當(dāng)有 pod 異常退出需要重新分配機(jī)器時(shí),scheduler 通過一定的調(diào)度算法從而找到最合適的節(jié)點(diǎn)。

4.k8s minion組件 :

(1) kube-proxy

運(yùn)行在每個(gè)計(jì)算節(jié)點(diǎn)上,負(fù)責(zé)Pod網(wǎng)絡(luò)代理。定時(shí)從etcd獲取到service信息來做相應(yīng)的策略。運(yùn)行在 minion 節(jié)點(diǎn),負(fù)責(zé)為 pod 提供代理功能,會(huì)定期從 etcd 獲取 service 信息,并根據(jù) service 信息通過修改 iptables 來實(shí)現(xiàn)流量轉(zhuǎn)發(fā)(最初的版本是直接通過程序提供轉(zhuǎn)發(fā)功能,效率較低。),將流量轉(zhuǎn)發(fā)到要訪問的 pod 所在的節(jié)點(diǎn)上去。

(2) kubelet

運(yùn)行在每個(gè)計(jì)算節(jié)點(diǎn)上,作為agent負(fù)責(zé)和節(jié)點(diǎn)上的 Docker 交互,例如啟停容器,監(jiān)控運(yùn)行狀態(tài)等。接受分配該節(jié)點(diǎn)的Pods任務(wù)及管理容器,周期性獲取容器狀態(tài),反饋給kube-apiserver。

二、kubernetes 部署

1.安裝前工作:

(1)清理其它docker版本和依賴軟件:

yum -y remove docker
yum -y remove docker-selinux
yum remove docker-common-1.10.3-46.el7.centos.14.x86_64 -y
yum remove docker-common -y

2.安裝k8s master

yum install etcd
yum install kubernetes-master docker
  • 安裝kubernetes-node 會(huì)自動(dòng)依賴安裝docker,所以可以在kubernetes-master上先安裝kubernetes-node,借此安裝docker然后在卸載kubernetes-node。

  • etcd配置:

# vim /etc/etcd/etcd.conf  將以下幾行進(jìn)行修改,完成后保存退出。
ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://10.13.32.223:2379"

ETCD參數(shù)說明
重要的參數(shù)用途:

—data-dir 指定節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)目錄,這些數(shù)據(jù)包括節(jié)點(diǎn)ID,集群ID,集群初始化配置,Snapshot文件,若未指定—wal-dir,還會(huì)存儲(chǔ)WAL文件;
—wal-dir 指定節(jié)點(diǎn)的was文件的存儲(chǔ)目錄,若指定了該參數(shù),wal文件會(huì)和其他數(shù)據(jù)文件分開存儲(chǔ)。
—name 節(jié)點(diǎn)名稱
—initial-advertise-peer-urls 告知集群其他節(jié)點(diǎn)url.
— listen-peer-urls 監(jiān)聽URL,用于與其他節(jié)點(diǎn)通訊
— advertise-client-urls 告知客戶端url, 也就是服務(wù)的url
— initial-cluster-token 集群的ID
— initial-cluster 集群中所有節(jié)點(diǎn)

k8s 配置1:

#vim /etc/kubernetes/apiserver
KUBE_ETCD_SERVERS="--etcd_servers=http://192.168.17.101:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.73.18.0/24"

k8s 配置2:

#vim /etc/kubernetes/controller-manager
KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --pod-eviction-timeout=10s"

k8s 配置3:

#vim /etc/kubernetes/config
 KUBE_MASTER="--master=http://192.168.17.101:8080"

啟動(dòng)順序:

systemctl enable etcd
systemctl enable kube-apiserver kube-scheduler kube-controller-manager
systemctl start etcd
systemctl start kube-apiserverkube-schedulerkube-controller-manager

最后還要執(zhí)行命令:

etcdctl mk/coreos.com/network/config'{"Network": “192.168.1.0/24" }'

這個(gè)不設(shè)置會(huì)導(dǎo)致后面flanneld起不來,進(jìn)而導(dǎo)致docker啟動(dòng)不了

3.安裝k8s minion:

yum install flannel
yum install kubernetes-node

docker會(huì)自動(dòng)安裝
安裝kubernetes-node 會(huì)自動(dòng)依賴安裝docker)
安裝flannel:(k8s master 可以用不用安裝)
Flannel是CoreOS團(tuán)隊(duì)針對(duì)Kubernetes設(shè)計(jì)的一個(gè)網(wǎng)絡(luò)規(guī)劃服務(wù),簡(jiǎn)單來說,它的功能是讓集群中的不同節(jié)點(diǎn)主機(jī)創(chuàng)建的Docker容器都具有全集群唯一的虛擬IP地址。

  • flannel配置2:
#vim /etc/sysconfig/flanneld
FLANNEL_ETCD="http://10.13.32.223:2379"
FLANNEL_ETCD_KEY="/coreos.com/network"
  • k8s minion配置1:
    kubernetes node配置文件進(jìn)行修改:
#vim /etc/kubernetes/config
KUBE_MASTER="--master=http://10.13.32.223:8080"
  • k8s minion配置2:
#vim /etc/kubernetes/kubelet`
KUBELET_HOSTNAME="--hostname_override=10.73.18.81"
KUBELET_API_SERVER="--api_servers=http://10.13.32.223:8080"
啟動(dòng)順序:(非常關(guān)鍵)
  • 先啟動(dòng)docker:
systemctl enable docker
systemctl start docker
  • 再啟動(dòng)flannel:
systemctl enable flanneld.service
systemctl restart flanneld.service
  • 重啟docker:
systemctl restart docker
  • 啟動(dòng)kubelete 和kube-proxy服務(wù):
systemctl enable kubelet kube-proxy
systemctl start kubelet kube-proxy

三、注意事項(xiàng)

1.etcd 需要初始化網(wǎng)段信息

安裝完etcd服務(wù)后,還要執(zhí)行命令:

etcdctl mk/coreos.com/network/config'{"Network": “192.168.1.0/24" }'
  • 因?yàn)閒lannel 會(huì)依賴etcd的容器網(wǎng)段信息,這個(gè)不設(shè)置會(huì)導(dǎo)致后面flanneld起不來,進(jìn)而導(dǎo)致docker啟動(dòng)不了。

2.etcd 集群模式啟動(dòng)配置

/usr/lib/systemd/system/etcd.service文件中通過systemd啟動(dòng):

  • docker 和k8s minion(安裝命令為yum install kubernetes-node) 會(huì)有依賴關(guān)系,安裝最好通過yum 命令來安裝讓其自動(dòng)解決。
  • 或者通過二進(jìn)制文件進(jìn)行安裝,即從git-hub上下載編譯好的k8s,把k8s組件的各個(gè)二進(jìn)制文件拷貝到對(duì)應(yīng)的master和minion上,即可使用。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,460評(píng)論 6 538
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,067評(píng)論 3 423
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,467評(píng)論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,468評(píng)論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,184評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,582評(píng)論 1 325
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,616評(píng)論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,794評(píng)論 0 289
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,343評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,096評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,291評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,863評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,513評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,941評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,190評(píng)論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,026評(píng)論 3 396
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,253評(píng)論 2 375

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

  • Kubernetes作為容器應(yīng)用的管理中心,通過對(duì)Pod的數(shù)量進(jìn)行監(jiān)控,并且根據(jù)主機(jī)或容器失效的狀態(tài)將新的Pod調(diào)...
    輝耀輝耀閱讀 4,623評(píng)論 0 13
  • docker實(shí)現(xiàn)了更便捷的單機(jī)容器虛擬化的管理, docker的位置處于操作系統(tǒng)層與應(yīng)用層之間; 相對(duì)傳統(tǒng)虛擬化(...
    Harvey_L閱讀 19,936評(píng)論 3 44
  • 安裝k8s Master高可用集群 主機(jī) 角色 組件 172.18.6.101 K8S Master Kubele...
    jony456123閱讀 8,076評(píng)論 0 9
  • 這是一部大衛(wèi)芬奇風(fēng)格的,探索生活本意的黑色幽默片。 愛德華·諾頓扮演的被病態(tài)社會(huì)逼到精神分裂的汽車公司職員,是現(xiàn)實(shí)...
    孫亦川閱讀 879評(píng)論 1 5
  • 世上笑話太多,虧我早已看破,蹉跎。 人間閑言太多,可憐風(fēng)雨不盛,泡沫。 身邊慨嘆太多,曉鐘暮鼓求索,苛責(zé)。 前路迷...
    ToyIHere閱讀 162評(píng)論 0 1