Kubernetes v1.24.2高可用部署

sskubeasz

1、Kubeasy简介

kubeasz 致力于提供快速部署高可用k8s集群的工具, 同时也努力成为k8s实践、使用的参考书;基于二进制方式部署和利用ansible-playbook实现自动化;既提供一键安装脚本, 也可以根据安装指南分步执行安装各个组件。

kubeasz 从每一个单独部件组装到完整的集群,提供最灵活的配置能力,几乎可以设置任何组件的任何参数;同时又为集群创建预置一套运行良好的默认配置,甚至自动化创建适合大规模集群的BGP Route Reflector网络模式

高可用方案

2、安装1.24版本的K8s集群

2.1、高可用集群所需节点配置如下

角色

数量

描述

部署节点

1

运行ansible/ezctl命令,一般复用第一个master节点

etcd节点

3

注意etcd集群需要1,3,5,...奇数个节点,一般复用master节点

master节点

2

高可用集群至少2个master节点

node节点

n

运行应用负载的节点,可根据需要提升机器配置/增加节点数

2.2、IP规划

机器资源有限,混着使用

逻辑角色

IP

Kube-Master

192.168.101.100

Kube-Master

192.168.101.101

Kube-Node

192.168.101.102

Kube-Node

192.168.101.103

Kube-Node

192.168.101.104

笔记本电脑出现故障,使用个人腾讯云账创建机器操作。配置不高,没几毛钱。

2.2、注意事项

  • 注意1:确保各节点时区设置一致、时间同步。 如果你的环境没有提供NTP 时间同步,推荐集成安装chrony
  • 注意2:确保在干净的系统上开始安装,不要使用曾经装过kubeadm或其他k8s发行版的环境
  • 注意3:建议操作系统升级到新的稳定内核,请结合阅读内核升级文档
  • 注意4:在公有云上创建多主集群,请结合阅读在公有云上部署 kubeasz

2.3、部署

机器配置:

  • master节点:4c/8g内存/50g硬盘
  • worker节点:建议8c/32g内存/200g硬盘以上

注意:默认配置下容器运行时和kubelet会占用/var的磁盘空间,如果磁盘分区特殊,可以设置config.yml中的容器运行时和kubelet数据目录:CONTAINERD_STORAGE_DIR DOCKER_STORAGE_DIR KUBELET_ROOT_DIR

在 kubeasz 2x 版本,多节点高可用集群安装可以使用2种方式

  • 1.按照本文步骤先规划准备,预先配置节点信息后,直接安装多节点高可用集群
  • 2.先部署单节点集群 AllinOne部署,然后通过 节点添加 扩容成高可用集群

2.4、准备部署过程

离线安装包已经准备好,下载使用。步骤可以跳过2.4.1-2.5.1

链接:https://pan.baidu.com/s/13PDMjJuZ8cDJ6P2jWeODxA?pwd=ki9l 
提取码:ki9l 

按照文档全部离线下载预计10-15分钟时间算长。

2.4.1、下载kubeasz代码、二进制、默认容器镜像

export release=3.3.1

wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown

chmod +x ./ezdown

./ezdown -D

2.4.2、下载额外容器镜像

(cilium,flannel,prometheus等)

./ezdown -X

2.4.3、下载离线系统包

(适用于无法使用yum/apt仓库情形)

./ezdown -P

2.4.4、安装包位置解释

上述脚本运行成功后,所有文件(kubeasz代码、二进制、离线镜像)均已整理好放入目录/etc/kubeasz

  • /etc/kubeasz 包含 kubeasz 版本为 ${release} 的发布代码
  • /etc/kubeasz/bin 包含 k8s/etcd/docker/cni 等二进制文件
  • /etc/kubeasz/down 包含集群安装时需要的离线容器镜像
  • /etc/kubeasz/down/packages 包含集群安装时需要的系统基础软件

2.5、离线安装

2.5.1、检查安装包

./ezdown -D

./ezdown -X

  • 离线安装 docker,检查本地文件,正常会提示所有文件已经下载完成,并上传到本地私有镜像仓库

2.5.2、修改部署信息

启动 kubeasz 容器

sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' /etc/kubeasz/example/config.yml

./ezdown -S

设置参数允许离线安装

如果没有安装ansible可以进入容器内操作

docker exec -it kubeasz bash

创建部署集群信息

cd /etc/kubeasz/

./ezctl new fanht-ops-k8s

调整hosts集群部署信息

cd clusters/fanht-ops-k8s/

2.5.3、开始部署K8s集群

1、指定集群名字安装

./ezctl setup fanht-ops-k8s all

等5分钟左右,内部网络和机器性能决定部署速度。

2.4、验证完成部署

安装完成

kubectl get nodes

exit;

source .bash_profile #不加载profile重新打开窗口也可以

2.5、检查服务

2.51、检查pod

kubectl get pods -A

3、访问dashboard

3.1、查看Nodeport 端口

kubectl get svc -nkube-system

3.2、获取token

以后分享配置用户名和密码登录认证方式

kubectl describe -n kube-system secrets admin-user

3.3、访问前端

node port 端口32748

https://192.168.101.100:32748/

4、总结

1、K8s集群部署已经完成

2、访问地址解释

家里电脑可以访问到腾讯云内网IP因为提前配置过openvpn,麻雀虽小五脏俱全。

服务器有公网IP一定要做好安全组限制。

后面会继续输出更多K8s生产最佳实践和配套服务使用

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值