【k8s-1.34.2安装部署】三.etcd-v3.6.6 TLS版集群安装

简介: 本章节主要讲解etcd-v3.6.6集群的安装过程,并通过脚本etcd.sh来查看etcd的集群状态以及etcd的数据库中存放数据的情况,也可以通过etcd.sh脚本来进行etcd的备份和还原。上一章中我们准备了etcd安装所需要的证书、配置、启动脚步、检测脚本。

简介

本章节主要讲解etcd-v3.6.6集群的安装过程,并通过脚本etcd.sh来查看etcd的集群状态以及etcd的数据库中存放数据的情况,也可以通过etcd.sh脚本来进行etcd的备份和还原。上一章中我们准备了etcd安装所需要的证书、配置、启动脚步、检测脚本。

== 文章导航===

【k8s-1.34.2安装部署】一.系统初始化及k8s集群规划
【k8s-1.34.2安装部署】二.kubernets软件、证书、配置、脚本等文件准备
【k8s-1.34.2安装部署】三.etcd-v3.6.6 TLS版集群安装
【k8s-1.34.2安装部署】四.kubernets master组件kube-apiserver,kube-controller-manager,kube-scheduler安装
【k8s-1.34.2安装部署】五.worker端containerd2.2.1、kubelet-1.34.2安装
【k8s-1.34.2安装部署】六.企业级部署cilium-1.18.4网络插件
【k8s-1.34.2安装部署】七.coredns-v1.13.1安装
【k8s-1.34.2安装部署】八.metric-server-0.8.0安装
【k8s-1.34.2安装部署】九.k8s管理平台xkube安装部署
【k8s-1.34.2安装部署】十.gateway Api v1.4.0安装
【k8s-1.34.2安装部署】十一.metallb-v0.15.2安装

一.安装etcd

1.1. 安装包安装

在第二章时我们准备了etcd的安装包,接下来我们只需要将安装包中的内容拷贝到对应的目录并启动即可,将etcd目录及文件拷贝到/opt/下,并将etcd.service拷贝到/usr/lib/systemd/system/,同时在规划的etcd01,etcd02,etcd03的机器上,分别将配置文件重命名为etcd.conf,并删除另外两个文件。例如:etcd01.my-k8s.local 对应etcd01.conf

etcd目录结构如下:

├── bin
│   ├── etcd
│   ├── etcdctl
│   └── etcdutl
├── conf
│   ├── etcd01.conf
│   ├── etcd02.conf
│   └── etcd03.conf
├── etcd.service
├── logs
└── ssl
    ├── ca-key.pem
    ├── ca.pem
    ├── etcd-key.pem
    └── etcd.pem

1.2.配置etcd的主机名映射

修改/etc/hosts,添加如下配置,此处的IP为需要安装etcd集群的三个IP,主机名需要与etcd.conf中的一致。三台机都需要配置如下映射

192.168.10.185 etcd01.my-k8s.local
192.168.10.186 etcd02.my-k8s.local
192.168.10.187 etcd03.my-k8s.local

二.启动etcd

在三台机上分别执行如下命令
systemctl daemon-reload
systemctl enable etcd
systemctl start etcd

三、验证安装

1.通过命令systemctl status etcd看看启动是否正常,安装是否报错
2.通过查看集群状态来确认服务是否安装正常。将如下脚本保存为xetcd.sh,然后执行:./xetcd.sh all,该脚本可以单独查集群健康状态、查看etcd的状态,列出etcd集群列表,备份etcd数据库,还原etcd数据库。

./xetcd.sh all 命令执行的结果如下:

