『高級(jí)篇』docker之kubernetes基礎(chǔ)集群部署(上)(33)

原創(chuàng)文章,歡迎轉(zhuǎn)載。轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自IT人故事會(huì),謝謝!
原文鏈接地址:『高級(jí)篇』docker之kubernetes基礎(chǔ)集群部署(上)(33)

創(chuàng)新互聯(lián)公司長(zhǎng)期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為博白企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作,博白網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

這次繼續(xù)集群的部署simple版本。源碼:https://github.com/limingios/msA-docker k8s分支和https://github.com/limingios/kubernetes-starter

『高級(jí)篇』docker之kubernetes基礎(chǔ)集群部署(上)(33)

基礎(chǔ)集群部署 - kubernetes-simple

部署ETCD(主節(jié)點(diǎn))

簡(jiǎn)介

  ETCD保證了數(shù)據(jù)的存儲(chǔ),保證了數(shù)據(jù)的高可用,還有數(shù)據(jù)的一致性,它跟zookeeper類似。kubernetes需要存儲(chǔ)很多東西,像它本身的節(jié)點(diǎn)信息,組件信息,還有通過(guò)kubernetes運(yùn)行的pod,deployment,service等等。都需要持久化。etcd就是它的數(shù)據(jù)中心。生產(chǎn)環(huán)境中為了保證數(shù)據(jù)中心的高可用和數(shù)據(jù)的一致性,一般會(huì)部署最少三個(gè)節(jié)點(diǎn)。我們這里以學(xué)習(xí)為主就只在主節(jié)點(diǎn)部署一個(gè)實(shí)例。

如果你的環(huán)境已經(jīng)有了etcd服務(wù)(不管是單點(diǎn)還是集群),可以忽略這一步。前提是你在生成配置的時(shí)候填寫了自己的etcd endpoint哦~

部署

etcd的二進(jìn)制文件和服務(wù)的配置我們都已經(jīng)準(zhǔn)備好,現(xiàn)在的目的就是把它做成系統(tǒng)服務(wù)并啟動(dòng)。(這個(gè)是要在主節(jié)點(diǎn)操作的,在server01上)

#把服務(wù)配置文件copy到系統(tǒng)服務(wù)目錄
cp ~/kubernetes-starter/target/master-node/etcd.service /lib/systemd/system/
#enable服務(wù)
systemctl enable etcd.service
#創(chuàng)建工作目錄(保存數(shù)據(jù)的地方)
mkdir -p /var/lib/etcd
# 啟動(dòng)服務(wù)
service etcd start
# 查看服務(wù)日志,看是否有錯(cuò)誤信息,確保服務(wù)正常
journalctl -f -u etcd.service
# 查看在線的端口2379 2380 
netstat -ntlp

『高級(jí)篇』docker之kubernetes基礎(chǔ)集群部署(上)(33)

查看etcd的配置

WorkingDirectory 工作目錄配置文件存在這個(gè)路徑下
ExecStart 執(zhí)行的命令
name 名稱
listen-client-urls 監(jiān)聽節(jié)點(diǎn)
advertise-client-urls 建議其他人訪問(wèn)的地址
data-dir 數(shù)據(jù)目錄

vi /lib/systemd/system/etcd.service 

『高級(jí)篇』docker之kubernetes基礎(chǔ)集群部署(上)(33)

PS: 提示start etcd 已經(jīng)啟動(dòng)

部署APIServer(主節(jié)點(diǎn))

簡(jiǎn)介

kube-apiserver是Kubernetes最重要的核心組件之一,主要提供以下的功能

  • 提供集群管理的REST API接口,包括認(rèn)證授權(quán)(我們現(xiàn)在沒有用到)數(shù)據(jù)校驗(yàn)以及集群狀態(tài)變更等
  • 提供其他模塊之間的數(shù)據(jù)交互和通信的樞紐(其他模塊通過(guò)API Server查詢或修改數(shù)據(jù),只有API Server才直接操作etcd)

生產(chǎn)環(huán)境為了保證apiserver的高可用一般會(huì)部署2+個(gè)節(jié)點(diǎn),在上層做一個(gè)lb做負(fù)載均衡,比如haproxy。由于單節(jié)點(diǎn)和多節(jié)點(diǎn)在apiserver這一層說(shuō)來(lái)沒什么區(qū)別,所以我們學(xué)習(xí)部署一個(gè)節(jié)點(diǎn)就足夠啦

部署

