Centos7 二进制部署k8s(一) Etcd集群

2019年10月11日18:16:58 发表评论 1,809 views
广告也精彩

一、K8s-平台环境规划

1.环境

软件 版本
操作系统 Centos7.6_x64
Kubernetes 1.16.1
Docker 19.03.1
Etcd 3.x
Flanner 0.11

2.组件分配规划

Centos7 二进制部署k8s(一) Etcd集群

  • 单集群架构图
    Centos7 二进制部署k8s(一) Etcd集群

  • 多Master集群架构图

Centos7 二进制部署k8s(一) Etcd集群

二、K8s-部署方式介绍

1.minikube

Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,仅用于尝试Kubernetes或日常开发的用户使用。 部署地址:https://kubernetes.io/docs/setup/minikube/

2.kubeadm

Kubeadm也是一个工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。 部署地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/

3.二进制包

推荐,从官方下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。 下载地址:https://github.com/kubernetes/kubernetes/releases

wget https://storage.googleapis.com/kubernetes-release/release/v1.16.0/kubernetes-server-linux-amd64.tar.gz
wget https://github.com/etcd-io/etcd/releases/download/v3.4.1/etcd-v3.4.1-linux-amd64.tar.gz
wget https://github.com/containernetworking/plugins/releases/download/v0.8.2/cni-plugins-linux-amd64-v0.8.2.tgz

4.部署前准备(重要!!)

#关闭Selinux
setenforce 0

#关闭防火墙
systemctl stop firewalld

#修改主机名
hostname master01

#时间同步
yum -y install ntpdate
ntpdate time2.aliyun.com

#关闭swap分区, 重启失效(临时);
swapoff -a

#sed -ri 's/.*swap.*/#&/' /etc/fstab  永久关闭swap分区

cat /etc/hosts
192.168.31.63 k8s-master
192.168.31.65 k8s-node1
192.168.31.66 k8s-node2

三、自签SSL证书

Centos7 二进制部署k8s(一) Etcd集群

1.生成etcd证书

mkdir k8s && cd k8s
mkdir etcd-cert k8s-cert && cd etcd-cert

#更改etcd节点IP后运行一下两个脚本(cfssl.sh、etcd-cert.sh)
sh ./cfssl.sh            ##生成证书用到的工具cfssl
sh ./etcd-cert.sh         #创建证书

##已上传脚本到QQ群文件,下载立即使用###


[root@k8s-master etcd-cert]# ls /root/k8s/etcd-cert/*.pem  #查看是否生成证书
/root/k8s/etcd-cert/ca-key.pem  /root/k8s/etcd-cert/ca.pem  /root/k8s/etcd-cert/server-key.pem  /root/k8s/etcd-cert/server.pem


Centos7 二进制部署k8s(一) Etcd集群

Centos7 二进制部署k8s(一) Etcd集群

四、Etcd数据库集群部署

以下部署步骤在规划的三个etcd节点操作一样,唯一不同的是etcd配置文件中的服务器IP要写当前的:

1.二进制包下载地址

https://github.com/etcd-io/etcd/releases

实验版本: etcd-v3.3.15-linux-amd64.tar.gz

2.解压安装 (master)

wget https://github.com/etcd-io/etcd/releases/download/v3.3.15/etcd-v3.3.15-linux-amd64.tar.gz
tar -zxvf etcd-v3.3.15-linux-amd64.tar.gz
cd etcd-v3.3.15-linux-amd64
mkdir -p /opt/etcd/{ssl,cfg,bin}
mv etcd etcdctl /opt/etcd/bin/
#拷贝证书到指定目录
cp /root/k8s/etcd-cert/{ca,server-key,server}.pem /opt/etcd/ssl
tree /opt/etcd/

Centos7 二进制部署k8s(一) Etcd集群

3,部署配置ETCD,创建配置文件,和启动文件

rz上传脚本
chmod +x etcd.sh
sh ./etcd.sh etcd01 192.168.31.63 etcd02=https://192.168.31.65:2380,etcd03=https://192.168.31.66:2380

Centos7 二进制部署k8s(一) Etcd集群

4,拷贝master至其它etcd节点

scp -r /opt/etcd/ root@192.168.31.65:/opt/
scp -r /opt/etcd/ root@192.168.31.66:/opt/

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

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

5,修改etcd-node配置

##并编辑对应etcd名称
vim /opt/etcd/cfg/etcd

ETCD_NAME="etcd02"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://192.168.31.65:2380"
ETCD_LISTEN_CLIENT_URLS="https://192.168.31.65:2379"

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.31.65:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://192.168.31.65:2379"              

vim /opt/etcd/cfg/etcd

ETCD_NAME="etcd03"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://192.168.31.66:2380"
ETCD_LISTEN_CLIENT_URLS="https://192.168.31.66:2379"

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.31.66:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://192.168.31.66:2379"              

6,启动Etcd

systemctl daemon-reload    #最好先启动etcd-node,避免master报错
systemctl start etcd

7.查看集群状态

/opt/etcd/bin/etcdctl \
--ca-file=/opt/etcd/ssl/ca.pem --cert-file=/opt/etcd/ssl/server.pem --key-file=/opt/etcd/ssl/server-key.pem \
--endpoints="https://192.168.31.63:2379,https://192.168.31.65:2379,https://192.168.31.66:2379" \
cluster-health

Centos7 二进制部署k8s(一) Etcd集群

如果输出上面信息,就说明集群部署成功。
如果有问题第一步先看日志:/var/log/message 或 journalctl -u etcd

感谢橙子柠檬在QQ群分享的资料。

  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
广告也精彩
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: