真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

原創(chuàng)文章,歡迎轉(zhuǎn)載。轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自IT人故事會(huì),謝謝!
原文鏈接地址:『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

10多年的伊吾網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷(xiāo)型網(wǎng)站的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整伊吾建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“伊吾網(wǎng)站設(shè)計(jì)”,“伊吾網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

kubernetes最復(fù)雜的就是認(rèn)證和授權(quán),這次從頭搭建另外一套3個(gè)虛機(jī)的kubernetes,還是通過(guò)vagrant來(lái)進(jìn)行搭建,具體vagrant的配置信息查看源碼:https://github.com/limingios/msA-docker k8s分支

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

預(yù)先環(huán)境準(zhǔn)備

  • 虛擬機(jī)介紹和安裝

    3臺(tái)虛擬機(jī)還是通過(guò)vagrant來(lái)生成對(duì)應(yīng)的虛擬機(jī)。vagrant已經(jīng)安裝了 對(duì)應(yīng)的docker。

系統(tǒng)類(lèi)型IP地址節(jié)點(diǎn)角色CPUMemoryHostname
Centos7 192.168.68.101 master 2 4G server01
Centos7 192.168.68.102 worker 1 2G server02
Centos7 192.168.68.103 worker 1 2G server03
  • 三臺(tái)機(jī)器mac開(kāi)通遠(yuǎn)程登錄root用戶下
    #設(shè)置 PasswordAuthentication yes
    vi /etc/ssh/sshd_config
    sudo systemctl restart sshd

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

  • 三臺(tái)機(jī)器接受所有ip的數(shù)據(jù)包轉(zhuǎn)發(fā)
vi /lib/systemd/system/docker.service

#找到ExecStart=xxx,在這行上面加入一行,內(nèi)容如下:(k8s的網(wǎng)絡(luò)需要)
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

  • 三臺(tái)機(jī)器啟動(dòng)服務(wù)
    systemctl daemon-reload
    service docker restart

    『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

系統(tǒng)設(shè)置(所有節(jié)點(diǎn))

關(guān)閉、禁用防火墻(讓所有機(jī)器之間都可以通過(guò)任意端口建立連接)
systemctl stop firewalld
systemctl disable firewalld
#查看狀態(tài)
systemctl status firewalld

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

####設(shè)置系統(tǒng)參數(shù) - 允許路由轉(zhuǎn)發(fā),不對(duì)bridge的數(shù)據(jù)進(jìn)行處理

#寫(xiě)入配置文件
cat < /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

#生效配置文件
sysctl -p /etc/sysctl.d/k8s.conf

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

配置host文件
#配置host,使每個(gè)Node都可以通過(guò)名字解析到ip地址
vi /etc/hosts
#加入如下片段(ip地址和servername替換成自己的)
192.168.68.101 server01
192.168.68.102 server02
192.168.68.103 server03

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

準(zhǔn)備二進(jìn)制文件(所有節(jié)點(diǎn))

kubernetes的安裝有幾種方式,不管是kube-admin還是社區(qū)貢獻(xiàn)的部署方案都離不開(kāi)這幾種方式:

  • 使用現(xiàn)成的二進(jìn)制文件

    直接從官方或其他第三方下載,就是kubernetes各個(gè)組件的可執(zhí)行文件。拿來(lái)就可以直接運(yùn)行了。不管是centos,ubuntu還是其他的linux發(fā)行版本,只要gcc編譯環(huán)境沒(méi)有太大的區(qū)別就可以直接運(yùn)行的。使用較新的系統(tǒng)一般不會(huì)有什么跨平臺(tái)的問(wèn)題。

  • 使用源碼編譯安裝

    編譯結(jié)果也是各個(gè)組件的二進(jìn)制文件,所以如果能直接下載到需要的二進(jìn)制文件基本沒(méi)有什么編譯的必要性了。

  • 使用鏡像的方式運(yùn)行

    同樣一個(gè)功能使用二進(jìn)制文件提供的服務(wù),也可以選擇使用鏡像的方式。就像nginx,像MySQL,我們可以使用安裝版,搞一個(gè)可執(zhí)行文件運(yùn)行起來(lái),也可以使用它們的鏡像運(yùn)行起來(lái),提供同樣的服務(wù)。kubernetes也是一樣的道理,二進(jìn)制文件提供的服務(wù)鏡像也一樣可以提供。

