zoukankan      html  css  js  c++  java
  • Etcd集群搭建(证书通信)

    1 安装生成证书工具

    1.0环境配置

    Nodes

    主机ip

    角色

    Etcd1

    192.168.253.***

    Master

    Etcd2

    192.168.253.***

    Node

    Etcd3

    192.168.253.***

    Node

    1.1 安装三个工具分别是cfsslcdssl-jsoncfssl-certinfo

    wget https://pkg.cfssl.org/R1.2/cfssl_ _linux-amd64

    wget https:// pkg.cfssl.org/R1.2/cfssljson__ linux- amd64

    wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_ _linux-amd64

    mv cfssI_ _linux- amd64 /usr/local/bin/cfssI

    mv cfssljson_ _linux-amd64 /usr/local/bin/cfssl-json

    mv cfssl-certinfo_ linux-amd64 /usr/bin/cfssI-certinfo

    chmod +x cfssl cfssl-json cfssl-certinfo

    2部署签发证书环境

    2.1签发ca证书

    [root@etcd1 ~]# mkdir /opt/certs

    [root@etcd1 ~]# vim /opt/certs/ca-csr.json

    {

          "CN": "kubernetes-ca",

          "hosts": [

          ],

          "key": {

              "algo": "rsa",

              "size": 2048

       },

          "names": [

              {

                  "C": "CN",

                  "ST": "beijing",

                  "L": "beijing",

                  "O": "od",

                  "OU": "ops"

              }

          ],

          "ca": {

              "expiry": "175200h"

          }

    }

    1)参数分析

    CN: Common Name,浏览器使用该字段验证网站是否合法,一般写的是域名。非常重要。浏览器使用该字段验证网站是否合法

    C: Country, 国家

    ST: State,州,省

    L: Locality,地区,城市

    O: Organization Name,组织名称,公司名称

    OU: Organization Unit Name,组织单位名称,公司部门

    2.2 生成ca证书

    [root@etcd1 certs]# cfssl gencert -initca ca-csr.json | cfssl-json -bare ca

    [root@host-1 certs]# ll

    total 16

    -rw-r--r-- 1 root root  332 Nov 14 22:04 ca-csr.json

    -rw------- 1 root root 1675 Nov 14 22:11 ca-key.pem

    -rw-r--r-- 1 root root 1001 Nov 14 22:11 ca.csr

    -rw-r--r-- 1 root root 1354 Nov 14 22:11 ca.pem

    3签发证书ca证书配置

    3.1创建ca证书配置文件

    [root@etcd1 ~]# cd /opt/certs/

    [root@etcd1 certs]# vim ca-config.json

    {

          "signing": {

              "default": {

                  "expiry": "175200h"

              },

              "profiles": {

                  "server": {

                      "expiry": "175200h",

                      "usages": [

                          "signing",

                          "key encipherment",

                          "server auth"

                      ]

                  },

                  "client": {

                      "expiry": "175200h",

                      "usages": [

                          "signing",

                          "key encipherment",

                          "client auth"

            ]

                  },

                  "peer": {

                      "expiry": "175200h",

                      "usages": [

                          "signing",

                          "key encipherment",

                          "server auth",

                          "client auth"

                      ]

                  }

              }

          }

    }

    3.2签发etcd证书

    [root@etcd1 certs]# vim etcd-peer-csr.json

    {

          "CN": "k8s-etcd",

          "hosts": [

              "192.168.253.100",

              "192.168.253.101",

              "192.168.253.102"

          ],

          "key": {

              "algo": "rsa",

              "size": 2048

          },

          "names": [

              {

                  "C": "CN",

                  "ST": "beijing",

                  "L": "beijing",

                  "O": "od",

                  "OU": "ops"

              }

          ]

    }

    3.3生成etcd证书

    [root@etcd1 certs]# cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=peer etcd-peer-csr.json | cfssl-json -bareetcd-peer

    [root@etcd1 certs]# ll etcd*

    -rw-r--r-- 1 root root  363 Nov 15 16:44 etcd-peer-csr.json

    -rw------- 1 root root 1675 Nov 15 16:46 etcd-peer-key.pem

    -rw-r--r-- 1 root root 1062 Nov 15 16:46 etcd-peer.csr

    -rw-r--r-- 1 root root 1432 Nov 15 16:46 etcd-peer.pem

    4部署etcd

    4.1创建用户

    [root@etcd1 ~]# mkdir /opt/src

    [root@etcd1 ~]# cd /opt/src

    [root@etcd1 src]# useradd -s /sbin/nologin -M etcd

    4.2安装etcd

    [root@etcd1src]#wget https://github.com/etcd-io/etcd/releases/download/v3.3.6/etcd-v3.3.6-linux-amd64.tar.gz

    [root@etcd1 src]# tar zxf etcd-v3.3.6-linux-amd64.tar.gz -C /opt

    [root@etcd1 src]# cd /opt/

    [root@etcd1 opt]# mv etcd-v3.3.6-linux-amd64/ etcd-v3.3.6

    [root@etcd1 opt]# ln -s /opt/etcd-v3.3.6/ /opt/etcd

    4.3拷贝证书

    scp -r certs root@etcd2:/opt/

    scp -r certs root@etcd3:/opt/

    4.4创建etcd启动脚本

    [root@etcd1 etcd]# vi etcd-server-startup.sh

    #!/bin/bash

    ./etcd --name etcd1

             --data-dir /data/etcd/etcd-server/

             --listen-peer-urls https://192.168.253.100:2380

             --listen-client-urls https://192.168.253.100:2379,http://127.0.0.1:2379

             --quota-backend-bytes 8000000000

             --initial-advertise-peer-urls https://192.168.253.100:2380

             --advertise-client-urls https://192.168.253.100:2379,http://127.0.0.1:2379

             --initial-cluster  etcd1=https://192.168.253.100:2380,etcd2=https://192.168.253.101:2380,etcd3=https://192.168.253.102:2380

             --ca-file ../certs/ca.pem

             --cert-file ../certs/etcd-peer.pem

             --key-file ../certs/etcd-peer-key.pem

             --client-cert-auth  

             --trusted-ca-file ../certs/ca.pem

             --peer-ca-file ../certs/ca.pem

             --peer-cert-file ../certs/etcd-peer.pem

             --peer-key-file ../certs/etcd-peer-key.pem

             --peer-client-cert-auth

             --peer-trusted-ca-file ../certs/ca.pem

             --log-output stdout

    4.5授权及创建日志目录

    [root@etcd1 etcd]# chmod +x etcd-server-startup.sh

    [root@etcd1 etcd]# chown -R etcd.etcd /opt/etcd-v3.3.6/

    [root@etcd1 etcd]# chown -R etcd.etcd /data/etcd /data/logs/etcd-server/
    (参考)

    chown etcd. /data/etcd/ /data/logs/etcd-server/

    chown -R etcd. /data/*

    ll /data/*

    4.6启动etcd

    [root@etcd1 etcd]# pwd

    /opt/etcd

    [root@etcd1 etcd]# nohup ./etcd-server-startup.sh &

    4.7查看状态

    /opt/etcd/etcdctl cluster-health

    ./etcdctl member list

    欢迎进群讨论:QQ群294668383(有意向可以添加)

  • 相关阅读:
    安装黑苹果的config.plist
    navicat for mysql 导出数据的坑
    js中的深层复制
    js写的一个HashMap
    js前台数据校验
    nginx对上传文件大小的限制
    tomcat用户配置,内存配置,pid配置
    redis安装及使用
    程序端口被占用分析
    zookeeper+dubbo-admin开发dubbo应用
  • 原文地址:https://www.cnblogs.com/zhang-xiao-shuang/p/13173575.html
Copyright © 2011-2022 走看看