etcd需要在master和node上都部署,首先在master上部署,然后把相关的二进制文件和程序拷贝到node上再修改即可

1、下载二进制包然后解压

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

2、新建文件夹用来存放k8s相关配置文件和证书,然后把证书文件放到ssl目录下

mkdir -p /opt/kubernetes/{bin,cfg,ssl}
cp *.pem /opt/kubernetes/ssl
[root@k8s-master-101 kubernetes]# ls /opt/kubernetes/
bin  cfg  ssl[root@k8s-master-101 ssl]# ls *pem
admin-key.pem  admin.pem  ca-key.pem  ca.pem  kube-proxy-key.pem  kube-proxy.pem
server-key.pem  server.pem

3、将二进制文件移动到指定目录

mv etcd-v3.2.12-linux-amd64/etcd /opt/kubernetes/bin/
mv etcd-v3.2.12-linux-amd64/etcdctl /opt/kubernetes/bin/[root@k8s-master-101 bin]# ls etcd*
etcd  etcdctl

4、创建etcd配置文件
vim /opt/kubernetes/cfg/etcd

[root@k8s-master-101 kubernetes]# vim /opt/kubernetes/cfg/etcd
#[Member]
ETCD_NAME="etcd01"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://10.0.0.101:2380"
ETCD_LISTEN_CLIENT_URLS="https://10.0.0.101:2379"#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://10.0.0.101:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://10.0.0.101:2379"
ETCD_INITIAL_CLUSTER="etcd01=https://10.0.0.101:2380,etcd02=https://10.0.0.102:2380,etcd03=https://10.0.0.103:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

ETCD_NAME:指定etcd集群名称
ETCD_DATA_DIR:etcd数据目录
ETCD_LISTEN_PEER_URLS:监听的客户端地址
ETCD_LISTEN_CLIENT_URLS:监听的数据端口
ETCD_INITIAL_CLUSTER:集群节点信息
ETCD_INITIAL_CLUSTER_TOKEN:认证的token,可自定义
ETCD_INITIAL_CLUSTER_STATE:集群建立的状态
上边的这个配置文件是master的配置文件内容,配置node节点的配置文件需要修改ETCD_NAME、ETCD_LISTEN_PEER_URLS、ETCD_LISTEN_CLIENT_URLS、ETCD_INITIAL_ADVERTISE_PEER_URLS、ETCD_ADVERTISE_CLIENT_URLS,修改为对应节点的ip地址,还有节点名称要和ETCD_INITIAL_CLUSTER中的对应。

5、创建etcd启动配置文件
vim /usr/lib/systemd/system/etcd.service

[root@k8s-master-101 kubernetes]# cat /usr/lib/systemd/system/etcd.service
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target[Service]
Type=notify
EnvironmentFile=-/opt/kubernetes/cfg/etcd
ExecStart=/opt/kubernetes/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} \
--initial-cluster-state=new \
--cert-file=/opt/kubernetes/ssl/server.pem \
--key-file=/opt/kubernetes/ssl/server-key.pem \
--peer-cert-file=/opt/kubernetes/ssl/server.pem \
--peer-key-file=/opt/kubernetes/ssl/server-key.pem \
--trusted-ca-file=/opt/kubernetes/ssl/ca.pem \
--peer-trusted-ca-file=/opt/kubernetes/ssl/ca.pem
Restart=on-failure
LimitNOFILE=65536[Install]
WantedBy=multi-user.target

6、启动etcd服务

systemctl start etcd
systemctl enable etcd

7、在主节点与从节点间做ssh免密

ssh-keygen
ssh-copy-id root@10.0.0.102
ssh-copy-id root@10.0.0.103

8、将配置文件和证书复制到其他节点上

scp -r /opt/kubernetes/bin/* root@10.0.0.202:/opt/kubernetes/bin
scp -r /opt/kubernetes/cfg/* root@10.0.0.202:/opt/kubernetes/cfg
scp -r /opt/kubernetes/ssl/* root@10.0.0.202:/opt/kubernetes/ssl
scp -r /opt/kubernetes/bin/* root@10.0.0.203:/opt/kubernetes/bin
scp -r /opt/kubernetes/cfg/* root@10.0.0.203:/opt/kubernetes/cfg
scp -r /opt/kubernetes/ssl/* root@10.0.0.203:/opt/kubernetes/ssl

9、把etcd.service也复制过去,因为里面引用的是变量,等等只要修改etcd.conf文件里的变量

scp /usr/lib/systemd/system/etcd.service root@10.0.0.202:/usr/lib/systemd/system
scp /usr/lib/systemd/system/etcd.service root@10.0.0.203:/usr/lib/systemd/system

10、修改其他节点的etcd.conf配置文件,改为相应的地址
node1上

[root@k8s-node1-102 cfg]# cat /opt/kubernetes/cfg/etcd
#[Member]
ETCD_NAME="etcd02"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://10.0.0.102:2380"
ETCD_LISTEN_CLIENT_URLS="https://10.0.0.102:2379"#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://10.0.0.102:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://10.0.0.102:2379"
ETCD_INITIAL_CLUSTER="etcd01=https://10.0.0.101:2380,etcd02=https://10.0.0.102:2380,etcd03=https://10.0.0.103:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

node2上

[root@k8s-node2-103 ~]# cat /opt/kubernetes/cfg/etcd
#[Member]
ETCD_NAME="etcd03"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://10.0.0.103:2380"
ETCD_LISTEN_CLIENT_URLS="https://10.0.0.103:2379"#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://10.0.0.103:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://10.0.0.103:2379"
ETCD_INITIAL_CLUSTER="etcd01=https://10.0.0.101:2380,etcd02=https://10.0.0.102:2380,etcd03=https://10.0.0.103:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

修改完node1和node2的etcd配置文件,然后启动etcd

systemctl start etcd
systemctl enable etcd

11、在全部节点上,将kubernetes命令路径加入系统变量

echo "PATH=$PATH:/opt/kubernetes/bin" >> /etc/profile
source /etc/profile

12、在随便一台节点进行测试,查看etcd集群状态,使用etcd查询数据都需要使用认证文件,查询格式如下

etcdctl --ca-file=/opt/kubernetes/ssl/ca.pem \
--cert-file=/opt/kubernetes/ssl/server.pem \
--key-file=/opt/kubernetes/ssl/server-key.pem \
cluster-health[root@k8s-master-101 kubernetes]# etcdctl --ca-file=/opt/kubernetes/ssl/ca.pem --cert-file=/opt/kubernetes/ssl/server.pem --key-file=/opt/kubernetes/ssl/server-key.pem cluster-health
member 1ff1b5249241e477 is healthy: got healthy result from https://10.0.0.103:2379
member 4138ff178a93c6fe is healthy: got healthy result from https://10.0.0.102:2379
member ea5e8a2c2d9c581d is healthy: got healthy result from https://10.0.0.101:2379
cluster is healthy

kubernetes搭建 二、Etcd集群相关推荐

  1. Kubernetes集群搭建之Etcd集群配置篇

    docker快速启动etcd脚本 https://www.cnblogs.com/ka1em/p/11300355.html rm -rf /tmp/etcd-data.tmp && ...

  2. Kubernetes搭建Flink会话集群

    Kubernetes搭建Flink会话集群 一.准备工作 linux 系统环境 :linux系统采用的是Centos 8 .安装linux软件包管理工具yum 安装docker-ce yum inst ...

  3. kubernetes之二:集群环境搭建

    一.安装kubernetes并配置环境 安装minikube $ curl -Lo minikube https://storage.googleapis.com/minikube/releases/ ...

  4. 16、Kubernetes搭建高可用集群

    文章目录 前言 一.高可用集群 1.1 高可用集群技术细节 二.部署高可用集群 2.1 准备环境 2.2 所有master节点部署keepalived 2.2.1 安装相关包和keepalived 2 ...

  5. Kubernetes搭建单master集群

    1.环境说明 Linux version 3.10.0-1160.el7.x86_64 mockbuild@x86-vm-26.build.eng.bos.redhat.com gcc version ...

  6. Etcd教程 — 第二章 Etcd集群静态发现

    Etcd教程 - 第二章 Etcd集群静态发现 一.Etcd集群安装方式 二.Etcd集群静态发现 2.1 静态启动的方式 ※2.2 单机搭建Etcd集群 2.2.1 安装 goreman工具 2.2 ...

  7. k8s实践(2) etcd集群安装

    k8s实践系列的相关文件都在github:https://github.com/huangguisu/k8s.git etcd分布式键值存储系统,用于保持集群状态,比如Pod.Service等对象信息 ...

  8. P8实战(二):分布式锁前置技能 etcd 集群搭建

    etcd 集群环境搭建 13 什么是 etcd? etcd 是一个分布式高可用的 Key/Value 存储系统,旨在可靠.快速地保存和提供对关键数据的访问,主要用于分享配置和服务发现.它通过分布式锁定 ...

  9. 用Kubernetes搭建Etcd集群和WebUI

    今天用这篇文章带大家在自己的电脑上搭建一个Kubernetes Etcd集群,Kubernetes本身的功能就依赖Etcd实现,不过并不会开放给我们的程序使用,所以需要自己单独搭建. Etcd现在是分 ...

最新文章

  1. 前端每周清单第 33 期:React 16 发布与特性介绍,Expo AR 教程,ExtJS 从崛起到沉寂...
  2. python 矩阵常用计算
  3. java快速排序的时间复杂度_java 快速排序
  4. 2020-11-10(安卓如何传递数据)
  5. 各种实用的 PHP 开源库推荐
  6. 单身汪的电梯之旅(洛谷P1897题题解,Java语言描述)
  7. NET在后置代码中输入JS提示语句(背景不会变白)
  8. TensorFlow 教程 --新手入门--1.5 基本使用
  9. 2018,广东,深圳马峦山游玩攻略(含登山线路)
  10. 合作开发过程产生的专利_合作开发合同(二)
  11. Actor编程模型——Erlang/OTP
  12. 栈增长方向与大端/小端问题
  13. jquery 几个实用的小方法
  14. Uncaught ReferenceError: but is not defined
  15. python 12306抢票脚本_Python 12306抢火车票脚本
  16. 07 Anykey图像优化及文字头像生成与加载
  17. 数字电子技术 实验一
  18. JAVA程序填空题用公式求e_Java 使用对象 编程练习题
  19. 使用phpStudy配置SSL支持Https
  20. bc在计算机领域是什么意思,“BC”是“Before Computers”的缩写,意思是“在计算机之前”...

热门文章

  1. 批量修改本地文件.bat命令使用与node.js批量修改文件
  2. 税率方程C语言,高级表格税率加减乘除换算法送给有需要的朋友
  3. 安全隔离与视频交换解决方案
  4. Power Designer:正向构建数据库数据库逆向工程SQL生成数据库报表
  5. Joe Ross 交易书籍 中英文名
  6. linux下rs422串口通信,RS232/RS422/RS485通信接口區別
  7. MFC界面库BCGControlBar v33.0 - Docking Pane、仪表盘组件升级
  8. 外星人计算机桌面,Alienware Alienware桌面Win10系统和BIOS设置教程
  9. 金沙滩51单片机数码、LED、点阵
  10. 《知识图谱选型与实施指南》正式发布,绿盟科技参与编制