從上面的三種方式中其實(shí)使用鏡像是比較優(yōu)雅的方案,容器的好處自然不用多說(shuō)。但從初學(xué)者的角度來(lái)說(shuō)容器的方案會(huì)顯得有些復(fù)雜,不那么純粹,會(huì)有很多容器的配置文件以及關(guān)于類(lèi)似二進(jìn)制文件提供的服務(wù)如何在容器中提供的問(wèn)題,容易跑偏。
所以我們這里使用二進(jìn)制的方式來(lái)部署。二進(jìn)制文件已經(jīng)這里備好,大家可以打包下載,把下載好的文件放到每個(gè)節(jié)點(diǎn)上,放在哪個(gè)目錄隨你喜歡,放好后最好設(shè)置一下環(huán)境變量$PATH,方便后面可以直接使用命令。(科學(xué)上網(wǎng)的老鐵也可以自己去官網(wǎng)找找)
####[下載地址(kubernetes 1.9.0版本)] (https://pan.baidu.com/s/1bMnqWY)

  • 將下載的k8s上傳到linux服務(wù)器

    密碼都是vagrant

    yum -y install lrzsz
    #選中文件上傳就可以了,這次是在windows環(huán)境,上次基礎(chǔ)搭建是在mac上
    rz

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

  • 解壓k8s,改名

    解壓后,改名成bin就是為了不在配置環(huán)境變量

tar -xvf kubernetes-bins.tar.gz 
mv ~/kubernetes-bins/ bin

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

準(zhǔn)備配置文件(所有節(jié)點(diǎn))

上一步我們下載了kubernetes各個(gè)組件的二進(jìn)制文件,這些可執(zhí)行文件的運(yùn)行也是需要添加很多參數(shù)的,包括有的還會(huì)依賴(lài)一些配置文件?,F(xiàn)在我們就把運(yùn)行它們需要的參數(shù)和配置文件都準(zhǔn)備好。

下載配置文件
#安裝git
yum -y install git
#到home目錄下載項(xiàng)目
git clone https://github.com/limingios/kubernetes-starter.git
#看看git內(nèi)容
cd ~/kubernetes-starter && ll

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

文件說(shuō)明
  • gen-config.sh

    shell腳本,用來(lái)根據(jù)每個(gè)老鐵自己的集群環(huán)境(ip,hostname等),根據(jù)下面的模板,生成適合大家各自環(huán)境的配置文件。生成的文件會(huì)放到target文件夾下。

  • kubernetes-simple

    簡(jiǎn)易版kubernetes配置模板(剝離了認(rèn)證授權(quán))。
    適合剛接觸kubernetes的老鐵,首先會(huì)讓大家在和kubernetes初次見(jiàn)面不會(huì)印象太差(太復(fù)雜啦~~),再有就是讓大家更容易抓住kubernetes的核心部分,把注意力集中到核心組件及組件的聯(lián)系,從整體上把握kubernetes的運(yùn)行機(jī)制。

  • kubernetes-with-ca

    在simple基礎(chǔ)上增加認(rèn)證授權(quán)部分。大家可以自行對(duì)比生成的配置文件,看看跟simple版的差異,更容易理解認(rèn)證授權(quán)的(認(rèn)證授權(quán)也是kubernetes學(xué)習(xí)曲線較高的重要原因)

  • service-config

    這個(gè)先不用關(guān)注,它是我們?cè)?jīng)開(kāi)發(fā)的那些微服務(wù)配置。
    等我們熟悉了kubernetes后,實(shí)踐用的,通過(guò)這些配置,把我們的微服務(wù)都運(yùn)行到kubernetes集群中。

3臺(tái)機(jī)器生成配置

這里會(huì)根據(jù)大家各自的環(huán)境生成kubernetes部署過(guò)程需要的配置文件。
在每個(gè)節(jié)點(diǎn)上都生成一遍,把所有配置都生成好,后面會(huì)根據(jù)節(jié)點(diǎn)類(lèi)型去使用相關(guān)的配置。

