Kubernetes 集群部署(2) -- Etcd 集群
Kubenetes 集群部署规划:
192.168.137.81 | Master |
192.168.137.82 | Node |
192.168.137.83 | Node |
以下在 Master 节点操作。
1. 创建目录,用于存放 kuburnetes 相关的文件。
mkdir -p /opt/k8s/{bin,cfg,ssl}
2. 获取下面的文件并解压,把解压后的 etcd 和 etcdctl 两个文件放到 /opt/k8s/bin 目录下
wget https://github.com/etcd-io/etcd/releases/download/v3.3.12/etcd-v3.3.12-linux-amd64.tar.gz
3. 把 kubernetes 集群部署 自签 TLS 证书 中生的 *.pem 文件都复制到 /opt/k8s/ssl 下。
4. 创建文件 vim /opt/k8s/cfg/etcd.conf,文件内容如下(IP 地址改成自己3台机器的IP):
#[Member] ETCD_NAME="etcd01" ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_PEER_URLS="https://192.168.137.81:2380" ETCD_LISTEN_CLIENT_URLS="https://192.168.137.81:2379" #[clustering] ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.137.81:2380" ETCD_ADVERTISE_CLIENT_URLS="https://192.168.137.81:2379" ETCD_INITIAL_CLUSTER="etcd01=https://192.168.137.81:2380,etcd02=https://192.168.137.82:2380,etcd03=https://192.168.137.83:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster" ETCD_INITIAL_CLUSTER_STATE="new"
5. 创建一个 service: vim /usr/lib/systemd/system/etcd.service 内容如下
[Unit] Description=Etcd Server After=network.target After=network-online.target Wants=network-online.target [Service] Type=notify EnvironmentFile=-/opt/k8s/cfg/etcd.conf ExecStart=/opt/k8s/bin/etcd \ --name=${ETCD_NAME} \ --data-dir=${ETCD_DATA_DIR} \ --listen-peer-urls=${ETCD_LISTEN_PEER_URLS} \ --listen-client-urls=${ETCD_ADVERTISE_CLIENT_URLS},http://127.0.0.1:2379 \ --advertise-client-urls=${ETCD_ADVERTISE_CLIENT_URLS} \ --initial-advertise-peer-urls=${ETCD_INITIAL_ADVERTISE_PEER_URLS} \ --initial-cluster=${ETCD_INITIAL_CLUSTER} \ --initial-cluster-token=${ETCD_INITIAL_CLUSTER} \ --initial-cluster-state=new \ --cert-file=/opt/k8s/ssl/server.pem \ --key-file=/opt/k8s/ssl/server-key.pem \ --peer-cert-file=/opt/k8s/ssl/server.pem \ --peer-key-file=/opt/k8s/ssl/server-key.pem \ --trusted-ca-file=/opt/k8s/ssl/ca.pem \ --peer-trusted-ca-file=/opt/k8s/ssl/ca.pem Restart=on-failure LimitNOFILE=65536 [Install] WantedBy=multi-user.target
6. 启动这个 service
systemctl start etcd
如果启动出错,可以通过下面的命令查看日志:
journalctl -u etcd 或 tail -n 100 /var/log/messages
通过以下命令可以设置 service 开机自启:
systemctl enable etcd
7. 在另外两台 Node 节点上也创建相应的目录,并把上面用到的文件都 copy 到 Node 节点上相应的目录。修改 /opt/k8s/cfg/etcd.conf 文件中 ETCD_NAME 的值和其它 IP 的值。并且启动 etcd。
8. 检查集群状态
../bin/etcdctl --ca-file=ca.pem --cert-file=server.pem \
--key-file=server-key.pem \
--endpoints="https://192.168.137.81:2379,https://192.168.137.82:2379,https://192.168.137.83:2379" \
cluster-health