yum安装etcd集群
前一篇文章介绍了如何yum安装简单的kubernetes集群,其中etcd是单点部署。本篇我们来搭建etcd集群,方便日后搭建kubernetes HA集群架构。
1,环境配置说明
etcd1 192.168.20.71
etcd2 192.168.20.72
etcd3 192.168.20.73
2,etcd版本
[root@master1 ~]# etcdctl --version
etcdctl version: 3.2.22
API version: 2
3,开始安装
etcd每台安装步骤都一样,所以etcd2、etcd3都以etcd1步骤一样
安装只需一条命令即可:
yum -y install etcd
4,查看并修改etcd配置文件
#修配etcd配置文件
[root@master1 ~]# ls /etc/etcd/
etcd.conf etcd.conf.back
[root@master1 ~]# grep -v '^#' /etc/etcd/etcd.conf
ETCD_NAME=etcd1 ETCD_DATA_DIR="/var/lib/etcd/etcd1" ETCD_LISTEN_PEER_URLS="http://192.168.20.71:2380" ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2379,http://192.168.20.71:2379" ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.20.71:2380" ETCD_INITIAL_CLUSTER="etcd1=http://192.168.20.71:2380,etcd2=http://192.168.20.72:2380,etcd3=http://192.168.20.73:2380" ETCD_INITIAL_CLUSTER_STATE="new" ETCD_INITIAL_CLUSTER_TOKEN="etcd-test" ETCD_ADVERTISE_CLIENT_URLS="http://192.168.20.71:2379"
5,启动etcd服务
#etcd启动配置文件为:
[root@master1 ~]# 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
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
User=etcd
# set GOMAXPROCS to number of processors
ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd --name=\"${ETCD_NAME}\" --data-dir=\"${ETCD_DATA_DIR}\" \
--listen-peer-urls=\"${ETCD_LISTEN_PEER_URLS}\" \
--listen-client-urls=\"${ETCD_LISTEN_CLIENT_URLS}\" \
--advertise-client-urls=\"${ETCD_ADVERTISE_CLIENT_URLS}\" \
--initial-cluster-token=\"${ETCD_INITIAL_CLUSTER_TOKEN}\" \
--initial-cluster=\"${ETCD_INITIAL_CLUSTER}\" \
--initial-cluster-state=\"${ETCD_INITIAL_CLUSTER_STATE}\""
Restart=on-failure
LimitNOFILE= [Install]
WantedBy=multi-user.target #启动etcd服务
systemctl start etcd
#查看启动状态
systemctl status etcd
6,etcd2、etcd3配置文件
#etcd2配置文件
[root@master2 ~]# cat /etc/etcd/etcd.conf
ETCD_NAME=etcd2 ETCD_DATA_DIR="/var/lib/etcd/etcd2" ETCD_LISTEN_PEER_URLS="http://192.168.20.72:2380" ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2379,http://192.168.20.72:2379" ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.20.72:2380" ETCD_INITIAL_CLUSTER="etcd1=http://192.168.20.71:2380,etcd2=http://192.168.20.72:2380,etcd3=http://192.168.20.73:2380" ETCD_INITIAL_CLUSTER_STATE="new" ETCD_INITIAL_CLUSTER_TOKEN="etcd-test" ETCD_ADVERTISE_CLIENT_URLS="http://192.168.20.72:2379" #etcd3 配置文件
[root@master ~]# cat /etc/etcd/etcd.conf
ETCD_NAME=etcd3 ETCD_DATA_DIR="/var/lib/etcd/etcd3" ETCD_LISTEN_PEER_URLS="http://192.168.20.73:2380" ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2379,http://192.168.20.73:2379" ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.20.73:2380" ETCD_INITIAL_CLUSTER="etcd1=http://192.168.20.71:2380,etcd2=http://192.168.20.72:2380,etcd3=http://192.168.20.73:2380" ETCD_INITIAL_CLUSTER_STATE="new" ETCD_INITIAL_CLUSTER_TOKEN="etcd-test" ETCD_ADVERTISE_CLIENT_URLS="http://192.168.20.73:2379" #分别启动etcd2、etcd3服务
#查看cluster状态
[root@master1 ~]# etcdctl cluster-health
member 85b5f1a0537e385d is healthy: got healthy result from http://192.168.20.71:2379
member 9f304c9e0feb949d is healthy: got healthy result from http://192.168.20.72:2379
member ec71f609370df393 is healthy: got healthy result from http://192.168.20.73:2379
cluster is healthy #列出etcd服务状态
[root@master1 ~]# etcdctl member list
85b5f1a0537e385d: name=etcd1 peerURLs=http://192.168.20.71:2380 clientURLs=http://192.168.20.71:2379 isLeader=false
9f304c9e0feb949d: name=etcd2 peerURLs=http://192.168.20.72:2380 clientURLs=http://192.168.20.72:2379 isLeader=false
ec71f609370df393: name=etcd3 peerURLs=http://192.168.20.73:2380 clientURLs=http://192.168.20.73:2379 isLeader=true #从列出信息可以看出,目前是etcd3为主节点。
#查看etcd服务启动日志,可通过 tail -f /var/log/message 动态查看
7,至此,etcd集群已配置完成。接下来可以对kubernetes集群apiserver配置文件进行修改,使其指向etcd集群
#修改master节点,apiserver配置文件
[root@master ~]# cat /etc/kubernetes/apiserver
###
## kubernetes system config
KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_API_PORT="--port=8080"
KUBELET_PORT="--kubelet-port=10250"
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.20.71:2379,http://192.168.20.72:2379,http://192.168.20.73:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
KUBE_API_ARGS="--service_account_key_file=/etc/kubernetes/serviceaccount.key"
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
KUBE_API_ARGS="" #k8s集群做任何调整后,都需要重启服务
#重启master各组件,可连起来写
systemctl restart kube-apiserver kube-controller-manager kube-scheduler
#重启node1、node2各组件
systemctl restart kubelet kube-proxy #再次在master节点查看etcd、node集群状态
#测试,可关闭一台etcd服务,创建一个pod,无异常
#通过测试可以得出,etcd集群至少需要2个etcd节点才可以正常工作。
8,如何创建pod,参加下一篇文章。
yum安装etcd集群的更多相关文章
- yum安装k8s集群
k8s的安装有多种方式,如yum安装,kubeadm安装,二进制安装等.本文是入门系列,只是为了快速了解k8s的原理和工作过程,对k8s有一个快速的了解,这里直接采用yum安装 的1.5.2为案例进行 ...
- CentOS 7.5 使用 yum 安装 Kubernetes 集群(二)
一.安装方式介绍 1.yum 安装 目前CentOS官方已经把Kubernetes源放入到自己的默认 extras 仓库里面,使用 yum 安装,好处是简单,坏处也很明显,需要官方更新 yum 源才能 ...
- kubernetes 集群安装etcd集群,带证书
install etcd 准备证书 https://www.kubernetes.org.cn/3096.html 在master1需要安装CFSSL工具,这将会用来建立 TLS certificat ...
- 基于yum安装CDH集群
一.环境准备 准备至少3台设备:CentOS7系统: 如果是在实验环境下,给虚拟机的内存至少4G,根建议1T,数据盘1T,由于是虚拟机,所以根分区和数据盘放心大胆的给:如果是在生产环境则多多益善:我这 ...
- 安装etcd集群
kuberntes 系统使用 etcd 存储所有数据,是最重要的组件之一,注意 etcd集群只能有奇数个节点(1,3,5...),本文档使用3个节点做集群. 一.基础环境 软件包 etcd下载地址:h ...
- 使用docker方式安装etcd集群,带TLS证书
网上文档也多,安装的时候,还是踩了几个坑. 现在作一个安装记录吧. 1,先作自签名的证书ca-csr.json(为了和k8s共用根证书,可能将信息调为k8s). { "CN": & ...
- yum安装k8s集群(kubernetes)
此案例是以一个主,三个node来部署的,当然node可以根据自己情况部署 192.168.1.130 master 192.168.1.131 node1 192.168.1.132 node2 19 ...
- centos下etcd集群安装
先仔细了解学习etcd 官方: https://github.com/etcd-io/etcd https://www.cnblogs.com/softidea/p/6517959.html http ...
- ETCD集群安装实验
目录 [1.下载二进制程序] [2.安装etcd集群] [3.查询集群状态] [4.存入读取数据] [5.注意事项] [6.参考链接] 简介: Etcd的官网文档及其在GitHub上的文档,已 ...
随机推荐
- jdbc连接数据库方式问题
1.使用service_name,配置方式:jdbc:oracle:thin:@//<host>:1521/net_grid 2.使用SID,配置方式:jdbc:oracle:thin:@ ...
- grub命令行和配置文件配置配置信息
一.grub简介 GNU GRUB(简称“GRUB”)是一个来自GNU项目的启动引导程序.GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系 ...
- 强大的Visual Studio插件CodeRush全新发布v19.2,助力VS开发
CodeRush是一个强大的Visual Studio .NET 插件,它利用整合技术,通过促进开发者和团队效率来提升开发者体验.CodeRush能帮助你以极高的效率创建和维护源代码.Consume- ...
- 解压 压缩 C#
public class SharpZip { public SharpZip() { } /// <summary> /// 压缩 /// </summary> /// &l ...
- [CCTF] pwn350
0x00: 之前打了CCTF,在CCTF的过程中遇到一个比较有意思的思路,记录一下. 0x01: 可以看到,这是一个 fmt 的漏洞,不过很简单,接收的输入都在stack中,可以确定输入在栈中的位置, ...
- Codevs 1200 同余方程 2012年NOIP全国联赛提高组
1200 同余方程 2012年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 求关于 x 同余方程 a ...
- ValueError: Cannot assign "\<QuerySet [<Area: China>]\>": "Area.parent" must be a "Area" instance.
在研究才Django自关联的过程中,在插入数据时爆出如下错误: ValueError: Cannot assign "<QuerySet [<Area: China>]&g ...
- Android_activity实现一个简单的新建联系表
项目展示: 第一个Activity用于显示联系人信息 第二个Activity输入联系人信息 要求: 运行“新建联系人”程序,结果如下图所示: 点击“新建联系人”按钮,打开输入信息界面并输入姓名.公司. ...
- Java日志系统---Logger之简单入门
Java 中自带的日志系统,今天抽空了解了一点,算是入了门,所以将自己的一些心得记录下来,以备日后查看,有兴趣的朋友,看到此文章,觉得有错误或需要添加的地方,请在下方评论留言,大家可以共同进步,谢谢: ...
- oracle 中怎样实现分页和去处重复
oracle 中用关键字 rownum 来进行分页 rownum 不能使用大于号,只能是使用小于号,可以使用子查询和rownum一起使用来创建分页 SELECT * FROM ( SELECT e. ...