+----------------------------------+--------+-------------+-------+
|             ENDPOINT             | HEALTH |    TOOK     | ERROR |
+----------------------------------+--------+-------------+-------+
| https://etcd03.my-k8s.local:2379 |   true | 15.988935ms |       |
| https://etcd02.my-k8s.local:2379 |   true | 15.948957ms |       |
| https://etcd01.my-k8s.local:2379 |   true | 15.803808ms |       |
+----------------------------------+--------+-------------+-------+
+------------------+---------+--------+----------------------------------+----------------------------------+------------+
|        ID        | STATUS  |  NAME  |            PEER ADDRS            |           CLIENT ADDRS           | IS LEARNER |
+------------------+---------+--------+----------------------------------+----------------------------------+------------+
| 206f11271cff2cca | started | etcd01 | https://etcd01.my-k8s.local:2380 | https://etcd01.my-k8s.local:2379 |      false |
| 2636113ae997b450 | started | etcd03 | https://etcd03.my-k8s.local:2380 | https://etcd03.my-k8s.local:2379 |      false |
| a9a64ba8a4b9168a | started | etcd02 | https://etcd02.my-k8s.local:2380 | https://etcd02.my-k8s.local:2379 |      false |
+------------------+---------+--------+----------------------------------+----------------------------------+------------+
+----------------------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+
|             ENDPOINT             |        ID        | VERSION | STORAGE VERSION | DB SIZE | IN USE | PERCENTAGE NOT IN USE | QUOTA  | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS | DOWNGRADE TARGET VERSION | DOWNGRADE ENABLED |
+----------------------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+
| https://etcd01.my-k8s.local:2379 | 206f11271cff2cca |   3.6.6 |           3.6.0 |  125 MB |  59 MB |                   53% | 2.1 GB |      true |      false |         2 |    1313129 |            1313129 |        |                          |             false |
| https://etcd02.my-k8s.local:2379 | a9a64ba8a4b9168a |   3.6.6 |           3.6.0 |  125 MB |  59 MB |                   54% | 2.1 GB |     false |      false |         2 |    1313129 |            1313129 |        |                          |             false |
| https://etcd03.my-k8s.local:2379 | 2636113ae997b450 |   3.6.6 |           3.6.0 |  125 MB |  59 MB |                   54% | 2.1 GB |     false |      false |         2 |    1313129 |            1313129 |        |                          |             false |
+----------------------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+

xetcd.sh的脚本内容如下:

#!/bin/bash

etcdIp="https://etcd01.my-k8s.local:2379,https://etcd02.my-k8s.local:2379,https://etcd03.my-k8s.local:2379"
bakDir="/data/BAK"

health() {
        /opt/etcd/bin/etcdctl \
        --cacert=/opt/etcd/ssl/ca.pem \
        --cert=/opt/etcd/ssl/etcd.pem \
        --key=/opt/etcd/ssl/etcd-key.pem \
        --endpoints="${etcdIp}" endpoint health --write-out=table
}

status() {
        /opt/etcd/bin/etcdctl \
        --cacert=/opt/etcd/ssl/ca.pem \
        --cert=/opt/etcd/ssl/etcd.pem \
        --key=/opt/etcd/ssl/etcd-key.pem \
        --endpoints="${etcdIp}" endpoint status --write-out=table
}

list() {
        /opt/etcd/bin/etcdctl \
        --cacert=/opt/etcd/ssl/ca.pem \
        --cert=/opt/etcd/ssl/etcd.pem \
        --key=/opt/etcd/ssl/etcd-key.pem \
        --endpoints="${etcdIp}" member list -w table
}

bak() {
        /opt/etcd/bin/etcdctl \
        --cacert=/opt/etcd/ssl/ca.pem \
        --cert=/opt/etcd/ssl/etcd.pem \
        --key=/opt/etcd/ssl/etcd-key.pem \
        --endpoints="https://etcd01.my-k8s.local:2379" snapshot save ${bakDir}/`date +%Y%m%d%H%M%S`.db
}

restore() {
        bakfile=$1
        xIp=$2
        if [ ! -f $bakfile ];then
                echo "no file:$bakfile"
                return
        fi
        /opt/etcd/bin/etcdctl \
        --cacert=/opt/etcd/ssl/ca.pem \
        --cert=/opt/etcd/ssl/etcd.pem \
        --key=/opt/etcd/ssl/etcd-key.pem \
        --endpoints="${xIp}" --data-dir=/opt/etcd/default.etcd snapshot restore $bakfile
}


case $1 in
        health)
                health;;
        status)
                status;;
        list)
                list;;
        all)
                health
                list
                status;;
        bak)
                bak;;
        restore)
                restore "$2" "$3";;
        *)
                echo "$0 status|bak|restore \$2 \$3   #\$2 is bakfiepath,\$3 is etcd ip";;
