返回
零基础 Kubernetes 二进制搭建——部署 etcd 集群
见解分享
2023-11-23 05:20:23
摘要:
作为 Kubernetes(K8S)集群的数据库,etcd 扮演着至关重要的角色。为了确保集群的稳定运行,我们首先需要部署一个高可用的 etcd 集群。本文将详细介绍如何在三台虚拟机上部署 etcd 集群,为 K8S 组件提供可靠的服务基础。
前提条件
- 三台具有相同操作系统的虚拟机
- 对 Linux 系统基本命令的熟悉
- 稳定的网络连接
部署 etcd 集群
步骤 1:创建 etcd 数据目录
在每台虚拟机上创建 etcd 数据目录:
mkdir /etc/etcd
mkdir /var/lib/etcd
步骤 2:下载 etcd 二进制文件
下载最新版本的 etcd 二进制文件:
wget https://github.com/etcd-io/etcd/releases/download/v3.5.4/etcd-v3.5.4-linux-amd64.tar.gz
步骤 3:解压二进制文件
解压下载的二进制文件:
tar -xvf etcd-v3.5.4-linux-amd64.tar.gz
步骤 4:创建 systemd 单元文件
在每台虚拟机上创建 systemd 单元文件:
sudo vim /etc/systemd/system/etcd.service
并添加以下内容:
[Unit]
Description=etcd - a distributed reliable key-value store
Documentation=https://github.com/etcd-io/etcd
After=network.target
[Service]
Type=notify
User=root
WorkingDirectory=/etc/etcd
ExecStart=/usr/local/bin/etcd \
--name etcd-${HOSTNAME} \
--data-dir /var/lib/etcd \
--advertise-client-urls https://${HOSTNAME}:2379 \
--listen-client-urls https://0.0.0.0:2379,https://0.0.0.0:4001 \
--listen-peer-urls https://${HOSTNAME}:2380 \
--initial-advertise-peer-urls https://${HOSTNAME}:2380 \
--initial-cluster-token etcd-cluster \
--initial-cluster etcd-${HOSTNAME}=https://${HOSTNAME}:2380,etcd-1=https://k8s-1:2380,etcd-2=https://k8s-2:2380
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
步骤 5:配置证书和密钥
(可选) 生成自签名证书和密钥
如果您希望启用 HTTPS 连接,需要生成自签名证书和密钥:
openssl req -x509 -newkey rsa:4096 -keyout /etc/etcd/etcd.key -out /etc/etcd/etcd.crt -days 3650 -nodes
使用外部证书和密钥
如果您已经拥有证书和密钥,请将其复制到 /etc/etcd/
目录中。
步骤 6:启动 etcd 服务
在每台虚拟机上启动 etcd 服务:
sudo systemctl start etcd
sudo systemctl enable etcd
步骤 7:验证 etcd 集群
使用以下命令验证 etcd 集群:
etcdctl --endpoints=https://k8s-1:2379,https://k8s-2:2379,https://k8s-3:2379 member list
输出应显示三个 etcd 成员,状态为 "started"。
结论
通过按照上述步骤,您已经成功部署了一个高可用的 etcd 集群。它将为您的 K8S 集群提供一个可靠且稳定的数据库基础。后续,您可以继续部署 K8S 组件,为您的应用程序提供一个高效且可扩展的容器编排平台。