一、K8s-平台环境规划
1.环境
软件 | 版本 |
---|---|
操作系统 | Centos7.6_x64 |
Kubernetes | 1.16.1 |
Docker | 19.03.1 |
Etcd | 3.x |
Flanner | 0.11 |
2.组件分配规划
- 单集群架构图
-
多Master集群架构图
二、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证书
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
四、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/
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
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
如果输出上面信息,就说明集群部署成功。
如果有问题第一步先看日志:/var/log/message 或 journalctl -u etcd
感谢橙子柠檬在QQ群分享的资料。
- QQ精品交流群
-
- 微信公众号
-