91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

發布時間:2020-06-14 14:35:55 來源:網絡 閱讀:193 作者:IT人故事 欄目:云計算

原創文章,歡迎轉載。轉載請注明:轉載自IT人故事會,謝謝!
原文鏈接地址:『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

kubernetes最復雜的就是認證和授權,這次從頭搭建另外一套3個虛機的kubernetes,還是通過vagrant來進行搭建,具體vagrant的配置信息查看源碼:https://github.com/limingios/msA-docker k8s分支

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

預先環境準備

  • 虛擬機介紹和安裝

    3臺虛擬機還是通過vagrant來生成對應的虛擬機。vagrant已經安裝了 對應的docker。

系統類型 IP地址 節點角色 CPU Memory Hostname
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
  • 三臺機器mac開通遠程登錄root用戶下
    #設置 PasswordAuthentication yes
    vi /etc/ssh/sshd_config
    sudo systemctl restart sshd

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

  • 三臺機器接受所有ip的數據包轉發
vi /lib/systemd/system/docker.service

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

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

  • 三臺機器啟動服務
    systemctl daemon-reload
    service docker restart

    『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

系統設置(所有節點)

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

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

####設置系統參數 - 允許路由轉發,不對bridge的數據進行處理

#寫入配置文件
cat <<EOF > /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

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

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

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

準備二進制文件(所有節點)

kubernetes的安裝有幾種方式,不管是kube-admin還是社區貢獻的部署方案都離不開這幾種方式:

  • 使用現成的二進制文件

    直接從官方或其他第三方下載,就是kubernetes各個組件的可執行文件。拿來就可以直接運行了。不管是centos,ubuntu還是其他的linux發行版本,只要gcc編譯環境沒有太大的區別就可以直接運行的。使用較新的系統一般不會有什么跨平臺的問題。

  • 使用源碼編譯安裝

    編譯結果也是各個組件的二進制文件,所以如果能直接下載到需要的二進制文件基本沒有什么編譯的必要性了。

  • 使用鏡像的方式運行

    同樣一個功能使用二進制文件提供的服務,也可以選擇使用鏡像的方式。就像nginx,像mysql,我們可以使用安裝版,搞一個可執行文件運行起來,也可以使用它們的鏡像運行起來,提供同樣的服務。kubernetes也是一樣的道理,二進制文件提供的服務鏡像也一樣可以提供。

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

  • 將下載的k8s上傳到linux服務器

    密碼都是vagrant

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

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

  • 解壓k8s,改名

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

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

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

準備配置文件(所有節點)

上一步我們下載了kubernetes各個組件的二進制文件,這些可執行文件的運行也是需要添加很多參數的,包括有的還會依賴一些配置文件。現在我們就把運行它們需要的參數和配置文件都準備好。

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

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

文件說明
  • gen-config.sh

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

  • kubernetes-simple

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

  • kubernetes-with-ca

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

  • service-config

    這個先不用關注,它是我們曾經開發的那些微服務配置。
    等我們熟悉了kubernetes后,實踐用的,通過這些配置,把我們的微服務都運行到kubernetes集群中。

3臺機器生成配置

這里會根據大家各自的環境生成kubernetes部署過程需要的配置文件。
在每個節點上都生成一遍,把所有配置都生成好,后面會根據節點類型去使用相關的配置。

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

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)
『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

生成配置(所有節點)

跟基礎環境搭建一樣,我們需要生成kubernetes-with-ca的所有相關配置文件

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

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)
PS:這個截圖master_ip應該是192.168.68.101

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

安裝cfssl(所有節點)

cfssl是非常好用的CA工具,我們用它來生成證書和秘鑰文件
安裝過程比較簡單,

#下載
wget  https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 \
https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
#修改為可執行權限
chmod +x cfssl_linux-amd64 cfssljson_linux-amd64
#移動到bin目錄
mv cfssl_linux-amd64 /usr/local/bin/cfssl
mv cfssljson_linux-amd64 /usr/local/bin/cfssljson
#驗證
cfssl version

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

生成根證書(主節點)

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

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

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

改造etcd(主節點)

準備證書

etcd節點需要提供給其他服務訪問,就要驗證其他服務的身份,所以需要一個標識自己監聽服務的server證書,當有多個etcd節點的時候也需要client證書與etcd集群其他節點交互,當然也可以client和server使用同一個證書因為它們本質上沒有區別。

#etcd證書放在這
mkdir -p /etc/kubernetes/ca/etcd
#準備etcd證書配置
cp ~/kubernetes-starter/target/ca/etcd/etcd-csr.json /etc/kubernetes/ca/etcd/
cd /etc/kubernetes/ca/etcd/
#使用根證書(ca.pem)簽發etcd證書
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
#跟之前類似生成三個文件etcd.csr是個中間證書請求文件,我們最終要的是etcd-key.pem和etcd.pem
ls

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

更新etcd服務:

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
#驗證etcd服務(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

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

api-server(主節點)

準備證書
#api-server證書放在這,api-server是核心,文件夾叫kubernetes吧,如果想叫apiserver也可以,不過相關的地方都需要修改哦
mkdir -p /etc/kubernetes/ca/kubernetes
#準備apiserver證書配置
cp ~/kubernetes-starter/target/ca/kubernetes/kubernetes-csr.json /etc/kubernetes/ca/kubernetes/
cd /etc/kubernetes/ca/kubernetes/
#使用根證書(ca.pem)簽發kubernetes證書
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
#跟之前類似生成三個文件kubernetes.csr是個中間證書請求文件,我們最終要的是kubernetes-key.pem和kubernetes.pem
ll

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

api-server服務

生成token認證文件

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

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

更新api-server服務

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 

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

controller-manager

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

controller-manager服務

更新controller-manager服務

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 

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

scheduler

scheduler一般與apiserver在同一臺機器上,所以可以使用非安全端口與apiserver通訊。不需要生成證書和私鑰。

scheduler服務

查看diff
比較會發現兩個文件并沒有區別,不需要改造

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

啟動服務

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

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

PS:下次開始kubectl,calico,cni,kube-proxy,kube-dns的認證,授權。

『高級篇』docker之kubernetes搭建集群添加認證授權(上)(38)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凌源市| 古蔺县| 洪湖市| 原阳县| 玛纳斯县| 东乡族自治县| 鲁甸县| 江口县| 全州县| 黄梅县| 无棣县| 织金县| 临泉县| 云和县| 安龙县| 汾西县| 年辖:市辖区| 澄江县| 东兰县| 康乐县| 高安市| 湖北省| 萝北县| 卢湾区| 台东县| 自贡市| 西安市| 龙江县| 监利县| 曲靖市| 蕲春县| 灵璧县| 德惠市| 马龙县| 平南县| 姜堰市| 开化县| 乌鲁木齐县| 昔阳县| 梨树县| 库尔勒市|