Kubeasz工具快速部署K8Sv1.27版本集群(二进制方式)

文章目录

一、基本信息

1、部署需要满足前提条件:

  • 注意1:确保各节点时区设置一致、时间同步;
  • 注意2:确保在干净的系统上开始安装;
  • 注意3:关闭防火墙、SElinux限制;
  • 注意4:涉及到的主机SSH免密登入。

2、服务器信息如下:

由于仅仅只是演示kubeasz工具快速部署K8S集群,所以本次实验采用单Master、单Node架构,详细如下:

序号 IP地址 角色 组件信息
1 16.32.15.116 K8S 控制节点 K8S 控制节点相关组件、ETCD
2 16.32.15.200 K8S 工作节点 K8S 工作节点相关组件

二、服务器初始化操作

1、关闭防火墙

bash 复制代码
systemctl disable firewalld --now
setenforce 0
sed  -i -r 's/SELINUX=[ep].*/SELINUX=disabled/g' /etc/selinux/config

2、时间同步

bash 复制代码
yum -y install ntpdate
ntpdate ntp1.aliyun.com

添加定时同步 每天凌晨1点自动同步时间:

bash 复制代码
echo "0 1 * * * ntpdate ntp1.aliyun.com" >> /var/spool/cron/root
crontab -l

3、免密登入

bash 复制代码
ssh-keygen  # 生产密钥对

ssh-copy-id 16.32.15.116
ssh-copy-id 16.32.15.200

三、使用Kubeasz部署K8S集群

1、下载项目源码、二进制及离线镜像

bash 复制代码
export release=3.5.0
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown

2、下载离线包到本地(可能受网络因素影响会很慢,建议下载一份放到/etc/kubeasz目录下,后续走离线部署)

bash 复制代码
./ezdown -D

3、容器化运行kubeasz

bash 复制代码
./ezdown -S
docker exec -it kubeasz ezctl new k8s-01 # 创建新集群 k8s-01
sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' /etc/kubeasz/example/config.yml  # 离线部署方式

4、修改hosts文件

bash 复制代码
vim /etc/kubeasz/clusters/k8s-01/hosts

[etcd]
16.32.15.116

[kube_master]
16.32.15.116 k8s_nodename='master-01'

[kube_node]
16.32.15.200 k8s_nodename='worker-01'

5、执行ansible剧本,安装K8S集群

bash 复制代码
source ~/.bashrc
dk ezctl setup k8s-01 all

如下图表示无误:

四、验证集群

1、查看集群节点信息

bash 复制代码
kubectl get nodes

2、查看Pod信息

bash 复制代码
kubectl get pods -A

3、创建Deployment资源,验证是否可以运行成功

导入镜像(工作节点执行)

注意:由于网络原因,我这边使用本地导入镜像方式。

bash 复制代码
ctr -n k8s.io image import ng18.tar.gz
crictl image|grep nginx*

创建deployment资源(控制节点执行)

yaml 复制代码
cat test-nginx.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: nginx-container
        image: nginx:1.18.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80
 
kubectl apply -f test-nginx.yaml 

查看创建Pod状态

bash 复制代码
kubectl get pods  -o wide -w
相关推荐
极客先躯12 小时前
高级java每日一道面试题-2025年12月07日-实战篇[Dockerj]-Docker daemon 的配置文件在哪里?常用的配置项有哪些?
java·docker·配置文件的实际位置·配置文件的格式规则·常用配置项全景与分类·配置如何生效·daemon 配置折射架构思维
颯沓如流星15 小时前
【 Docker Desktop】基于Windows + WSL2 的环境配置, 快速部署一套Kubernetes Cluster
windows·docker·kubernetes
布吉岛的石头16 小时前
K8s Ingress配置踩坑实录:生产环境500+并发负载均衡最佳实践
容器·kubernetes·负载均衡
showyoui16 小时前
一次 GKE Sidecar 场景下的连通性排查实录
docker·微服务·容器·kubernetes·service_mesh
运维老郭17 小时前
K8S 容器独占 CPU(CPU 绑核)最佳实践,解锁极致性能所需的 3 个核心条件及其代价
运维·云原生·kubernetes
香菜农民17 小时前
域名证书管理
运维·docker
江湖有缘18 小时前
从零开始:基于Docker Compose的Kener监控面板部署全记录
运维·docker·容器
月光技术杂谈18 小时前
国内环境下安装 docker-ce 的完整步骤
运维·docker·容器
leoZ23119 小时前
Linux 环境常用服务一键部署文档(Docker 版)
运维·docker·容器
追寻少年19 小时前
基于Kubeadm和Docker部署K8S高可用集群
docker·容器·kubernetes