#cd到之前下載的git代碼目錄
cd ~/kubernetes-starter
#編輯屬性配置(根據(jù)文件注釋中的說(shuō)明填寫(xiě)好每個(gè)key-value)
vi config.properties
#生成配置文件,確保執(zhí)行過(guò)程沒(méi)有異常信息

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)
『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

生成配置(所有節(jié)點(diǎn))

跟基礎(chǔ)環(huán)境搭建一樣,我們需要生成kubernetes-with-ca的所有相關(guān)配置文件

#生成配置
./gen-config.sh with-ca

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)
PS:這個(gè)截圖master_ip應(yīng)該是192.168.68.101

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

安裝cfssl(所有節(jié)點(diǎn))

cfssl是非常好用的CA工具,我們用它來(lái)生成證書(shū)和秘鑰文件
安裝過(guò)程比較簡(jiǎn)單,

#下載
wget  https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 \
https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
#修改為可執(zhí)行權(quán)限
chmod +x cfssl_linux-amd64 cfssljson_linux-amd64
#移動(dòng)到bin目錄
mv cfssl_linux-amd64 /usr/local/bin/cfssl
mv cfssljson_linux-amd64 /usr/local/bin/cfssljson
#驗(yàn)證
cfssl version

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

生成根證書(shū)(主節(jié)點(diǎn))

根證書(shū)是證書(shū)信任鏈的根,各個(gè)組件通訊的前提是有一份大家都信任的證書(shū)(根證書(shū)),每個(gè)人使用的證書(shū)都是由這個(gè)根證書(shū)簽發(fā)的。

#所有證書(shū)相關(guān)的東西都放在這
mkdir -p /etc/kubernetes/ca
#準(zhǔn)備生成證書(shū)的配置文件
cp ~/kubernetes-starter/target/ca/ca-config.json /etc/kubernetes/ca
cp ~/kubernetes-starter/target/ca/ca-csr.json /etc/kubernetes/ca
#生成證書(shū)和秘鑰
cd /etc/kubernetes/ca
cfssl gencert -initca ca-csr.json | cfssljson -bare ca
#生成完成后會(huì)有以下文件(我們最終想要的就是ca-key.pem和ca.pem,一個(gè)秘鑰,一個(gè)證書(shū))
ls

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

改造etcd(主節(jié)點(diǎn))

準(zhǔn)備證書(shū)

etcd節(jié)點(diǎn)需要提供給其他服務(wù)訪問(wèn),就要驗(yàn)證其他服務(wù)的身份,所以需要一個(gè)標(biāo)識(shí)自己監(jiān)聽(tīng)服務(wù)的server證書(shū),當(dāng)有多個(gè)etcd節(jié)點(diǎn)的時(shí)候也需要client證書(shū)與etcd集群其他節(jié)點(diǎn)交互,當(dāng)然也可以client和server使用同一個(gè)證書(shū)因?yàn)樗鼈儽举|(zhì)上沒(méi)有區(qū)別。

#etcd證書(shū)放在這
mkdir -p /etc/kubernetes/ca/etcd
#準(zhǔn)備etcd證書(shū)配置
cp ~/kubernetes-starter/target/ca/etcd/etcd-csr.json /etc/kubernetes/ca/etcd/
cd /etc/kubernetes/ca/etcd/
#使用根證書(shū)(ca.pem)簽發(fā)etcd證書(shū)
cfssl gencert \
        -ca=/etc/kubernetes/ca/ca.pem \
        -ca-key=/etc/kubernetes/ca/ca-key.pem \
        -config=/etc/kubernetes/ca/ca-config.json \
        -profile=kubernetes etcd-csr.json | cfssljson -bare etcd
#跟之前類(lèi)似生成三個(gè)文件etcd.csr是個(gè)中間證書(shū)請(qǐng)求文件,我們最終要的是etcd-key.pem和etcd.pem
ls

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

更新etcd服務(wù):