APIServer的部署方式也是通過(guò)系統(tǒng)服務(wù)。部署流程跟etcd完全一樣,不再注釋

cp kubernetes-starter/target/master-node/kube-apiserver.service /lib/systemd/system/
systemctl enable kube-apiserver.service
service kube-apiserver start
journalctl -f -u kube-apiserver

『高級(jí)篇』docker之kubernetes基礎(chǔ)集群部署(上)(33)

重點(diǎn)配置說(shuō)明

[Unit]
Description=Kubernetes API Server
...
[Service]
#可執(zhí)行文件的位置
ExecStart=/home/michael/bin/kube-apiserver \
#非安全端口(8080)綁定的監(jiān)聽地址 這里表示監(jiān)聽所有地址
--insecure-bind-address=0.0.0.0 \
#不使用https
--kubelet-https=false \
#kubernetes集群的虛擬ip的地址范圍
--service-cluster-ip-range=10.68.0.0/16 \
#service的nodeport的端口范圍限制
--service-node-port-range=20000-40000 \
#很多地方都需要和etcd打交道,也是唯一可以直接操作etcd的模塊
--etcd-servers=http://192.168.1.102:2379 \
...

『高級(jí)篇』docker之kubernetes基礎(chǔ)集群部署(上)(33)

部署ControllerManager(主節(jié)點(diǎn))

簡(jiǎn)介

Controller Manager由kube-controller-manager和cloud-controller-manager組成,是Kubernetes的大腦,它通過(guò)apiserver監(jiān)控整個(gè)集群的狀態(tài),并確保集群處于預(yù)期的工作狀態(tài)。
kube-controller-manager由一系列的控制器組成,像Replication Controller控制副本,Node Controller節(jié)點(diǎn)控制,Deployment Controller管理deployment等等
cloud-controller-manager在Kubernetes啟用Cloud Provider的時(shí)候才需要,用來(lái)配合云服務(wù)提供商的控制

controller-manager、scheduler和apiserver 三者的功能緊密相關(guān),一般運(yùn)行在同一個(gè)機(jī)器上,我們可以把它們當(dāng)做一個(gè)整體來(lái)看,所以保證了apiserver的高可用即是保證了三個(gè)模塊的高可用。也可以同時(shí)啟動(dòng)多個(gè)controller-manager進(jìn)程,但只有一個(gè)會(huì)被選舉為leader提供服務(wù)。

部署

通過(guò)系統(tǒng)服務(wù)方式部署

cp ~/kubernetes-starter/target/master-node/kube-controller-manager.service /lib/systemd/system/
systemctl enable kube-controller-manager.service
service kube-controller-manager start
journalctl -f -u kube-controller-manager
重點(diǎn)配置說(shuō)明

[Unit]
Description=Kubernetes Controller Manager
...
[Service]
ExecStart=/home/michael/bin/kube-controller-manager \
#對(duì)外服務(wù)的監(jiān)聽地址,這里表示只有本機(jī)的程序可以訪問(wèn)它
--address=127.0.0.1 \
#apiserver的url
--master=http://127.0.0.1:8080 \
#服務(wù)虛擬ip范圍,同apiserver的配置
--service-cluster-ip-range=10.68.0.0/16 \
#pod的ip地址范圍
--cluster-cidr=172.20.0.0/16 \
#下面兩個(gè)表示不使用證書,用空值覆蓋默認(rèn)值
--cluster-signing-cert-file= \
--cluster-signing-key-file= \
...

『高級(jí)篇』docker之kubernetes基礎(chǔ)集群部署(上)(33)

PS:下次繼續(xù)把k8s的基礎(chǔ)搭建完成。這個(gè)坑很大,注意自己的符號(hào)標(biāo)點(diǎn),我就是把端口簽名的冒號(hào)寫成了點(diǎn)。找了4個(gè)小時(shí)各種試才發(fā)現(xiàn)的。里面有寫錯(cuò)的,192.168.1.101.2379 改成192.168.1.101:2379

『高級(jí)篇』docker之kubernetes基礎(chǔ)集群部署(上)(33)

分享標(biāo)題:『高級(jí)篇』docker之kubernetes基礎(chǔ)集群部署(上)(33)
轉(zhuǎn)載源于:http://www.muchs.cn/article26/ihehjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、品牌網(wǎng)站設(shè)計(jì)搜索引擎優(yōu)化、靜態(tài)網(wǎng)站、電子商務(wù)網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管