Kubernetes v1.24.2高可用部署

sskubeasz

1、Kubeasy简介

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

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

  • 集群特性 Master高可用、离线安装、多架构支持(amd64/arm64)
  • 集群版本 kubernetes v1.22, v1.23, v1.24, v1.25, v1.26
  • 操作系统 CentOS/RedHat 7/8, Debian 9/10, Ubuntu 16.04/18.04/20.04/22.04
  • 运行时 containerd v1.6.8, docker 20.10.x (k8s < 1.24)
  • 网络 calico, cilium, flannel, kube-ovn, kube-router

高可用方案

2、安装1.24版本的K8s集群

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

角色

数量

描述

部署节点

1

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

etcd节点

3

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

master节点

2

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

node节点

n

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

Kubernetes v1.24.2高可用部署_第1张图片

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

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

Kubernetes v1.24.2高可用部署_第2张图片

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分钟时间算长。

Kubernetes v1.24.2高可用部署_第3张图片

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

export release=3.3.1

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

chmod +x ./ezdown

./ezdown -D

Kubernetes v1.24.2高可用部署_第4张图片

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

Kubernetes v1.24.2高可用部署_第5张图片

调整hosts集群部署信息

cd clusters/fanht-ops-k8s/

Kubernetes v1.24.2高可用部署_第6张图片

Kubernetes v1.24.2高可用部署_第7张图片

Kubernetes v1.24.2高可用部署_第8张图片

2.5.3、开始部署K8s集群

1、指定集群名字安装

./ezctl setup fanht-ops-k8s all

Kubernetes v1.24.2高可用部署_第9张图片

Kubernetes v1.24.2高可用部署_第10张图片

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

2.4、验证完成部署

安装完成

kubectl get nodes

exit;

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

Kubernetes v1.24.2高可用部署_第11张图片

2.5、检查服务

2.51、检查pod

kubectl get pods -A

Kubernetes v1.24.2高可用部署_第12张图片

Kubernetes v1.24.2高可用部署_第13张图片

3、访问dashboard

3.1、查看Nodeport 端口

kubectl get svc -nkube-system

3.2、获取token

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

kubectl describe -n kube-system secrets admin-user

Kubernetes v1.24.2高可用部署_第14张图片

3.3、访问前端

node port 端口32748

https://192.168.101.100:32748/

Kubernetes v1.24.2高可用部署_第15张图片

Kubernetes v1.24.2高可用部署_第16张图片

Kubernetes v1.24.2高可用部署_第17张图片

4、总结

1、K8s集群部署已经完成

2、访问地址解释

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

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

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

你可能感兴趣的:(Kubernetes使用,kubernetes,容器,云原生)