kubernetes 核心运维 - kubeSphere工具-跟随官网安装 - 5

时间:2024-11-20 07:35:23

KubeSphere 安装和配置流程图-实战安装 bookinfo步骤—(实际操作手册链接

PS: 因为原文档保姆级别, 按照下面的流程图看一遍, 然后跟着原文档一步一步走。

                                    +----------------------+
                                    |  准备 Linux 机器      |
                                    +----------------------+
                                             |
                                             |
                                             v
+--------------------------+        +---------------------+        +-----------------------+
|  下载并准备 KubeKey      |        |  安装 Kubernetes 和   |        |  验证安装结果           |
|  +---------------------+ |        |  KubeSphere           |        |  +-------------------+ |
|  | 1. 下载 KubeKey    | |        |  +-----------------+ |        |  | 1. 检查安装结果  | |
|  | 2. 添加权限        | |        |  | 1. 执行安装命令 | |        |  | 2. 检查日志      | |
|  +---------------------+ |        |  | 2. 输入确认      | |        |  +-------------------+ |
+--------------------------+        |  +-----------------+ |        +-----------------------+
                                     +---------------------+
                                             |
                                             |
                                             v
                                    +------------------------+
                                    |  部署 KubeSphere        |
                                    |  +--------------------+ |
                                    |  | 1. 下载并应用安装文件 | |
                                    |  | 2. 应用集群配置文件   | |
                                    |  +--------------------+ |
                                    +------------------------+
                                             |
                                             |
                                             v
                                    +-----------------------+
                                    |  创建企业空间、项目、  |
                                    |  用户和平台角色        |
                                    |  +-------------------+ |
                                    |  | 1. 创建用户        | |
                                    |  | 2. 创建企业空间    | |
                                    |  | 3. 创建项目        | |
                                    |  | 4. 创建角色        | |
                                    |  | 5. 创建 DevOps 项目  | |
                                    |  +-------------------+ |
                                    +-----------------------+
                                             |
                                             |
                                             v
                                    +-------------------------+
                                    |  部署 Istio 和 Bookinfo |
                                    |  +--------------------+ |
                                    |  | 1. 启用服务网格    | |
                                    |  | 2. 部署 Bookinfo   | |
                                    |  | 3. 访问 Bookinfo   | |
                                    |  +--------------------+ |
                                    +-------------------------+

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

流程图详细解释

  1. 准备 Linux 机器
    • 确保满足硬件和操作系统要求,安装必要的命令和配置网络。
  2. 下载并准备 KubeKey
    • 下载 KubeKey 并为其添加可执行权限。
  3. 安装 Kubernetes 和 KubeSphere
    • 使用 KubeKey 安装 Kubernetes 和 KubeSphere,输入确认信息来完成安装。
  4. 验证安装结果
    • 检查安装结果和日志,确保系统正常运行。
  5. 部署 KubeSphere
    • 下载并应用安装文件,配置集群。
  6. 创建企业空间、项目、用户和平台角色
    • 创建用户、企业空间、项目、角色,以及可选的 DevOps 项目。
  7. 部署 Istio 和 Bookinfo 应用
    • 启用 Istio 服务网格,部署 Bookinfo 应用,并访问应用。

每个步骤都包含了关键任务和说明,帮助您逐步完成 KubeSphere 的安装和配置。


蓝绿部署 (Blue-Green Deployment)

蓝绿部署 是一种版本发布策略,它涉及两个独立的环境(蓝色和绿色):

  • 蓝色环境:当前正在运行的生产环境。
  • 绿色环境:新版本的应用程序被部署到这个环境中。

工作流程

  1. 新版本的应用程序在绿色环境中进行部署和测试。
  2. 一旦确认绿色环境中的应用程序运行正常,流量从蓝色环境切换到绿色环境。
  3. 旧版本(蓝色环境)保留一段时间以防止回滚。

优点

  • 提供了一个简单的方法来回滚到旧版本。
  • 减少了停机时间。

缺点

  • 需要两倍的资源来维持两个独立的环境。

金丝雀发布 (Canary Release)

金丝雀发布 是一种渐进的发布策略,通过逐步将新版本的流量分配给少量用户来测试其稳定性:

  • 金丝雀版本:新版本的应用程序最初只向一小部分用户提供。
  • 逐步增加流量:根据新版本的表现,逐步增加分配给金丝雀版本的流量,直到所有流量都指向新版本。

工作流程

  1. 部署新版本,并将少量流量导向该版本(如5%)。
  2. 监控新版本的表现,并逐步增加流量分配。
  3. 如果新版本稳定,最终将100%的流量分配给新版本;否则,回滚到旧版本。

优点

  • 允许在实际生产环境中对新版本进行测试。
  • 降低了因新版本问题引起的大规模故障的风险。

缺点

  • 需要有效的监控和自动化工具。
  • 相对较为复杂的流量管理。

流量镜像 (Traffic Mirroring)

流量镜像 是一种复制流量的方法,用于在不影响实际用户的情况下测试新版本:

  • 镜像流量:将生产环境中的真实流量复制到新版本,同时不影响用户体验。
  • 并行测试:新版本接收镜像流量并进行测试,但不返回结果给用户。

工作流程

  1. 部署新版本的应用程序。
  2. 将生产环境的部分或全部流量镜像到新版本。
  3. 监控新版本的表现并进行必要的调整。

优点

  • 真实流量环境下测试新版本,不影响用户体验。
  • 提供了一个安全的测试环境。

缺点

  • 需要额外的资源来处理镜像流量。
  • 不能测试返回给用户的响应行为。

总结

  • 蓝绿部署:涉及两个独立环境,流量一次性切换,适合需要快速回滚的场景。
  • 金丝雀发布:逐步增加流量,适合需要逐步测试和验证新版本的场景。
  • 流量镜像:真实流量环境下并行测试,适合需要在生产环境下验证新版本行为的场景。

每种策略都有其适用的场景和优缺点,根据具体的需求和资源情况,可以选择最合适的发布策略。


创建并部署 WordPress

—操作跟着官网文档,一步一步走。 很详细了, 我不搬运了。链接就**(官网文档)**

流程图:在 KubeSphere 中创建和部署 WordPress

                                        +---------------------------+
                                        |       准备工作            |
                                        |   - 准备 project-regular  |
                                        |   - 赋予 operator 角色    |
                                        +---------------------------+
                                                   |
                                                   |
                                                   v
                        +--------------------------+---------------------------+
                        |                          |                           |
                        v                          v                           v
          +-------------------------+   +-------------------------+   +-------------------------+
          |  步骤 1:创建密钥        |   |  步骤 2:创建持久卷声明  |   |  步骤 3:创建应用程序    |
          |   +-------------------+  |   |  +-------------------+  |   |  +-------------------+  |
          |   |  创建 MySQL 密钥  |  |   |  |  创建持久卷声明  |  |   |  |  添加 MySQL 后端   |  |
          |   |  创建 WordPress 密钥 |  |   |  |  配置存储类      |  |   |  |  添加 WordPress 前端 |  |
          |   +-------------------+  |   |  +-------------------+  |   |  +-------------------+  |
          +-------------------------+   +-------------------------+   +-------------------------+
                                                   |
                                                   |
                                                   v
                                    +---------------------------+
                                    |       步骤 4:验证资源   |
                                    |   - 检查部署状态          |
                                    |   - 确保服务运行中        |
                                    +---------------------------+
                                                   |
                                                   |
                                                   v
                                    +---------------------------+
                                    |  步骤 5:通过 NodePort 访问 WordPress |
                                    |   - 配置外部访问方式       |
                                    |   - 获取访问地址          |
                                    +---------------------------+

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

流程图详细解释

  1. 准备工作
    • 确保您拥有 project-regular 账户,并在项目中赋予其 operator 角色。
  2. 步骤 1:创建密钥
    • 创建 MySQL 密钥
      • 登录 KubeSphere 控制台,访问 demo-project
      • 在配置中创建密钥,命名为 mysql-secret,设置键值对 MYSQL_ROOT_PASSWORD123456
    • 创建 WordPress 密钥
      • 同样方式创建密钥,命名为 wordpress-secret,设置键值对 WORDPRESS_DB_PASSWORD123456
  3. 步骤 2:创建持久卷声明
    • 创建名为 wordpress-pvc 的持久卷声明,选择存储类、设置访问模式和卷容量。
  4. 步骤 3:创建应用程序
    • 添加 MySQL 后端组件
      • 创建一个有状态服务,使用 mysql:5.6 镜像,配置环境变量和持久卷声明。
    • 添加 WordPress 前端组件
      • 创建一个无状态服务,使用 wordpress:4.8-apache 镜像,配置环境变量和持久卷声明。
  5. 步骤 4:验证资源
    • 检查 wordpress-v1mysql-v1 部署和有状态副本集的运行状态。
  6. 步骤 5:通过 NodePort 访问 WordPress
    • 配置外部访问方式为 NodePort,并获取访问地址 {Node IP}:{NodePort} 以访问 WordPress 页面。

备注

  • 确保在配置 NodePort 时,安全组中的相关端口已开放,以便外部用户可以访问您的 WordPress 应用程序。

启用 KubeSphere 可插拔组件的流程图:

—操作跟着原文档一起走:官网

以下是启用 KubeSphere 可插拔组件的流程图和关键步骤:

                                    +--------------------------------+
                                    |        硬件要求检查            |
                                    |  - CPU ≥ 8 Core                |
                                    |  - 内存 ≥ 16 GB                |
                                    |  - 磁盘空间 ≥ 100 GB           |
                                    +--------------------------------+
                                                  |
                                                  v
                    +-----------------------------+-----------------------------+
                    |                             |                             |
                    v                             v                             v
    +----------------------------+    +----------------------------+    +-----------------------------+
    |  安装前启用可插拔组件      |    |  在 Kubernetes 上安装      |    |  安装后启用可插拔组件        |
    |  (Linux 上)                |    |  KubeSphere                 |    |  (Web 控制台)               |
    +----------------------------+    +----------------------------+    +-----------------------------+
                    |                             |                             |
                    v                             v                             v
     +------------------------+    +-------------------------+    +-------------------------+
     | 创建并修改  |    | 编辑  |    | 登录 Web 控制台         |
     | - 设置组件启用状态     |    | - 设置组件启用状态      |    | - 选择集群管理          |
     | - 使用 `./kk` 创建集群 |    | - 应用安装 YAML 文件    |    | - 编辑 CRD 配置         |
     +------------------------+    +-------------------------+    +-------------------------+
                    |                             |                             |
                    v                             v                             v
     +------------------------+    +-------------------------+    +-------------------------+
     |  检查组件状态           |    |  检查组件状态           |    |  检查组件状态          |
     | - 登录控制台           |    | - 使用 `kubectl`         |    | - 使用 Web kubectl     |
     | - 查看系统组件状态     |    | - 查看 Pod 状态          |    | - 查看安装日志         |
     +------------------------+    +-------------------------+    +-------------------------+

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

关键组件说明

  1. 告警系统 (alerting)
    • 功能:允许自定义工作负载和节点的告警策略,并通过邮件、Slack 等渠道发送告警消息。
    • 适用场景:监控系统健康状况,及时响应异常事件。
  2. 审计日志系统 (auditing)
    • 功能:记录平台上不同租户的活动,并按时间顺序排列,提供安全审计功能。
    • 适用场景:跟踪和审计用户活动,增强平台安全性。
  3. DevOps 系统 (devops)
    • 功能:基于 Jenkins 提供 CI/CD 功能,集成 Jenkins 流水线,支持 B2I 和 S2I。
    • 适用场景:自动化软件构建、测试和部署流程。
  4. 日志系统 (logging)
    • 功能:提供日志查询、收集和管理功能,支持第三方日志收集器如 Elasticsearch、Kafka 和 Fluentd。
    • 适用场景:集中管理和分析系统日志,帮助故障排除和性能监控。
  5. 服务网格 (servicemesh)
    • 功能:基于 Istio 提供流量治理、可观测性、流量追踪和可视化流量拓扑图。
    • 适用场景:微服务架构中的流量管理和监控,提升服务间的可靠性和安全性。
  6. 网络策略 (networkpolicy)
    • 功能:设置网络策略以控制集群内 Pod 之间的网络流量。
    • 适用场景:限制或允许 Pod 之间的网络通信,提高安全性。
  7. KubeEdge (kubeedge)
    • 功能:为集群添加边缘节点,并在这些节点上运行工作负载。
    • 适用场景:边缘计算场景中,将计算能力扩展到边缘节点。
  8. 应用商店 (openpitrix)
    • 功能:基于 Helm 的应用程序商店,管理应用的整个生命周期。
    • 适用场景:简化应用的安装和管理过程,提供标准化的应用配置。
  9. 容器组 IP 池 (ippool)
    • 功能:创建 IP 池并将 IP 地址分配给 Pod。
    • 适用场景:在集群中管理 IP 地址的分配,支持复杂的网络拓扑。
  10. 服务拓扑图 (topology)
    • 功能:集成 Weave Scope 查看应用和容器的服务间通信。
    • 适用场景:可视化应用架构和服务之间的交互,帮助理解和优化系统拓扑。

这章节主要是如何使用KuberSphere, 官网提供很详细的操作手册, 对照流程图就可以很快习惯, 胜任相关的维护工作, 至此就可以把一些日常维护的活丢给下属了。