cp ~/kubernetes-starter/target/master-node/etcd.service /lib/systemd/system/
mkdir -p /var/lib/etcd
systemctl enable etcd.service
systemctl daemon-reload
service etcd start
#驗(yàn)證etcd服務(wù)(endpoints自行替換)
ETCDCTL_API=3 etcdctl \
  --endpoints=https://192.168.68.101:2379  \
  --cacert=/etc/kubernetes/ca/ca.pem \
  --cert=/etc/kubernetes/ca/etcd/etcd.pem \
  --key=/etc/kubernetes/ca/etcd/etcd-key.pem \
  endpoint health

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

api-server(主節(jié)點(diǎn))

準(zhǔn)備證書(shū)
#api-server證書(shū)放在這,api-server是核心,文件夾叫kubernetes吧,如果想叫apiserver也可以,不過(guò)相關(guān)的地方都需要修改哦
mkdir -p /etc/kubernetes/ca/kubernetes
#準(zhǔn)備apiserver證書(shū)配置
cp ~/kubernetes-starter/target/ca/kubernetes/kubernetes-csr.json /etc/kubernetes/ca/kubernetes/
cd /etc/kubernetes/ca/kubernetes/
#使用根證書(shū)(ca.pem)簽發(fā)kubernetes證書(shū)
cfssl gencert \
        -ca=/etc/kubernetes/ca/ca.pem \
        -ca-key=/etc/kubernetes/ca/ca-key.pem \
        -config=/etc/kubernetes/ca/ca-config.json \
        -profile=kubernetes kubernetes-csr.json | cfssljson -bare kubernetes
#跟之前類(lèi)似生成三個(gè)文件kubernetes.csr是個(gè)中間證書(shū)請(qǐng)求文件,我們最終要的是kubernetes-key.pem和kubernetes.pem
ll

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

api-server服務(wù)

生成token認(rèn)證文件

#生成隨機(jī)token
head -c 16 /dev/urandom | od -An -t x | tr -d ' '
0b1bd95b94caa5534d1d4a7318d51b0e

#按照固定格式寫(xiě)入token.csv,注意替換token內(nèi)容
echo "0b1bd95b94caa5534d1d4a7318d51b0e,kubelet-bootstrap,10001,\"system:kubelet-bootstrap\"" > /etc/kubernetes/ca/kubernetes/token.csv

更新api-server服務(wù)

cp ~/kubernetes-starter/target/master-node/kube-apiserver.service /lib/systemd/system/
systemctl daemon-reload
service kube-apiserver start

#檢查日志
journalctl -f -u kube-apiserver
cat /lib/systemd/system/kube-apiserver.service 

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

controller-manager

controller-manager一般與api-server在同一臺(tái)機(jī)器上,所以可以使用非安全端口與api-server通訊,不需要生成證書(shū)和私鑰。

controller-manager服務(wù)

更新controller-manager服務(wù)

cd ~/kubernetes-starter/
cp ~/kubernetes-starter/target/master-node/kube-controller-manager.service /lib/systemd/system/
systemctl daemon-reload
service kube-controller-manager start

#檢查日志
journalctl -f -u kube-controller-manager
cat /lib/systemd/system/kube-controller-manager.service 

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

scheduler

scheduler一般與apiserver在同一臺(tái)機(jī)器上,所以可以使用非安全端口與apiserver通訊。不需要生成證書(shū)和私鑰。

scheduler服務(wù)

查看diff
比較會(huì)發(fā)現(xiàn)兩個(gè)文件并沒(méi)有區(qū)別,不需要改造

cd ~/kubernetes-starter/
cp ~/kubernetes-starter/target/master-node/kube-scheduler.service /lib/systemd/system/
systemctl enable kube-scheduler.service

啟動(dòng)服務(wù)

service kube-scheduler start
#檢查日志
journalctl -f -u kube-scheduler
cat /lib/systemd/system/kube-scheduler.service

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)

PS:下次開(kāi)始kubectl,calico,cni,kube-proxy,kube-DNS的認(rèn)證,授權(quán)。

『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)


名稱(chēng)欄目:『高級(jí)篇』docker之kubernetes搭建集群添加認(rèn)證授權(quán)(上)(38)
網(wǎng)頁(yè)URL:http://weahome.cn/article/gegohd.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部