生产环境kubernetes1.13.6部署指南

摘要

相信很多小伙伴们已经了解kubernetes的火热程度, Kubernetes 作为当下最流行的的容器集群管理平台。在短短的几年时间里, kubernetes从1.0迅速发展到1.15经过社区的不断完善越来越多的企业将kubernetes应用于生产环境。 我们有理由相信在不远的未来,Kubernetes将成为通用的基础设施标准。目前,包括AWS、华为云、阿里云、腾讯云、Azure、digitalOcean在内的几乎所有公有云供应商,都宣布了自有品牌的Kubernetes版本。

 

k8s作为一个开源的企业级容器管理平台, 我们有必要去了解学习它。 kubernetes提供以下强大功能

k8s的主要作用

  • 自动化部署
  • 可扩展
  • 容器管理
  • 提供资源调度
  • 服务的管理发现
  • 扩容和监控

kubernetes的主要功能:

  • 数据卷:pod中容器之间共享数据,可以使用数据卷
  • 应用程序健康检查: 容器内服务可能进程阻塞无法处理请求, 可以设置健康检查策略保证应用监控
  • 弹性伸缩:根据设定的指标自动缩放Pod副本数
  • 服务发现: 使用环境变量或DNS服务插件保证容器中的应用程序发现Pod入口访问地址
  • 负载均衡: 一组Pod副本分配一个私有的集群IP地址, 负载均衡转发请求到后端容器, 集群内部其他Pod可以通过Cluster IP访问应用
  • 滚动更新: 更新应用服务不中断, 一个更新一个Pod或多个Pod。 直到所有Pod健康检查通过后加入到Service, 删除旧Pod。
  • 服务编排: 通过yaml文件的描述部署服务, 使得应用程序部署变得高效

 

Kubernetes是不是只有这些功能呢? 答案是否定的。

 

kubernetes非常流行但是网上部署文章杂乱, 甚至按照文档都无法部署起来。 这是因为Kubernetes是一个组件多且依赖复杂的系统, 并且Kubernetes社区开发速度非常快,版本差异大,文档更新往往不及时。所以,如果需要完整部署测试仍然有不少的工作量。如果要在生产中使用它,其运维管理也有较高的门槛。这里,我们将详细介绍使用二进制完成Kubernetes的系统部署、日常运维等。

 

经过小编耗时一个月的编写, 首次授权运维之美转发生产环境 Kubernetes 1.13.6集群部署方案。 在短短数日内下载量已突破3K, 更有大量读者联系我咨询kubernetes生产相关的问题。 为了更方便的和读者进行沟通互动,

小编已建立kubernetes交流群, 欢迎大家入群交流。 同时有问题的也可以在博客留言,将第一时间回复。

 

生产环境 Kubernetes 1.13.6集群部署文档收费吗?

加群即可免费获取Kubernetes生产环境部署指南.PDF KUBERNETERS进阶交流QQ群: 548246072 , 如果你觉得文档对您有用的话, 欢迎打赏或扫描二维码添加小编。

 

系统版本 本文档是否兼容 备注
Centos 7.x 😄 已验证
Redhat 😄 已验证
Ubuntu 🤔 未测试
Suse12 🤔 未测试
其他 😞 未测试
  • 史上最全的生产环境下 Kubernetes 集群部署文档目录

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 异常处理

 

发表评论