成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

kubeadm部署k8s1.9高可用集群--2搭建etcd集群

scq000 / 900人閱讀

摘要:搭建集群前言安裝的集群,默認(rèn)是一個單機(jī)的容器化的,并且和通信沒有經(jīng)過加密和認(rèn)證,這點(diǎn)是需要改造的。所以首先我們需要先部署一個三節(jié)點(diǎn)的集群,二進(jìn)制部署,守護(hù)進(jìn)程,并且需要生成證書。

搭建etcd集群 前言

kubeadm安裝的集群,默認(rèn)etcd是一個單機(jī)的容器化的etcd,并且k8s和etcd通信沒有經(jīng)過ssl加密和認(rèn)證,這點(diǎn)是需要改造的。
所以首先我們需要先部署一個三節(jié)點(diǎn)的etcd集群,二進(jìn)制部署,systemd守護(hù)進(jìn)程,并且需要生成ca證書。

ETCD集群詳情

kuberntes 系統(tǒng)使用 etcd 存儲所有數(shù)據(jù),此外calico網(wǎng)絡(luò)也使用該etcd集群,本文檔介紹部署一個三節(jié)點(diǎn)高可用 etcd 集群的步驟,分別命名為etcd-host1etcd-host2、etcd-host3

etcd-host1:172.16.120.151

etcd-host2:172.16.120.152

etcd-host3:172.16.120.153

本文檔用到的變量定義如下:

$ export NODE_NAME=etcd-host1 # 當(dāng)前部署的機(jī)器名稱(隨便定義,只要能區(qū)分不同機(jī)器即可)
$ export NODE_IP=172.16.120.151 # 當(dāng)前部署的機(jī)器 IP
$ export NODE_IPS="172.16.120.151 172.16.120.152 172.16.120.153" # etcd 集群所有機(jī)器 IP
$ # etcd 集群間通信的IP和端口
$ export ETCD_NODES=etcd-host1=https://172.16.120.151:2380,etcd-host2=https://172.16.120.152:2380,etcd-host3=https://172.16.120.153:2380
$

本系列默認(rèn)使用root用戶操作

創(chuàng)建 CA 證書和秘鑰

本文檔使用 CloudFlare 的 PKI 工具集 cfssl 來生成 Certificate Authority (CA) 證書和秘鑰文件,CA 是自簽名的證書,用來簽名后續(xù)創(chuàng)建的其它 TLS 證書。

安裝cfssl

如果不希望將cfssl工具安裝到部署主機(jī)上,可以在其他的主機(jī)上進(jìn)行該步驟,生成以后將證書拷貝到部署etcd的主機(jī)上即可。本教程就是采取這種方法,在一臺測試機(jī)上執(zhí)行下面操作。

$ wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
$ chmod +x cfssl_linux-amd64
$ mv cfssl_linux-amd64 /usr/local/bin/cfssl

$ wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
$ chmod +x cfssljson_linux-amd64
$ mv cfssljson_linux-amd64 /usr/local/bin/cfssljson

$ wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
$ chmod +x cfssl-certinfo_linux-amd64
$ mv cfssl-certinfo_linux-amd64 /usr/local/bin/cfssl-certinfo
$
生成ETCD的TLS 秘鑰和證書

為了保證通信安全,客戶端(如 etcdctl) 與 etcd 集群、etcd 集群之間的通信需要使用 TLS 加密,本節(jié)創(chuàng)建 etcd TLS 加密所需的證書和私鑰。

創(chuàng)建 CA 配置文件:

$ cat >  ca-config.json <

ca-config.json:可以定義多個 profiles,分別指定不同的過期時間、使用場景等參數(shù);后續(xù)在簽名證書時使用某個 profile;

signing:表示該證書可用于簽名其它證書;生成的 ca.pem 證書中 CA=TRUE;

server auth:表示 client 可以用該 CA 對 server 提供的證書進(jìn)行驗(yàn)證;

client auth:表示 server 可以用該 CA 對 client 提供的證書進(jìn)行驗(yàn)證;

創(chuàng)建 CA 證書簽名請求:

$ cat >  ca-csr.json <

"CN":Common Name,kube-apiserver 從證書中提取該字段作為請求的用戶名 (User Name);瀏覽器使用該字段驗(yàn)證網(wǎng)站是否合法;

"O":Organization,kube-apiserver 從證書中提取該字段作為請求用戶所屬的組 (Group);

生成 CA 證書和私鑰:

$ cfssl gencert -initca ca-csr.json | cfssljson -bare ca
$ ls ca*
ca-config.json  ca.csr  ca-csr.json  ca-key.pem  ca.pem
$

創(chuàng)建 etcd 證書簽名請求:

$ cat > etcd-csr.json <

hosts 字段指定授權(quán)使用該證書的 etcd 節(jié)點(diǎn) IP;

生成 etcd 證書和私鑰:

$ cfssl gencert -ca=ca.pem 
  -ca-key=ca-key.pem 
  -config=ca-config.json 
  -profile=kubernetes etcd-csr.json | cfssljson -bare etcd
$ ls etcd*
etcd.csr  etcd-csr.json  etcd-key.pem etcd.pem ca-config.json  ca.csr  ca-csr.json  ca-key.pem  ca.pem
$ rm etcd.csr  etcd-csr.json

將生成好的etcd.pem和etcd-key.pem以及ca.pem三個文件拷貝到目標(biāo)主機(jī)的/etc/etcd/ssl目錄下。