esac
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
2月前
|
Kubernetes 负载均衡 网络协议
【k8s-1.34.2安装部署】一.系统初始化及k8s集群规划
k8s1.34.2的安装总体没什么变化,主要在于结合最新版本的containerd、gateway Api、istio、cilium进行安装,新版本的一些软件和旧的存在一些区别。本章节主要是通过搭建最新版的k8s集群,并搭建gateway Api来进行一些[xkube](https://gitee.com/eeenet/xkube)开发环境的调试和部署,现将整个k8s1.34.2的安装过程进行记录。
525 22
|
2月前
|
运维 Kubernetes NoSQL
【k8s-1.34.2安装部署】九.k8s管理平台xkube安装部署
xkube是一款永久免费、无功能限制的云原生Kubernetes多集群管理工具,支持PC端与APP端,提供集群管理、运维监控、CI/CD发布等功能,助力企业实现跨集群统一管理与自动化运维。
224 2
【k8s-1.34.2安装部署】九.k8s管理平台xkube安装部署
|
2月前
|
Kubernetes 容器 API
【k8s-1.34.2安装部署】四.kubernets master组件kube-apiserver,kube-controller-manager,kube-scheduler安装
本章介绍k8s-1.34.2中master组件的安装,涵盖kube-apiserver、kube-controller-manager、kube-scheduler的部署流程,包括文件准备、服务启动、状态验证及权限授权,为构建高可用集群奠定基础。
177 0
|
2月前
|
Kubernetes 网络安全 开发工具
【k8s-1.34.2安装部署】二.kubernets软件、证书、配置、脚本等文件准备
本章节将安装k8s-1.34需要的二进制文件、证书配置文件,脚本,以及etcd、master端组件、worker端组件所用到的配置文件、启动脚本都准备好。同时客户可以自行按照"一.系统初始化及k8s集群规划" 中的软件都下载准备好。该篇文章中的所有配置文件和脚本可以在git地址获取:https://gitee.com/eeenet/k8s-install
344 1
|
2月前
|
Kubernetes 网络安全 容器
【k8s-1.34.2安装部署】五.worker端containerd2.2.1、kubelet-1.34.2安装
本章介绍k8s-1.34.2 worker节点组件安装,涵盖containerd(含CNI、runc等)、kubelet部署与配置,完成节点验证及证书申请批准流程。
207 1
|
2月前
|
Kubernetes 数据可视化 Perl
【k8s-1.34.2安装部署】八.metric-server-0.8.0安装
本章介绍metrics-server的安装与配置,用于采集K8s集群中节点和Pod的CPU、内存指标,支撑Dashboard及xkub等工具的资源使用可视化。通过修改配置启用 insecure-tls 并替换为阿里云镜像,快速完成部署,安装后可通过`kubectl top`命令验证。
265 1
|
2月前
|
Kubernetes 监控 网络协议
【k8s-1.34.2安装部署】六.企业级部署cilium-1.18.4网络插件
本章详解K8s集群中CNI网络插件Cilium 1.18.4的安装配置,涵盖Helm部署、核心参数解析及状态验证。支持eBPF、Hubble可视化、带宽管理等功能,并提供镜像加速地址与常见问题处理方案。
845 7
|
监控 Kubernetes Cloud Native
浅谈基于 OpenStack 和 k8s 建设云原生研发基础设施
建设公司云原生研发基础设施,为研发部门提供安全、可靠、高效的基础资源、数据存储服务、DevOps 流水线以及运维自动化服务等。
5412 4
浅谈基于 OpenStack 和 k8s 建设云原生研发基础设施
|
2月前
|
Kubernetes 网络协议 API
【k8s-1.34.2安装部署】十.gateway Api v1.4.0安装
本章介绍Kubernetes Gateway API部署,重点讲解Istio作为更新最快、兼容性最佳的控制器。内容涵盖Istio安装、Gateway API部署(含实验版与正式版)、各类路由(HTTP、gRPC、TCP、UDP)配置示例及镜像拉取失败解决方案,助您快速上手Gateway API实践。
383 26
|
2月前
|
Kubernetes 网络协议 容器
【k8s-1.34.2安装部署】七.coredns-v1.13.1安装
本章介绍如何安装并验证coredns-v1.13.1。下载coredns.yaml.base文件,替换镜像地址、DNS域、内存限制及服务IP,应用配置后通过svc和pod验证CoreDNS解析功能是否正常。
220 11