• etcd集群


    使用外部etcd数据库集群,复用kubernetes节点

    1.搭建etcd集群

       下载安装证书生成工具

    curl -s -L -o /bin/cfssl https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
    curl -s -L -o /bin/cfssljson https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
    curl -s -L -o /bin/cfssl-certinfo https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
    chmod +x /bin/{cfssl,cfssljson,cfssl-certinfo}
    

      配置ca配置文件

    vim ca-config.json 
    {
        "signing": {
            "default": {
                "expiry": "8760h"
            },
            "profiles": {
                "kubernetes": {
                    "expiry": "8760h",
                    "usages": [
                        "signing",
                        "key encipherment",
                        "server auth",
                        "client auth"
                    ]
                }
            }
        }
    }
    

     配置ca生成请求

    vim ca-csr.json 
    {
        "CN": "kubernetes",
        "key": {
            "algo": "rsa",
            "size": 2048
        },
        "names": [
            {
                "C": "CN",
                "ST": "CQ",
                "L": "Jiangbei",
                "O": "kubernetes",
                "OU": "IT"
            }
        ]
    } 
    

     生成ca

    cfssl gencert -initca ca-csr.json | cfssljson -bare ca
    

     下载etcd

    wget https://github.com/etcd-io/etcd/releases/download/v3.3.10/etcd-v3.3.10-linux-amd64.tar.gz
    

     配置etcd证书请求

    cat etcd-csr.json 
    {
        "CN": "etcd",
        "hosts": [
            "127.0.0.1",
            "192.168.xxx.xxa",
            "192.168.xxx.xxb",
            "192.168.xxx.xxc"
        ],
        "key": {
            "algo": "rsa",
            "size": 2048
        },
        "names": [
            {
                "C": "CN",
                "ST": "CQ",
                "L": "Jiangbei",
                "O": "kubernetes",
                "OU": "IT"
            }
        ]
    }
    

     签署证书,并copy证书到相关目录,创建存储目录 /var/lib/etcd

    cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes etcd-csr.json | cfssljson -bare etcd
    

       生成etcd unit文件

    vim /usr/lib/systemd/system/etcd.service
    [Unit]
    Description=Etcd Server
    Documentation=https://github.com/coreos
    After=network.target
    After=network-online.target
    Wants=network-online.target
    
    [Service]
    Type=notify
    WorkingDirectory=/var/lib/etcd/
    ExecStart=/usr/local/bin/etcd 
    --name=master01 
    --cert-file=/etc/etcd/certs/etcd.pem 
    --key-file=/etc/etcd/certs/etcd-key.pem 
    --peer-cert-file=/etc/etcd/certs/etcd.pem 
    --peer-key-file=/etc/etcd/certs/etcd-key.pem 
    --trusted-ca-file=/etc/etcd/certs/ca.pem 
    --peer-trusted-ca-file=/etc/etcd/certs/ca.pem 
    --initial-advertise-peer-urls=https://192.168.xxx.xxa:2380 
    --listen-peer-urls=https://192.168.xxx.xxa:2380 
    --listen-client-urls=https://192.168.xxx.xxa:2379,http://127.0.0.1:2379 
    --advertise-client-urls=https://192.168.xxx.xxa:2379 
    --initial-cluster-token=etcd-cluster 
    --initial-cluster=master01=https://192.168.xxx.xxa:2380,master02=https://192.168.xxx.xxb:2380,master03=https://192.168.xxx.xxc:2380 
    --initial-cluster-state=new 
    --data-dir=/var/lib/etcd
    Restart=on-failure
    RestartSec=5
    LimitNOFILE=65536
    
    [Install]
    WantedBy=multi-user.target
    

     其他节点类似,完成后验证操作

    etcdctl  --ca-file /etc/etcd/certs/ca.pem --cert-file /etc/etcd/certs/etcd.pem --key-file /etc/etcd/certs/etcd-key.pem member list
    etcdctl  --ca-file /etc/etcd/certs/ca.pem --cert-file /etc/etcd/certs/etcd.pem --key-file /etc/etcd/certs/etcd-key.pem cluster-health
    

     删除节点和重新添加节点

    删除节点
    etcdctl --ca-file /etc/etcd/certs/ca.pem --cert-file /etc/etcd/certs/etcd.pem --key-file /etc/etcd/certs/etcd-key.pem member remove xxxx 重新添加节点 etcdctl --ca-file /etc/kubernetes/ssl/ca.pem --cert-file /etc/kubernetes/ssl/etcd.pem --key-file /etc/kubernetes/ssl/etcd-key.pem member add master01 https://192.168.1.111:2380 rm -rf /var/lib/etcd/* sed -i 's/new/existing/g' /usr/lib/systemd/system/etcd.service systemctl daemon-reload systemctl restart etcd.service

      

     

  • 相关阅读:
    LINUX的SSH下FTP到远程服务器Entering Passive Mode失败解决
    LINUX的SSH下FTP到远程服务器Entering Passive Mode失败解决
    LINUX的SSH下FTP到远程服务器Entering Passive Mode失败解决
    git rm简介
    git rm简介
    git rm简介
    linux rz -e
    新版住院电子病历首页 (2012年修订说明)
    DateEdit和TimeEdit用法
    ORA-22868: 具有 LOB 的表包含有位于不同表空间的段
  • 原文地址:https://www.cnblogs.com/gandefeng/p/10183664.html
Copyright © 2020-2023  润新知