kubeadm使用外部etcd集群tls部署kubernetes

  

环境:ubuntu 16.04.2

cpu 4内存8 g

内核4.4.0-119

ip地址:192.168.0.62 192.168.0.63

192.168.0.64

etcd版本:3.2.12

kubernetes版本:1.11.5

一、部署etcd集群(需要sudo或者根权限)

1生成证书及etcd的二进制文件包,工具下载地址

wget - o/bin/cfssl https://pkg.cfssl.org/R1.2/cfssl_linux-amd64

wget - o/bin/cfssljson https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64

chmod + x/bin/cfssl *

wget https://github.com/etcd-io/etcd/releases/download/v3.2.18/etcd-v3.2.18-linux-amd64.tar.gz

tar xf etcd-v3.2.18-linux-amd64.tar。广州

cp etcd-v3.2.18-linux-amd64/etcd */usr/bin/ca-config

2.。json配置文件,修改过期时间为10年(红色部分)

内容如下:

{

“签署”:{

“默认”:{

“到期”:“87600 h”

},

“配置文件”:{

" etcd ": {

“到期”:“87600 h”,

“用法”:[

“签字”,

“关键加密”,

“客户端身份验证”,

"服务器身份验证"

]

}

}

}

}



3. ca-csr。json配置文件如下:

{

“CN”:“etcd”

“关键”:{

“算法”:“rsa”

“大小”:2048年

},

"名称":[

{

“C”:“CN”

“圣”:“上海”,

“L”:“上海”,

“O”:“etcd”

“或者”:“系统”

})

}


4. etcd集群的etcd-csr。json

{

“CN”:“etcd”

“主机”:[

" 127.0.0.1 "

" 192.168.0.62 "

" 192.168.0.63 "

“192.168.0.64”],

“关键”:{

“算法”:“rsa”

“大小”:2048年

},

"名称":[

{

“C”:“CN”

“圣”:“上海”,

“L”:“上海”,

“O”:“etcd”

“或者”:“系统”

})

}


4。生成证书并自签名

cfssl gencert -initca ca-csr。json | cfssljson光秃秃的ca

cfssl gencert ca=ca。pem -ca-key=ca-key。pem配置=ca-config。json文件=etcd etcd-csr。json | cfssljson裸etcd

复制pem文件到你指定的目录,3台主机都要复制的

不建议使用目录/etc/kubernetes/pki/etcd

mkdir - p/etc/etcdCA

cp *。pem/etc/etcdCA


5. etcd的配置文件如下,红色部分自行更改。复制配置文件为/etc/违约/etcd

ETCD_NAME=

ETCD_DATA_DIR="/var/lib/etcd/?/p>

ETCD_LISTEN_PEER_URLS=" https://: 2380 "

ETCD_LISTEN_CLIENT_URLS=" https://: 2379, https://127.0.0.1:4001

ETCD_INITIAL_ADVERTISE_PEER_URLS=" https://: 2380 "

ETCD_INITIAL_CLUSTER=" "

ETCD_INITIAL_CLUSTER_STATE=靶隆?/p>

ETCD_INITIAL_CLUSTER_TOKEN=癳tcd-cluster-sdn”

ETCD_ADVERTISE_CLIENT_URLS=" https://: 2379 "

CLIENT_CERT_AUTH=" true "

ETCD_CA_FILE="/etc/etcdCA/ca.pem”

ETCD_CERT_FILE="/etc/etcdCA/etcd.pem”

ETCD_KEY_FILE="/etc/etcdCA/etcd-key.pem”

PEER_CLIENT_CERT_AUTH=" true "

ETCD_PEER_CA_FILE="/etc/etcdCA/ca.pem”

ETCD_PEER_CERT_FILE="/etc/etcdCA/etcd.pem”

ETCD_PEER_KEY_FILE="/etc/etcdCA/etcd-key。pem”


6。创建用户和服务并授权

useradd etcd

chmod 755/etc/etcdCA/*

回声”(单位)

=etcd -可用性描述键值存储文档

=https://github.com/coreos/etcd文档=男人:etcd=network.target后

希望=network-online.target


[服务]环境=DAEMON_ARGS=

环境=ETCD_NAME=% H

环境=ETCD_DATA_DIR=/var/lib/etcd/违约

EnvironmentFile=-/etc/违约/% p

Type=通知用户=etcd

PermissionsStartOnly=true

# ExecStart=/bin/sh - c”GOMAXPROCS=(nproc)/usr/bin/etcd DAEMON_ARGS美元"

ExecStart=/usr/bin/美元etcd DAEMON_ARGS

重启=对异常的

# RestartSec=10 s

# LimitNOFILE=65536


(安装)WantedBy=multi-user.target

=etcd3别名。服务的祝辞/lib/systemd/系统/etcd。服务


7。启动服务

systemctl开始etcd


8。检查集群状态

出口ETCDCTL_API=3   etcdctl \   ——cacert=/etc/etcdCA/ca。pem \   ——cert=/etc/etcdCA/etcd。pem \   ——关键=/etc/etcdCA/etcd-key。pem \   ——端点=192.168.0.62:2379 192.168.0.63:2379 192.168.0.64:2379 \   端点健康

看到下图就好了

 kubeadm使用外部etcd集群tls部署kubernetes

kubeadm使用外部etcd集群tls部署kubernetes