### K8s实战案例总结-从入门到精通 #### 基础集群环境搭建 Kubernetes(简称K8s)是Google开源的一个容器集群管理系统,它可以帮助用户自动部署、管理和扩展容器化的应用。本文档旨在提供K8s基础集群环境搭建的详细指南,包括单master与多master的高可用集群环境的规划与部署。 ##### Kubernetes设计架构概述 Kubernetes的设计架构主要包括以下几个关键组件: - **API Server**:提供RESTful API接口,是整个系统的控制中心。 - **Scheduler**:负责调度Pod到合适的节点上运行。 - **Controller Manager**:负责管理Pod、Service、Deployment等资源对象的状态。 - **Etcd**:存储所有集群状态数据的键值数据库。 - **Kubelet**:每个节点上的代理服务,用于执行Pod和容器的命令。 - **Kube-proxy**:负责维护节点上的网络规则,实现服务(Service)的网络路由。 #### 高可用集群环境规划 在本节中,我们将详细介绍如何规划并部署单master或多master的高可用K8s运行环境。 ##### 单master高可用集群环境 单master集群通常适用于小型开发环境或测试环境。以下为单master集群的规划示例: - **Ansible服务器**:用于自动化部署和管理K8s集群,可选2台,分别位于192.168.7.101和192.168.7.102。 - **K8S Master节点**:192.168.7.101/192.168.7.102作为主控节点,通过一个虚拟IP(VIP)192.168.7.248做主备切换。 - **Harbor**:高可用镜像仓库,由192.168.7.103和192.168.7.104组成。 - **Etcd**:至少需要3台,分别是192.168.7.105、192.168.7.106和192.168.7.107,用于存储集群数据。 - **Haproxy**:192.168.7.108和192.168.7.109作为高可用etcd代理服务器。 - **Node节点**:192.168.7.111和112作为运行容器的实际节点,至少需要两台以保证高可用性。 ##### 多master高可用集群环境 多master集群适用于生产环境,提供更好的容错能力和更高的可用性。 - **K8S Master节点**:至少包含3个节点,如192.168.7.101、192.168.7.102和192.168.7.103,每个节点都运行完整的Master组件,通过选举机制确定活动Master。 - **其他组件**:同单master集群的规划相似,但需要更多的冗余来确保稳定性。 #### 服务器统计 为了更好地理解集群架构,以下列出了各个组件的具体配置信息: | 类型 | IP地址 | 主机名 | 备注 | |------------|--------------|------------------------------|--------------------| | Ansible | 192.168.7.101| k8s-ansible1.magedu.net | K8S集群部署服务器 | | Ansible | 192.168.7.102| k8s-ansible2.magedu.net | K8S集群部署服务器 | | K8S Master | 192.168.7.101| k8s-master1.magedu.net | 控制端 | | K8S Master | 192.168.7.102| k8s-master2.magedu.net | 控制端 | | Harbor | 192.168.7.103| k8s-harbor1.magedu.net | 镜像仓库 | | Harbor | 192.168.7.104| k8s-harbor2.magedu.net | 镜像仓库 | | Etcd | 192.168.7.105| k8s-etcd1.magedu.net | 数据存储 | | Etcd | 192.168.7.106| k8s-etcd2.magedu.net | 数据存储 | | Etcd | 192.168.7.107| k8s-etcd3.magedu.net | 数据存储 | | Haproxy | 192.168.7.108| k8s-ha1.magedu.net | etcd代理 | | Haproxy | 192.168.7.109| k8s-ha2.magedu.net | etcd代理 | | Node | 192.168.7.110| k8s-node1.magedu.net | 运行容器 | | Node | 192.168.7.111| k8s-node2.magedu.net | 运行容器 | #### 软件清单 对于Kubernetes集群的部署,以下是一些必要的软件及其版本: - **Ubuntu系统版本**:推荐使用18.04。 - **Kubernetes版本**:推荐1.13.5。 - **Calico版本**:推荐3.4.4。 #### 基础环境准备 在正式部署之前,还需要做一些准备工作: - **系统配置**:包括但不限于主机名配置、IP地址配置、系统参数优化等。 - **高可用负载均衡**:使用keepalived和haproxy搭建高可用负载均衡器,具体配置文件示例如下: ```conf # keepalived配置文件示例 vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 1 priority 100 advert_int 3 unicast_src_ip 192.168.7.108 unicast_peer { 192.168.7.109 } authentication { auth_type PASS auth_pass 123abc } virtual_ipaddress { 192.168.7.248 dev eth0 label eth0:1 } } ``` - **Harbor之HTTPS**:内部镜像将统一保存在内部Harbor服务器,并启用HTTPS加密连接,确保数据传输的安全性。 #### 总结 本文档提供了K8s基础集群环境搭建的详细步骤,包括单master和多master高可用集群的规划与部署。通过对这些内容的学习,读者可以更好地理解和掌握K8s集群的构建过程,为后续的应用部署打下坚实的基础。
剩余137页未读,继续阅读
- 粉丝: 0
- 资源: 21
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 蚁群算法小程序-matlab
- 粒子群算法小程序-matlab
- 《新能源接入的电力市场主辅联合出清》 出清模型以考虑安全约束的机组组合模型(SCUC)和经济调度模型(SCED)组成 程序基于IEEE30节点编写,并接入风电机组参与电力市场,辅助服务市场为备用市场
- 个人创作原画作品,禁止盗用
- 遗传算法程序-matlab
- 游戏人物检测15-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- Windows 7安装NET补丁
- 高动态导航技术全套技术资料.zip
- cms测试练习项目(linux系统部署)
- 游戏人物检测15-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord数据集合集.rar
- 名城小区物业管理-JAVA-基于Spring boot的名城小区物业管理系统设计实现(毕业论文+开题)
- 多媒体素材库-JAVA-基于springboot的多媒体素材库的开发与应用(毕业论文)
- 大学生心理健康管理-JAVA-基于springBoot大学生心理健康管理系统的设计与实现(毕业论文)
- 论坛系统-JAVA-基于SpringBoot的论坛系统设计与实现(毕业论文+开题+PPT)
- 游戏人物检测17-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 大学生智能消费记账-JAVA-springboot205大学生智能消费记账系统的设计与实现(毕业论文)