「生产环境下部署 Kubernetes 集群」由 「运维之美」技术交流群中的群友「往事随风」编写完成,并授权公众号原创首发。
该文档总结了其耗时数月在生产环境中实践 Kubernetes 集群部署的经验。文档非常详细的讲解了如何在生产环境中部署 Kubernetes 1.13.6 版本集群各组件以及常见的 Kubernetes 集群维护技巧和故障处理经验。
该文档内容长达 147 页,由于公众号篇幅限制,不能在这里完全的发表全文内容。下面是该文档的目录索引和缩略图,有兴趣的同学可以先睹为快。
1. 前言 2. 架构说明 2.1 系统架构概述 2.2 安装前准备 2.2.1 获取软件及工具 2.2.2 安装规划 2.2.3 修改主机名/关闭 Selinux 2.2.4 升级系统内核/同步系统时间 2.2.5 加载 IPVS 模块 2.2.6 上传软件包 2.2.7 防火墙放行端口 2.3 安装 Docker 2.3.2 参数说明 2.3.3 启动 Docker 2.4 安装 Cfssl 2.5 安装 Etcd集群 2.6 安装 Kubernetes 组件 2.6.1 生成集群 CA 证书文件 2.6.2 配置 Kube-Apiserver 证书 2.6.3 配置 Kube-Controller-Manager 证书 2.6.4 配置 Kube-Scheduler 证书 2.6.5 配置 Kube-Proxy 证书 2.6.6 配置 Admin 证书 2.6.7 分发证书文件 2.6.8 部署 Master 节点 2.6.9 配置 ApiServer 高可用部署 2.6.10 配置启动 Kube-Controller-Manager 2.6.11 配置启动 Kube-Scheduler 2.6.12 部署 Node节点 2.6.13 通过证书验证添加各个节点 2.7 设置集群角色 2.8 配置网络插件 2.8.1 创建 flanneld.conf 配置文件 2.9 配置 CoreDNS 2.10 测试 DNS 解析 2.10.1 创建一个 Pod 用来测试 DNS 2.11 部署 Dashboard 2.11.1 配置 Dashboard 令牌 2.11.2 登录 Dashboard 2.12 配置 Ingress (边缘节点) 2.12.1 创建 RBAC 文件 2.12.2 创建 traefik.toml 配置文件 2.12.3 创建 Secret 2.12.4 部署 Traefik 2.12.5 部署 UI 2.12.6 部署 Kubernetes Dashboard 2.12.7 部署 Keepalived 2.13 部署 Ceph(数据持久化) 2.13.1 部署 RBD-Provisioner 2.13.2 创建 Storageclass 2.13.3 测试 Ceph RBD 自动分配 3. CI/CD 自动化构建 4. 容器日志采集 5. 弹性伸缩 5.1.1 部署 Metrics-Server 0.3.1 5.1.2 测试创建 HPA 6. 监控告警 6.1.1 什么是 Prometheus? 6.1.2 安装 Prometheus 6.1.3 安装 Node_Exporter 6.1.4 安装 Grafana 6.1.5 部署 Kube-State-Metrics 6.1.6 安装 Alertmanager 6.1.7 配置 Alertmanager 告警通知 6.1.8 配置 Rules 规则 7. 资源隔离 8. 维护命令 8.1 主机维护 8.2 滚动更新 8.3 蓝绿发布 9. 集群故障 9.1 集群异常处理 9.1.1 查看 Node 状态 9.1.2 查看日志 9.2 证书过期 9.3 Pods 异常处理 9.4 网络排错 9.5 Volume 异常处理