3-k8s之etcd3.2.28集群部署

1. cfssl安装

    # curl -L https://github.com/cloudflare/cfssl/releases/download/v1.4.1/cfssl_1.4.1_linux_amd64-o /usr/local/bin/cfssl

    # curl -Lhttps://github.com/cloudflare/cfssl/releases/download/v1.4.1/cfssljson_1.4.1_linux_amd64-o /usr/local/bin/cfssljson

    # curl -L https://github.com/cloudflare/cfssl/releases/download/v1.4.1/cfssl-certinfo_1.4.1_linux_amd64-o /usr/local/bin/cfssl-certinfo

    # chmod +x /usr/local/bin/cfssl*

    # ll /usr/local/bin/cfssl*

    -rwxr-xr-x 1 root root 14842064 Nov 1717:55 /usr/local/bin/cfssl

    -rwxr-xr-x 1 root root 11758832 Nov 1717:57 /usr/local/bin/cfssl-certinfo

    -rwxr-xr-x 1 root root  9495504 Nov 17 17:56 /usr/local/bin/cfssljson

2. CA脚本

    # cat generate_etcd_cert.sh

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

    cfssl gencert -ca=ca.pem-ca-key=ca-key.pem -config=ca-config.json -profile=www server-csr.json |cfssljson -bare server

3. 编写生成CA需要的脚本

# cat ca-config.json

{

   "signing": {

       "default": {

            "expiry":"87600h"

       },

       "profiles": {

            "www": {

                "expiry":"87600h",

                "usages": [

                    "signing",

                    "keyencipherment",

                    "server auth",

                    "client auth"

               ]

            }

       }

   }

}

# cat ca-csr.json

{

   "CN": "etcd CA",

   "key": {

       "algo": "rsa",

       "size": 2048

   },

   "names": [

       {

            "C": "CN",

            "L": "BeiJing",

            "ST": "BeiJing"

       }

   ]

}

4. 生成CA证书《此处是把CA证书中的命令分开执行的,没有直接执行ca脚本》

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

2019/11/17 18:50:27 [INFO] generating anew CA key and certificate from CSR

2019/11/17 18:50:27 [INFO] generatereceived request

2019/11/17 18:50:27 [INFO] received CSR

2019/11/17 18:50:27 [INFO] generatingkey: rsa-2048

2019/11/17 18:50:28 [INFO] encoded CSR

2019/11/17 18:50:28 [INFO] signedcertificate with serial number 209194507194439129246775083370743915368585954788

# ls *.pem

ca-key.pem  ca.pem

5. 配置节点文件,用于生成节点证书

# cat server-csr.json

{

   "CN": "etcd",

   "hosts": [

        "192.168.1.106",

        "192.168.1.109".

        "192.168.1.110"

        ],

   "key": {

       "algo": "rsa",

       "size": 2048

   } ,

   "names": [

       {

            "C": "CN",

            "L": "BeiJing",

            "ST": "BeiJing"

       }

   ]

}

# 生成证书  脚本的第二行

# cfssl gencert -ca=ca.pem-ca-key=ca-key.pem -config=ca-config.json -profile=www server-csr.json |cfssljson -bare server

2019/11/17 18:59:14 [INFO] generatereceived request

2019/11/17 18:59:14 [INFO] received CSR

2019/11/17 18:59:14 [INFO] generatingkey: rsa-2048

2019/11/17 18:59:15 [INFO] encoded CSR

2019/11/17 18:59:15 [INFO] signedcertificate with serial number 719085529521326494499438956936026113382590658665

[root@k8s-master1 etcd]# ls server*

server.csr  server-csr.json  server-key.pem  server.pem

#注释

Server.pem  相当于cert

6.  集群部署

服务器:192.168.1.106,192.168.1.109,192.168.1.110

# 192.168.1.106上操作

# 下载

# wgethttps://github.com/etcd-io/etcd/releases/download/v3.2.28/etcd-v3.2.28-linux-amd64.tar.gz


# 解压并查看目录

# tar -zxf etcd-v3.2.28-linux-amd64.tar.gz && mvetcd-v3.2.28-linux-amd64 /opt/etcd

# ls etcd-v3.2.28-linux-amd64

Documentation  etcd  etcdctl README-etcdctl.md  README.md  READMEv2-etcdctl.md

# 整理目录

# mkdir /opt/etcd/{bin,cfg}

# mv /opt/etcd/etcd /opt/etcd/bin/etcd

# mv /opt/etcd/etcdctl /opt/etcd/bin/etcdctl

# 编写etcd配置文件

# cat /opt/etcd/cfg/etcd.conf

#[Member]

ETCD_NAME="etcd-1"

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

ETCD_LISTEN_PEER_URLS="https://192.168.1.106:2380"

ETCD_LISTEN_CLIENT_URLS="https://192.168.1.106:2379,http://127.0.0.1:2379"


#[Clustering]

ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.1.106:2380"

ETCD_ADVERTISE_CLIENT_URLS="https://192.168.1.106:2379"

ETCD_INITIAL_CLUSTER="etcd-1=https://192.168.1.106:2380,etcd-2=https://192.168.1.109:2380,etcd-3=https://192.168.1.110:2380"

ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

ETCD_INITIAL_CLUSTER_STATE="new"


配置说明

# 编写开机启动文件

# cat /opt/etcd/etcd.service

[Unit]

Description=Etcd Server

After=network.target

After=network-online.target

Wants=network-online.target


[Service]

Type=notify

EnvironmentFile=/opt/etcd/cfg/etcd.conf

ExecStart=/opt/etcd/bin/etcd \

       --name=${ETCD_NAME} \

       --data-dir=${ETCD_DATA_DIR} \

       --listen-peer-urls=${ETCD_LISTEN_PEER_URLS} \

        --listen-client-urls=${ETCD_LISTEN_CLIENT_URLS},http://127.0.0.1:2379\

       --advertise-client-urls=${ETCD_ADVERTISE_CLIENT_URLS} \

       --initial-advertise-peer-urls=${ETCD_INITIAL_ADVERTISE_PEER_URLS} \

       --initial-cluster=${ETCD_INITIAL_CLUSTER} \

       --initial-cluster-token=${ETCD_INITIAL_CLUSTER_TOKEN} \

       --initial-cluster-state=${ETCD_INITIAL_CLUSTER_STATE} \

       --cert-file=/opt/etcd/ssl/server.pem \

       --key-file=/opt/etcd/ssl/server-key.pem \

       --peer-cert-file=/opt/etcd/ssl/server.pem \

       --peer-key-file=/opt/etcd/ssl/server-key.pem \

       --trusted-ca-file=/opt/etcd/ssl/ca.pem \

       --peer-trusted-ca-file=/opt/etcd/ssl/ca.pem

Restart=on-failure

LimitNOFILE=65536


[Install]

WantedBy=multi-user.target

# 拷贝证书到ssl目录

# cp /opt/TLS/etcd/{ca,server,server-key}.pem /opt/etcd/ssl/

# 拷贝etcd目录到其他节点

# scp -r /opt/etcdroot@192.168.1.110:/opt


1.110

# scp -r /opt/etcdroot@192.168.1.109:/opt


109

# 三台etcd集群上操作


# ln -s /opt/etcd/etcd.service /usr/lib/systemd/system/etcd.service

# mkdir /var/lib/etcd


# systemctl daemon-reload

# systemctl start etcd

# systemctl enable etcd


#检查


result
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容