下載二進(jìn)制文件

https://github.com/coreos/etcd/releases 頁面下載最新版本的二進(jìn)制文件:

$ wget https://github.com/coreos/etcd/releases/download/v3.2.11/etcd-v3.2.11-linux-amd64.tar.gz
$ tar -xvf etcd-v3.2.11-linux-amd64.tar.gz
$ mv etcd-v3.2.11-linux-amd64/etcd* /usr/local/bin
$
創(chuàng)建 etcd 的 systemd unit 文件
$ mkdir -p /var/lib/etcd  # 必須先創(chuàng)建工作目錄
$ cat > etcd.service <

指定 etcd 的工作目錄和數(shù)據(jù)目錄為 /var/lib/etcd,需在啟動服務(wù)前創(chuàng)建這個目錄;

為了保證通信安全,需要指定 etcd 的公私鑰(cert-file和key-file)、Peers 通信的公私鑰和 CA 證書(peer-cert-file、peer-key-file、peer-trusted-ca-file)、客戶端的CA證書(trusted-ca-file);

--initial-cluster-state 值為 new 時,--name 的參數(shù)值必須位于 --initial-cluster 列表中;

啟動 etcd 服務(wù)
$ mv etcd.service /etc/systemd/system/
$ systemctl daemon-reload
$ systemctl enable etcd
$ systemctl start etcd
$ systemctl status etcd
$
驗(yàn)證服務(wù)

部署完 etcd 集群后,在任一 etcd 集群節(jié)點(diǎn)上執(zhí)行如下命令:

$ etcdctl 
  --endpoints=https://172.16.120.151:2379  
  --ca-file=/etc/etcd/ssl/ca.pem 
  --cert-file=/etc/etcd/ssl/etcd.pem 
  --key-file=/etc/etcd/ssl/etcd-key.pem 
  cluster-health

預(yù)期結(jié)果:

member 71df888fdf6f0bb9 is healthy: got healthy result from https://172.16.120.153:2379
member 73b5207bc2491164 is healthy: got healthy result from https://172.16.120.151:2379
member 7a4ddb7c77253f4b is healthy: got healthy result from https://172.16.120.152:2379

三臺 etcd 的輸出均為 healthy 時表示集群服務(wù)正常(忽略 warning 信息)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/32623.html

相關(guān)文章

  • kubeadm部署k8s1.9可用集群--2搭建etcd集群

    摘要:搭建集群前言安裝的集群,默認(rèn)是一個單機(jī)的容器化的,并且和通信沒有經(jīng)過加密和認(rèn)證,這點(diǎn)是需要改造的。所以首先我們需要先部署一個三節(jié)點(diǎn)的集群,二進(jìn)制部署,守護(hù)進(jìn)程,并且需要生成證書。 搭建etcd集群 前言 kubeadm安裝的集群,默認(rèn)etcd是一個單機(jī)的容器化的etcd,并且k8s和etcd通信沒有經(jīng)過ssl加密和認(rèn)證,這點(diǎn)是需要改造的。所以首先我們需要先部署一個三節(jié)點(diǎn)的etcd集群,...

    ZHAO_ 評論0 收藏0
  • kubeadm部署k8s1.9可用集群--1集群概述

    摘要:集群概述整個集群包括大部分集群節(jié)點(diǎn)節(jié)點(diǎn)集群主要作為集群和網(wǎng)絡(luò)的數(shù)據(jù)存儲。集群組件版本集群機(jī)器主從從后續(xù)計(jì)劃用替換。 前言 k8s部署的方式多種多樣,除去各家云廠商提供的工具,在bare metal中,也有二進(jìn)制部署和一系列的自動化部署工具(kubeadm,kubespary,rke等)。具體二進(jìn)制部署大家可以參考宋總的系列文章。而rke是由rancher提供的工具,由于剛剛出來,有不少...

    DrizzleX 評論0 收藏0
  • kubeadm部署k8s1.9可用集群--1集群概述

    摘要:集群概述整個集群包括大部分集群節(jié)點(diǎn)節(jié)點(diǎn)集群主要作為集群和網(wǎng)絡(luò)的數(shù)據(jù)存儲。集群組件版本集群機(jī)器主從從后續(xù)計(jì)劃用替換。 前言 k8s部署的方式多種多樣,除去各家云廠商提供的工具,在bare metal中,也有二進(jìn)制部署和一系列的自動化部署工具(kubeadm,kubespary,rke等)。具體二進(jìn)制部署大家可以參考宋總的系列文章。而rke是由rancher提供的工具,由于剛剛出來,有不少...

    willin 評論0 收藏0
  • kubeadm部署k8s1.9可用集群--4部署master節(jié)點(diǎn)

    摘要:部署節(jié)點(diǎn)節(jié)點(diǎn)包含的組件本文檔介紹部署一個三節(jié)點(diǎn)高可用集群的步驟,分別命名為安裝在每臺主機(jī)安裝。出現(xiàn)如下錯誤解決辦法啟動參數(shù)增加參數(shù)增加在物理機(jī)上可能并不會出現(xiàn)該問題。至此一個完整的高可用集群搭建完畢。 部署master節(jié)點(diǎn) kubernetes master 節(jié)點(diǎn)包含的組件: kube-apiserver kube-scheduler kube-controller-manager ...

    tomlingtm 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<