08 etcd环境安装

本文详细介绍了如何在不同平台上下载并安装etcd v3.5.2,包括启动步骤、简单使用示例,如设置、查询和删除键值。适合作为配置中心部署入门教程。

etcd环境安装

etcd是一个分布式的键值存储系统,其优秀的读写性能、一致性和可用性的机制,非常适合用来做配置中心角色。

1.下载

[下载地址]下载预构建的二进制文件,根据不同平台选择:

etcd-v3.5.2-darwin-amd64.zip
etcd-v3.5.2-linux-amd64.tar.gz
etcd-v3.5.2-linux-arm64.tar.gz
etcd-v3.5.2-linux-ppc64le.tar.gz
etcd-v3.5.2-linux-s390x.tar.gz
etcd-v3.5.2-windows-amd64.zip
SHA256SUMS
Source code (zip)
Source code (tar.gz)

2.启动

./etcd

启动另一个终端:

./etcdctl put foo bar

如果 OK 被打印出来,表示 etcd 启动成功!

3.简单使用

设置key

.\etcdctl.exe --endpoints=http://127.0.0.1:2379 put name "张三"

查询key

.\etcdctl.exe --endpoints=http://127.0.0.1:2379 get name

删除key

.\etcdctl.exe --endpoints=http://127.0.0.1:2379 del name
在生产环境中使用 `kubeadm` 部署 Kubernetes 集群时,需要遵循一系列步骤和最佳实践,以确保集群的高可用性、安全性和稳定性。以下是详细的部署方法和建议: ### 1. 准备工作 在开始部署之前,确保所有节点满足以下前提条件: - 所有节点之间可以通过 TCP 端口 2379 和 2380 互相通信。 - 每台主机必须安装了 `systemd` 和与 `bash` 兼容的 shell。 - 每台主机必须安装了容器运行时(如 Docker 或 containerd)、`kubelet` 和 `kubeadm`。 - 每台主机必须能够访问 Kubernetes 容器镜像注册中心(如 `k8s.gcr.io`),或者使用 `kubeadm config images list/pull` 命令预先拉取所需的镜像。 - 需要一些在主机间复制文件的基础设施,如 `ssh` 和 `scp` [^3]。 对于基于 Red Hat 的发行版,可以通过以下命令安装 Kubernetes 组件: ```bash cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch enabled=1 gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg exclude=kubelet kubeadm kubectl EOF # 将 SELinux 设置为宽容模式(实际上禁用它) sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config # 使用 yum 安装 kubelet、kubeadm 和 kubectl sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes # 启动并启用 kubelet 服务 sudo systemctl enable --now kubelet ``` ### 2. 配置高可用性 为了确保集群的高可用性,可以采用两种不同的方式来设置控制平面节点: - **堆叠的控制平面节点**:这种方法需要较少的基础设施,`etcd` 成员与控制平面节点位于同一个地方。 - **外部集群**:这种方法需要更多的基础设施,控制平面的节点和 `etcd` 成员是分开的 [^2]。 如果选择外部 `etcd` 集群,可以创建一个由 3 个成员组成的 `etcd` 集群。这可以通过 `kubeadm` 的配置文件进行配置,并确保每个 `etcd` 实例被 `kubelet` 管理为静态 Pod [^3]。 ### 3. 初始化集群 使用 `kubeadm init` 命令初始化集群时,可以指定一个配置文件来定义集群的详细参数。例如,以下是一个简单的配置文件示例: ```yaml apiVersion: kubeadm.k8s.io/v1beta3 kind: InitConfiguration bootstrapTokens: - token: "9a08jv.c0ij0123456789" description: "Initial token for joining nodes" ttl: "24h" nodeRegistration: name: "control-plane" criSocket: "/run/containerd/containerd.sock" taints: [] --- apiVersion: kubeadm.k8s.io/v1beta3 kind: ClusterConfiguration kubernetesVersion: "1.24.0" controlPlaneEndpoint: "LOAD_BALANCER_DNS:LOAD_BALANCER_PORT" etcd: external: endpoints: - https://etcd1.example.com:2379 - https://etcd2.example.com:2379 - https://etcd3.example.com:2379 caFile: /etc/kubernetes/pki/etcd/ca.crt certFile: /etc/kubernetes/pki/apiserver-etcd-client.crt keyFile: /etc/kubernetes/pki/apiserver-etcd-client.key networking: podSubnet: "10.244.0.0/16" serviceSubnet: "10.96.0.0/12" ``` 运行 `kubeadm init` 命令时,使用 `--config` 参数指定该配置文件: ```bash sudo kubeadm init --config=kubeadm-config.yaml ``` ### 4. 配置 kubeconfig 初始化完成后,需要配置 `kubeconfig` 文件以便 `kubectl` 可以与集群通信。可以通过以下命令将 `admin.conf` 文件添加到环境变量中: ```bash echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile source .bash_profile ``` ### 5. 添加工作节点 使用 `kubeadm join` 命令将工作节点加入到集群中。在控制平面节点上运行 `kubeadm init` 后,会输出一个 `join` 命令,可以直接在工作节点上执行该命令以加入集群。 ### 6. 版本管理和升级 `kubeadm` 支持集群的生命周期管理,包括版本升级。在升级集群时,确保所有节点上的 `kubelet`、`kubeadm` 和 `kubectl` 版本一致,并按照官方文档中的步骤进行操作。 ### 7. 安全性和监控 - **安全策略**:启用 RBAC(基于角色的访问控制),并配置适当的网络策略以限制不必要的通信。 - **监控**:使用 Prometheus 和 Grafana 等工具监控集群的状态和性能。 - **日志**:使用 Fluentd 或 Logstash 收集日志,并通过 Elasticsearch 和 Kibana 进行分析。 通过以上步骤和最佳实践,可以在生产环境中成功部署一个高可用、安全且稳定的 Kubernetes 集群。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值