# OpenEulerKubeKey **Repository Path**: oldhand/open-euler-kube-key ## Basic Information - **Project Name**: OpenEulerKubeKey - **Description**: 在OpenEuler 22.03 LTS环境,一键离线安装K8S - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-08-22 - **Last Updated**: 2026-04-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 这个仓库是一个基于Ansible的自动化部署工具,用于在openEuler系统上部署Kubernetes(k8s)集群,仓库名称为`ansible-openeuler-k8s129`,从相关配置来看主要针对Kubernetes 1.29版本。 ### 仓库结构 - 核心配置文件:包含`ansible.cfg`(Ansible配置文件)、`hosts.ini`(主机清单)、`install_k8s.yml`(主部署剧本)。 - 角色(roles)目录:是核心功能实现部分,包含多个子角色,分别负责不同的部署环节: - `cluster`:负责Kubernetes集群相关操作,如安装kubeadm、kubelet、kubectl,初始化集群,添加主节点和工作节点,安装Helm和Calico CNI等。 - `containerd`:用于安装和配置容器运行时containerd,包括下载安装包、生成配置、设置cgroup驱动和沙箱镜像等。 - `init`:进行系统初始化操作,如检查操作系统版本、配置yum源、安装基础软件包、设置NTP、禁用SELinux、关闭防火墙、禁用swap、配置主机DNS、导入CA证书、设置ipvs、配置NetworkManager以及修复一些系统bug等。 - `lb`:负责负载均衡相关配置,安装keepalived和haproxy,生成对应的配置文件并启动服务,为Kubernetes API Server等提供负载均衡。 - `test`:包含一些测试任务,可能用于部署过程中的测试验证。 ### 主要功能 1. 环境准备:通过`init`角色对目标主机进行系统环境初始化,确保满足Kubernetes部署的前提条件,如关闭不必要的服务、配置网络和时间同步等。 2. 容器运行时部署:通过`containerd`角色安装和配置containerd作为Kubernetes的容器运行时。 3. 负载均衡配置:通过`lb`角色部署haproxy和keepalived,实现Kubernetes控制平面的负载均衡和高可用。 4. Kubernetes集群部署:通过`cluster`角色完成Kubernetes集群的初始化,包括安装相关组件、初始化主节点、添加其他主节点和工作节点,以及安装网络插件(Calico)和包管理工具(Helm)等。 ### 主机清单配置 `hosts.ini`文件定义了集群的主机信息,包括k8s节点(区分主节点和工作节点)、负载均衡节点(lb)和测试节点(test),并指定了相关属性。 通过运行`install_k8s.yml`剧本,可以按照预设的角色和任务流程,自动化完成Kubernetes集群在openEuler系统上的部署,提高部署效率和一致性。