网站首页 > 技术教程 正文
一、 K8s集群多master部署安装
1、前言
Kubernetes 高可用集群系统,前面文档针对部署一套单master的k8s集群做了详细的讲解.
单master集群部署文档地址:
https://wenku.baidu.com/view/c259ad09ecf9aef8941ea76e58fafab069dc442c.html
作为一个企业级应用,我们不能容忍集群中存在单点故障风险. 所以master 我们需要部署成多节点降低风险,根据之前文档集群架构ETCD独立部署三台设备具备了高可用能力, master为单台,这次就进行k8s集群的master节点进行扩展。
2、多master集群实现方案
Kubernetes 集群系统中kube-master中有三个重要组件
kube-apiserver
kube-controller-manager
kube-scheduler其中 kube-controller-manager kube-scheduler 两个组件自身已经具备了选择机制完成高可用。唯独kube-apiserver 需要考虑高可用,kube-apiserver组件从访问角度来说是一个HTTP API服务,故而可以通过web负载均衡方式实现。故此通过常用的流量负载均衡均可实现其高可用功能。这里我们选择最常用的LVS+keepalived+Nginx的作为kube-apiserver访问负载均衡。
3、多master集群系统的设计架构图
二、 部署K8S集群Master2 Node 环境配置
1、 部署k8s系统环境需求
硬件环境: 准备1台 2核CPU 内存2G 硬盘40G 云主机ECS 需要外网
测试用虚拟机环境:VMware 宿主机配置 4核心 8G内存以上 创建1台虚拟机
软件环境:
Centos7.5(mini) DokerCE 19/20 Kubernetes v1.20.13
2、 单master系统集群的服务器IP地址规划
参考之前单master集群部署文档,规划IP
K8s-master2:192.168.3.114
3、 防火墙设置
为提示生产环境安全建议不要关闭防火墙,采用白名单方式放开防火墙设置
10.0.0.0/24 10.244.0.0/16 192.168.3.0/24等网段主机都加入白名单
# firewall-cmd --add-source=10.0.0.0/24 --zone=trusted –permanent
# firewall-cmd --add-source=192.168.3.0/24 --zone=trusted –permanent
# firewall-cmd --add-source=10.244.0.0/16 --zone=trusted –permanent
# firewall-cmd --reload
当然为了调试可以先关闭防火墙。
systemctl stop firewalld
systemctl disable firewalld
4、 关闭selinux设置
#sed -i 's/enforcing/disabled/' /etc/selinux/config
#setenforce 0
5、 关闭swap
swapoff -a # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab
6、 设置主机名称
# cat >> /etc/hosts << EOF
192.168.3.110 k8s-master1
192.168.3.114 k8s-master2
192.168.3.112 k8s-node1
192.168.3.113 k8s-node2
EOF
7、 设置系统IPtables参数
#cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
#sysctl --system # 生效
8、 设置时间同步
#yum install ntpdate -y
#ntpdate time.windows.com
三、K8s-Master2 Node安装部署
K8s-Master2 与已部署的Master1所有操作一致。所以我们只需将Master1所有K8s文件拷贝过来,再修改下服务器IP和主机名启动即可。
1、 下载Docker包并解压安
1.1 下载docker包解压
wget https://download.docker.com/linux/static/stable/x86_64/docker-19.03.9.tgz
tar zxvf docker-19.03.9.tgz
mv docker/* /usr/bin
1.2使用systemd管理docker
cat > /usr/lib/systemd/system/docker.service << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
EOF
1.3 创建docker配置文件
mkdir /etc/docker
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF
注意:registry-mirrors 阿里云镜像加速器
1.4 docker启动并设置开机启动
systemctl daemon-reload && systemctl start docker && systemctl enable docker
2、 K8s-master2 组件
Master2 上创建/opt/etcd/ssl
mkdir –p /opt/etcd/ssl
登陆k8s-master1拷贝Master1上所有K8s文件和etcd证书到Master2:
scp -r /opt/kubernetes root@192.168.3.114:/opt
scp -r /opt/etcd/ssl root@192.168.3.114:/opt/etcd
scp /usr/lib/systemd/system/kube* root@192.168.3.114:/usr/lib/systemd/system
scp /usr/bin/kubectl root@192.168.3.114:/usr/bin
scp -r ~/.kube root@192.168.3.114:~
删除kubelet证书和kubeconfig文件:
rm -f /opt/kubernetes/cfg/kubelet.kubeconfig
rm -f /opt/kubernetes/ssl/kubelet*
修改apiserver、kubelet和kube-proxy配置文件为本地IP:
vi /opt/kubernetes/cfg/kube-apiserver.conf
--bind-address=192.168.3.114\
--advertise-address=192.168.3.114\
vi /opt/kubernetes/cfg/kube-controller-manager.kubeconfig
server: https://192.168.3.114:6443
vi /opt/kubernetes/cfg/kube-scheduler.kubeconfig
server: https://192.168.3.114:6443
vi ~/.kube/config
server: https://192.168.3.114:6443
启动设置开机启动
systemctl daemon-reload
systemctl start kube-apiserver kube-controller-manager kube-scheduler
systemctl enable kube-apiserver kube-controller-manager kube-scheduler
查看集群状态
kubectl get cs
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-1 Healthy {"health":"true"}
etcd-2 Healthy {"health":"true"}
etcd-0 Healthy {"health":"true"}
3、 配置k8s集群所用的负载均衡
找两台设备安装一套lvs+keepalived+ngninx 负载均衡系统 并配置VIP为192.168.3.120
Nginx.conf 增加如下配置
可以参考如下文档进行lvs+nginx部署
https://wenku.baidu.com/view/d4ab3c3e463610661ed9ad51f01dc281e53a56c8.html
########## k8s config begin #######################
stream {
log_format main '$remote_addr $upstream_addr - [$time_local] $status $upstream_bytes_sent';
access_log /var/log/nginx/k8s-access.log main;
upstream k8s-apiserver {
server 192.168.3.110:6443; # Master1 APISERVER IP:PORT
server 192.168.3.114:6443; # Master2 APISERVER IP:PORT
}
server {
listen 6443;
proxy_pass k8s-apiserver;
}
}
########## k8s config end #######################
启动lvs+nginx
4、 修改k8s系统集群中的work-node 接口访问指向VIP
登陆work-node执行
# sed -i 's/192.168.3.110:6443#192.168.3.120:6443/g' /opt/kubernetes/cfg/*
重启动服务
# systemctl restart kubelet kube-proxy
查看集群信息如下就说明多master部署完成
[root@k8s-master2 ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master1 Ready <none> 15d v1.20.13
k8s-node1 Ready <none> 16d v1.20.13
k8s-node2 Ready <none> 15d v1.20.13
[root@k8s-master2 ~]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-1 Healthy {"health":"true","reason":""}
etcd-0 Healthy {"health":"true","reason":""}
etcd-2 Healthy {"health":"true","reason":""}
至此多master集群部署完成
猜你喜欢
- 2024-10-10 阿里云发布云数据中心专用处理器CIPU 猜猜能干点啥?
- 2024-10-10 如何在一分钟内实现微服务系统下的架构可视化
- 2024-10-10 记一次8小时惊心动魄的服务器+网站升级
- 2024-10-10 新浪微博上云实践:极端流量下的峰值应对与架构挑战
- 2024-10-10 微服务架构可视化平台实践(微服务架构设计)
- 2024-10-10 玩机小技巧:阿里云的免费SSL证书快到期了,怎样正确续签呢?
- 2024-10-10 阿里云服务器无公网如何上网?(阿里云的大量公网ip来自哪儿)
- 2024-10-10 阿里云发布CIPU,云计算进入第三阶段
- 2024-10-10 学好Nginx,走遍天下都不怕(学好普通话走遍天下都不怕谁说的)
- 2024-10-10 干货:电商行业的上云最佳实践(云电商运营)
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)