• 【二进制部署k8s-1.29.4】三、etcd集群的安装配置


    简介

    本章节主要讲解安装etcd的过程,并通过脚本etcd.sh来查看etcd的集群状态以及etcd的数据库中存放数据的情况,也可以通过etcd.sh脚本来进行etcd的备份和还原。

    第一章.安装前软件准备及系统初始化阶段
    第二章.证书及配置文件的准备

    一.确认证书文件

    1.在第二章“二.【二进制安装k8s-1.29.4】证书及配置文件的准备”,我们准备了所有相关的证书级配置文件,其中ca.pem和ca-key.pem生成在ca目录下,etcd.pem和etcd-key.pem生成在install_etcd目录下。
    2.再次确认如下四个证书是否存在:ca.pem,etcd-key.pem,etcd.pem,ca-key.pem。
    3.该四个证书是通过ca-config.json,ca-csr.json先生成CA证书ca.pem和ca-key.pem,然后在通过etcd-csr.json 生成etcd.pem 和etcd-key.pem。
    4.将ca.pem,etcd-key.pem,etcd.pem,ca-key.pem 拷贝到/opt/etcd/ssl目录下

    二.准备配置文件

    安装etcd的三台机器的配置都不一样,在第二章“二.【二进制安装k8s-1.29.4】证书及配置文件的准备”中有准备好三台机所需的etcd.conf,将etcd.conf拷贝到/opt/etcd/conf。

    三.安装etcd

    先下载好etcd-v3.5.4-linux-amd64.tar.gz,下载地址参见第一章:“一.【二进制安装k8s-1.29.4】安装前软件准备及系统初始化阶段”

    mkdir -p /opt/etcd/{conf,bin,ssl,logs} #创建目录
    tar zxvf etcd-v3.5.4-linux-amd64.tar.gz
    cp etcd-v3.5.4-linux-amd64/etcd* /opt/etcd/bin/ #将etcd的三个可执行文件拷贝过去
    rm -rf etcd-v3.5.4-linux-amd64
    

    四.启动脚本

    在第二章“二.【二进制安装k8s-1.29.4】证书及配置文件的准备”中我们有准备好etcd.service的启动脚本,将etcd.service 拷贝存到/usr/lib/systemd/system/,然后执行
    systemctl daemon-reload
    systemctl enable etcd
    systemctl start etcd

    五、验证安装

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

    在这里插入图片描述

    #!/bin/bash
    
    etcdIp="https://10.16.120.81:2379,https://10.16.120.82:2379,https://10.16.120.83: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://10.16.120.81: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
    
  • 相关阅读:
    python学习-----logging模块
    Maika 与越南童模们受邀请参加中国上海时装周 hanakimi 品牌开幕
    WPF优秀组件推荐之MahApps
    R 语言的安装教程
    React从入门到精通
    ClickHouse基本原理
    Jmeter常用功能-参数化介绍
    简单实现spring的set依赖注入
    C语言之:函数的声明和定义必备练习题
    Shiro 01(shiro框架入门)
  • 原文地址:https://blog.csdn.net/weixin_56364253/article/details/139330114