• k8s v1.9.9 二进制部署 (3)创建高可用etcd集群


    1.etcd集群认证文件确认

    #确认三个节点目录下都有下面文件。

    $ll /etc/kubernetes/ssl/kubernetes*

    -rw------- 1 root root 1675 Dec 28 12:24 /etc/kubernetes/ssl/kubernetes-key.pem

    -rw-r--r-- 1 root root 1627 Dec 28 12:24 /etc/kubernetes/ssl/kubernetes.pem

    2.安装Etcd

    三个节点使用yum安装etcd服务。

    #yum info etcd

     Version     : 3.3.11  我这里的版本。

    $yum -y install etcd

    3.创建etcd的systemd unit文件

    1、IP除了initial-cluster 配置项是配置集群内3个地址的IP外,其他IP均为本机的IP。

    2、配置里--name必须与--initial-cluster的名称相对应。

    3、通过不同方式安装的软件Execstart配置项下的程序启动命令路径注意修改。

    4、WorkingDirectory工作目录需要实现创建,否则启动会报错,yum安装的方式是自动创建的。

    3.1.master131节点:

    $cat > /usr/lib/systemd/system/etcd.service <<eof

    [Unit]

    Description=Etcd Server

    After=network.target

    After=network-online.target

    Wants=network-online.target

    Documentation=https://github.com/coreos

     

    [Service]

    Type=notify

    WorkingDirectory=/var/lib/etcd/

    EnvironmentFile=-/etc/etcd/etcd.conf

    ExecStart=/usr/bin/etcd   --name etcd1  --cert-file=/etc/kubernetes/ssl/kubernetes.pem   --key-file=/etc/kubernetes/ssl/kubernetes-key.pem   --peer-cert-file=/etc/kubernetes/ssl/kubernetes.pem   --peer-key-file=/etc/kubernetes/ssl/kubernetes-key.pem   --trusted-ca-file=/etc/kubernetes/ssl/ca.pem   --peer-trusted-ca-file=/etc/kubernetes/ssl/ca.pem   --initial-advertise-peer-urls https://192.168.7.131:2380   --listen-peer-urls https://192.168.7.131:2380   --listen-client-urls https://192.168.7.131:2379,http://127.0.0.1:2379   --advertise-client-urls https://192.168.7.131:2379   --initial-cluster-token etcd-cluster-0   --initial-cluster etcd1=https://192.168.7.131:2380,etcd2=https://192.168.7.132:2380,etcd3=https://192.168.7.133:2380   --initial-cluster-state new   --data-dir=/var/lib/etcd

    Restart=on-failure

    RestartSec=5

    LimitNOFILE=65536

     

    [Install]

    WantedBy=multi-user.target

    eof

    3.2 .node132节点

    $cat > /usr/lib/systemd/system/etcd.service <<eof

    [Unit]

    Description=Etcd Server

    After=network.target

    After=network-online.target

    Wants=network-online.target

    Documentation=https://github.com/coreos

    [Service]

    Type=notify

    WorkingDirectory=/var/lib/etcd/

    EnvironmentFile=-/etc/etcd/etcd.conf

    ExecStart=/usr/bin/etcd   --name etcd2   --cert-file=/etc/kubernetes/ssl/kubernetes.pem   --key-file=/etc/kubernetes/ssl/kubernetes-key.pem   --peer-cert-file=/etc/kubernetes/ssl/kubernetes.pem   --peer-key-file=/etc/kubernetes/ssl/kubernetes-key.pem   --trusted-ca-file=/etc/kubernetes/ssl/ca.pem   --peer-trusted-ca-file=/etc/kubernetes/ssl/ca.pem   --initial-advertise-peer-urls https://192.168.7.132:2380   --listen-peer-urls https://192.168.7.132:2380   --listen-client-urls https://192.168.7.132:2379,http://127.0.0.1:2379   --advertise-client-urls https://192.168.7.132:2379   --initial-cluster-token etcd-cluster-0   --initial-cluster etcd1=https://192.168.7.131:2380,etcd2=https://192.168.7.132:2380,etcd3=https://192.168.7.133:2380   --initial-cluster-state new   --data-dir=/var/lib/etcd

    Restart=on-failure

    RestartSec=5

    LimitNOFILE=65536

    [Install]

    WantedBy=multi-user.target

    eof

    3.3 .node133节点

    $cat > /usr/lib/systemd/system/etcd.service <<eof

    [Unit]

    Description=Etcd Server

    After=network.target

    After=network-online.target

    Wants=network-online.target

    Documentation=https://github.com/coreos

     

    [Service]

    Type=notify

    WorkingDirectory=/var/lib/etcd/

    EnvironmentFile=-/etc/etcd/etcd.conf

    ExecStart=/usr/bin/etcd   --name etcd3   --cert-file=/etc/kubernetes/ssl/kubernetes.pem   --key-file=/etc/kubernetes/ssl/kubernetes-key.pem   --peer-cert-file=/etc/kubernetes/ssl/kubernetes.pem   --peer-key-file=/etc/kubernetes/ssl/kubernetes-key.pem   --trusted-ca-file=/etc/kubernetes/ssl/ca.pem   --peer-trusted-ca-file=/etc/kubernetes/ssl/ca.pem   --initial-advertise-peer-urls https://192.168.7.133:2380   --listen-peer-urls https://192.168.7.133:2380   --listen-client-urls https://192.168.7.133:2379,http://127.0.0.1:2379   --advertise-client-urls https://192.168.7.133:2379   --initial-cluster-token etcd-cluster-0   --initial-cluster etcd1=https://192.168.7.131:2380,etcd2=https://192.168.7.132:2380,etcd3=https://192.168.7.133:2380   --initial-cluster-state new   --data-dir=/var/lib/etcd

    Restart=on-failure

    RestartSec=5

    LimitNOFILE=65536

     

    [Install]

    WantedBy=multi-user.target

    eof

    4.创建etcd配置文件

    1、IP地址替换为本机的即可。

    2、ETCD_NAME按照etcd系统服务里面的配置一一对应。

    4.1.master131节点:

    $cat > /etc/etcd/etcd.conf <<eof

    # [member]

    ETCD_NAME=etcd1

    ETCD_DATA_DIR="/var/lib/etcd"

    ETCD_LISTEN_PEER_URLS="https://192.168.7.131:2380"

    ETCD_LISTEN_CLIENT_URLS="https://192.168.7.131:2379"

    #[cluster]

    ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.7.131:2380"

    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

    ETCD_ADVERTISE_CLIENT_URLS="https://192.168.7.131:2379"

    eof

    4.2 .node132节点:

    $cat > /etc/etcd/etcd.conf <<eof

    # [member]

    ETCD_NAME=etcd2

    ETCD_DATA_DIR="/var/lib/etcd"

    ETCD_LISTEN_PEER_URLS="https://192.168.7.132:2380"

    ETCD_LISTEN_CLIENT_URLS="https://192.168.7.132:2379"

    #[cluster]

    ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.7.132:2380"

    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

    ETCD_ADVERTISE_CLIENT_URLS="https://192.168.7.132:2379"

    eof

    4.3 .node133节点:

    $cat > /etc/etcd/etcd.conf <<eof

    # [member]

    ETCD_NAME=etcd3

    ETCD_DATA_DIR="/var/lib/etcd"

    ETCD_LISTEN_PEER_URLS="https://192.168.7.133:2380"

    ETCD_LISTEN_CLIENT_URLS="https://192.168.7.133:2379"

    #[cluster]

    ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.7.133:2380"

    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

    ETCD_ADVERTISE_CLIENT_URLS="https://192.168.7.133:2379"

    eof

     

    5.开机启动及启动etcd

    systemctl daemon-reload

    systemctl enable etcd

    systemctl start etcd

    systemctl status etcd

     

    6.检测集群工作情况

    在任意一个节点,master或者node都可以,执行以下命令

    $etcdctl

     --ca-file=/etc/kubernetes/ssl/ca.pem

     --cert-file=/etc/kubernetes/ssl/kubernetes.pem

     --key-file=/etc/kubernetes/ssl/kubernetes-key.pem

     cluster-health

    如果输出类似如下如的情况,代表成功:

    image.png

      1、建议所有节点都运行一次检测。

      2、以后使用etcd查询数据都需要使用认证文件,即上述格式。

  • 相关阅读:
    SQL查询,所有的客户订单日期最新的前五条订单记录。
    session的原理
    @RequestMapping 注解用在类上面有什么作用?
    事务的概念,在JDBC编程中处理事务的步骤
    .Redis优势
    Spring框架中都用到了哪些设计模式?
    redis
    你为什么觉得自己能够在这个职位上取得成就?
    怎样理解团队?请举例并说明启示。
    物质待遇和工作条件是人们选择工作的重要因素之一,这次报考谈一谈你在选择工作时都考虑哪些因素?为什么?
  • 原文地址:https://www.cnblogs.com/you-xiaoqing/p/14303005.html
Copyright © 2020-2023  润新知