全球主机交流论坛
标题:
Kubernetes 1.8.3 集群部署 二进制安装 TLS [ 20180319更新ETCD安装 ]
[打印本页]
作者:
ccnif
时间:
2018-3-19 22:09
标题:
Kubernetes 1.8.3 集群部署 二进制安装 TLS [ 20180319更新ETCD安装 ]
上一章内容地址 :
http://mjj.022333.xyz/thread-434889-1-1.html
# 创建高可用 etcd 集群
# kuberntes 系统使用 etcd 存储所有数据,
# 这三个节点复用 kubernetes master node 机器 ,分别命名为k8s-m1.easylinux.cn、k8s-n1.easylinux.cn、k8s-n2.easylinux.cn:
# 10.0.3.221 k8s-m1.easylinux.cn
# 10.0.3.222 k8s-n1.easylinux.cn
# 10.0.3.223 k8s-n2.easylinux.cn
# TLS 认证文件
# 需要为 etcd 集群创建加密通信的 TLS 证书,这里复用以前创建的 kubernetes 证书;
# 前面已经分发 kubernetes-key.pem kubernetes.pem 到所有机器上了;
# kubernetes 证书的 hosts 字段列表中包含上面三台机器的 IP,否则后续证书校验会失败;
# [k8s-m1 10.0.3.221, k8s-n1 10.0.3.222, k8s-n2 10.0.3.223]
# 下载etcd二进制文件
cd /tmp
wget https://github.com/coreos/etcd/releases/download/v3.1.5/etcd-v3.1.5-linux-amd64.tar.gz [PS下次安装用高版本]
tar -xvf etcd-v3.1.5-linux-amd64.tar.gz
mv etcd-v3.1.5-linux-amd64/etcd* /usr/local/bin
# 创建 etcd 的 systemd unit 文件
cat > /usr/lib/systemd/system/etcd.service <<EOF
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
Documentation=https://github.com/coreos
[Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
ExecStart=/usr/local/bin/etcd \\
--name \${ETCD_NAME} \\
--cert-file=/etc/kubernetes/ssl/kubernetes.pem \\
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem \\
--peer-cert-file=/etc/kubernetes/ssl/kubernetes.pem \\
--peer-key-file=/etc/kubernetes/ssl/kubernetes-key.pem \\
--trusted-ca-file=/etc/kubernetes/ssl/ca.pem \\
--peer-trusted-ca-file=/etc/kubernetes/ssl/ca.pem \\
--initial-advertise-peer-urls \${ETCD_INITIAL_ADVERTISE_PEER_URLS} \\
--listen-peer-urls \${ETCD_LISTEN_PEER_URLS} \\
--listen-client-urls \${ETCD_LISTEN_CLIENT_URLS},http://127.0.0.1:2379 \\
--advertise-client-urls \${ETCD_ADVERTISE_CLIENT_URLS} \\
--initial-cluster-token \${ETCD_INITIAL_CLUSTER_TOKEN} \\
--initial-cluster infra1=https://10.0.3.221:2380,infra2=https://10.0.3.222:2380,infra3=https://10.0.3.223:2380 \\
--initial-cluster-state new \\
--data-dir=\${ETCD_DATA_DIR}
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
mkdir /var/lib/etcd
# 创建数据目录为 /var/lib/etcd,指定 etcd 的工作目录为 /var/lib/etcd;
# 为保证通信安全,需指定 etcd 的公私钥(cert-file和key-file)、Peers 通信的公私钥和CA 证书(peer-cert-file、peer-key-file、peer-trusted-ca-file)、客户端的CA证书(trusted-ca-file);
# 创建 kubernetes.pem 证书时使用的 kubernetes-csr.json 文件的 hosts 字段包含所有 etcd 节点的IP,否则证书校验会出错;
# --initial-cluster-state 值为 new 时,--name 的参数值必须位于 --initial-cluster 列表中;
# etcd 各节点创建环境变量配置文件/etc/etcd/etcd.conf
# k8s-m1 10.0.3.221
mkdir /etc/etcd
cat > /etc/etcd/etcd.conf <<EOF
# [member]
ETCD_NAME=infra1
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_LISTEN_PEER_URLS="https://10.0.3.221:2380"
ETCD_LISTEN_CLIENT_URLS="https://10.0.3.221:2379"
# [cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://10.0.3.221:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="https://10.0.3.221:2379"
EOF
# k8s-n1 10.0.3.222
mkdir /etc/etcd
cat > /etc/etcd/etcd.conf <<EOF
# [member]
ETCD_NAME=infra2
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_LISTEN_PEER_URLS="https://10.0.3.222:2380"
ETCD_LISTEN_CLIENT_URLS="https://10.0.3.222:2379"
# [cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://10.0.3.222:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="https://10.0.3.222:2379"
EOF
# k8s-n2 10.0.3.223
mkdir /etc/etcd
cat > /etc/etcd/etcd.conf <<EOF
# [member]
ETCD_NAME=infra3
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_LISTEN_PEER_URLS="https://10.0.3.223:2380"
ETCD_LISTEN_CLIENT_URLS="https://10.0.3.223:2379"
# [cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://10.0.3.223:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="https://10.0.3.223:2379"
EOF
# 启动 etcd 服务
# k8s-m1 10.0.3.221, k8s-n1 10.0.3.222, k8s-n2 10.0.3.223
systemctl daemon-reload
systemctl enable etcd
systemctl start etcd
systemctl status etcd
在3个 节点重复上面的步骤,直到所有机器的 etcd 服务都已启动。
# 验证服务
# k8s-m1 10.0.3.221
etcdctl \
--ca-file=/etc/kubernetes/ssl/ca.pem \
--cert-file=/etc/kubernetes/ssl/kubernetes.pem \
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
cluster-health
# 可以在任意一台 kubernetes master 机器上执行以上命令:
# 结果最后一行为 cluster is healthy 时表示集群服务正常:
复制代码
作者:
宝创
时间:
2018-3-19 22:11
先收藏 绝对有用
作者:
优秀的苦瓜
时间:
2018-3-19 22:12
提示:
作者被禁止或删除 内容自动屏蔽
作者:
ccnif
时间:
2018-3-19 22:31
宝创 发表于 2018-3-19 22:11
先收藏 绝对有用
作者:
ccnif
时间:
2018-3-19 22:33
优秀的苦瓜 发表于 2018-3-19 22:12
收藏先,洗白白再来看
作者:
zhongziso
时间:
2018-3-19 23:41
牛逼
欢迎光临 全球主机交流论坛 (https://mjj.022333.xyz/)
Powered by Discuz! X3.4