您好,登錄后才能下訂單哦!
小編給大家分享一下Kubernetes 1.8.4中如何安裝Etcd,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在開始安裝 Kubernetes 之前,需要先將一些必要系統創建完成,其中 Etcd 就是 Kubernetes 最重要的一環,Kubernetes會將大部分信息儲存于Etcd上,來提供給其他節點索取,以確保整個集群運作與溝通正常。
創建集群 CA 與 Certificates
在這部分,將會需要產生 client 與 server 的各組件 certificates,并且替 Kubernetes admin user 產生 client 證書。
建立/etc/etcd/ssl文件夾,然后進入目錄。
mkdir -p /etc/etcd/ssl && cd /etc/etcd/ssl
生成ca-config.json與etcd-ca-csr.json文件,并產生 CA 密鑰:
生成ca-config.json文件
cat <<EOF > ca-config.json { "signing": { "default": { "expiry": "87600h" }, "profiles": { "kubernetes": { "usages": [ "signing", "key encipherment", "server auth", "client auth" ], "expiry": "87600h" } } } } EOF
生成etcd-ca-csr.json文件
cat <<EOF > etcd-ca-csr.json { "CN": "etcd", "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "SC", "ST": "ChengDu", "L": "ChengDu", "O": "etcd", "OU": "Etcd Security" } ] } EOF
生成證書
cfssl gencert -initca etcd-ca-csr.json | cfssljson -bare etcd-ca
生成etcd-csr.json文件,并產生 kube-apiserver certificate 證書:
生成etcd-csr.json文件
cat <<EOF > etcd-csr.json { "CN": "etcd", "hosts": [ "127.0.0.1", "10.0.0.162" ], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "SC", "ST": "ChengDu", "L": "ChengDu", "O": "etcd", "OU": "Etcd Security" } ] } EOF
注意hosts更換成自己的IP,這里我的etcd只有一個節點并且在162節點上。
生成證書
cfssl gencert \ -ca=etcd-ca.pem \ -ca-key=etcd-ca-key.pem \ -config=ca-config.json \ -profile=kubernetes \ etcd-csr.json | cfssljson -bare etcd
Etcd 安裝與設定
首先在master(162)節點下載 Etcd,并解壓縮放到 /opt 底下與安裝:
export ETCD_URL="https://github.com/coreos/etcd/releases/download" cd && wget -qO- "${ETCD_URL}/v3.2.9/etcd-v3.2.9-linux-amd64.tar.gz" | tar -zx mv etcd-v3.2.9-linux-amd64/etcd* /usr/local/bin/ && rm -rf etcd-v3.2.9-linux-amd64
完成后新建 Etcd Group 與 User,并建立 Etcd 配置文件目錄:
groupadd etcd && useradd -c "Etcd user" -g etcd -s /sbin/nologin -r etcd
配置etcd.conf和etcd.service
生成etcd.conf
cat <<EOF > /etc/etcd/etcd.conf # [member] ETCD_NAME=node162 ETCD_DATA_DIR=/var/lib/etcd ETCD_LISTEN_PEER_URLS=https://0.0.0.0:2380 ETCD_LISTEN_CLIENT_URLS=https://0.0.0.0:2379 ETCD_PROXY=off # [cluster] ETCD_ADVERTISE_CLIENT_URLS=https://10.0.0.162:2379 ETCD_INITIAL_ADVERTISE_PEER_URLS=https://10.0.0.162:2380 ETCD_INITIAL_CLUSTER=node162=https://10.0.0.162:2380 ETCD_INITIAL_CLUSTER_STATE=new ETCD_INITIAL_CLUSTER_TOKEN=etcd-k8s-cluster # [security] ETCD_CERT_FILE="/etc/etcd/ssl/etcd.pem" ETCD_KEY_FILE="/etc/etcd/ssl/etcd-key.pem" ETCD_CLIENT_CERT_AUTH="true" ETCD_TRUSTED_CA_FILE="/etc/etcd/ssl/etcd-ca.pem" ETCD_AUTO_TLS="true" ETCD_PEER_CERT_FILE="/etc/etcd/ssl/etcd.pem" ETCD_PEER_KEY_FILE="/etc/etcd/ssl/etcd-key.pem" ETCD_PEER_CLIENT_CERT_AUTH="true" ETCD_PEER_TRUSTED_CA_FILE="/etc/etcd/ssl/etcd-ca.pem" ETCD_PEER_AUTO_TLS="true" EOF
若與該教程 IP 不同的話,請用自己 IP 取代10.0.0.162。
生成etcd.service
cat <<EOF > /lib/systemd/system/etcd.service [Unit] Description=Etcd Service After=network.target [Service] Environment=ETCD_DATA_DIR=/var/lib/etcd/default EnvironmentFile=-/etc/etcd/etcd.conf Type=notify User=etcd PermissionsStartOnly=true ExecStart=/usr/local/bin/etcd Restart=on-failure RestartSec=10 LimitNOFILE=65536 [Install] WantedBy=multi-user.target EOF
通過簡單指令驗證:
export CA="/etc/etcd/ssl" ETCDCTL_API=3 etcdctl \ --cacert=${CA}/etcd-ca.pem \ --cert=${CA}/etcd.pem \ --key=${CA}/etcd-key.pem \ --endpoints="https://10.0.0.162:2379" \ endpoint health
若與該教程 IP 不同的話,請用自己 IP 取代10.0.0.162。
以上是“Kubernetes 1.8.4中如何安裝Etcd”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。