裸金属环境下的集群创建与升级指南
1. 创建用户集群
在创建了管理或混合集群之后,你可以向其中添加用户集群。这需要应用一个新的配置文件,该文件仅包含新集群的
Cluster
和
NodePool
自定义资源清单。创建第一个用户集群的主要步骤如下:
1. 使用
bmctl
创建集群配置模板文件。
2. 根据需求修改配置文件。
3. 使用
bmctl
应用配置文件。
1.1 创建集群配置
与创建第一个集群时一样,使用以下命令创建集群配置文件:
bmctl create config -c CLUSTER_NAME
其中,
CLUSTER_NAME
是你要为用户集群指定的名称。
1.2 填充集群配置文件
创建配置文件后,需要对其进行准备。该文件默认保存在
bmctl-workspace
文件夹内以集群名称命名的文件夹中。对于配置文件的许多部分,创建第一个集群时的说明同样适用于用户集群,可参考相关说明进行操作。
需要注意的是,要确保控制平面、负载均衡器部分以及
NodePool
资源中使用的 IP 地址不与第一个集群中已使用的地址重叠。
以下是一些特定于用户集群的配置任务:
-
移除凭证部分
:用户集群将使用管理/混合集群创建期间提供的凭证,因此无需为 GCP 提供凭证。需要从文件中删除相关行,例如包含密钥指针的部分:
gcrKeyPath: <path to GCR service account key>
sshPrivateKeyPath: <path to SSH private key, used for node access>
gkeConnectAgentServiceAccountKeyPath: <path to Connect agent service account key>
gkeConnectRegisterServiceAccountKeyPath: <path to Hub registration service account key>
cloudOperationsServiceAccountKeyPath: <path to Cloud Operations service account key>
-
设置集群类型
:将
Cluster中的type规范值设置为user:
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: user-cluster
namespace: cluster-user-cluster
spec:
# Cluster type. This can be:
type: user
- 负载均衡器配置 :需要为用户集群的负载均衡器提供配置,且此处使用的 IP 地址不能与第一个集群的负载均衡分配的地址重叠。示例配置如下:
# Sample user cluster config for load balancer and address pools
loadBalancer:
vips:
controlPlaneVIP: 10.200.0.71
ingressVIP: 10.200.0.72
addressPools:
- name: pool1
addresses:
- 10.200.0.72-10.200.0.90
1.3 创建集群
完成集群配置文件后,可使用以下命令创建第一个集群:
bmctl create cluster -c CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG
用户集群部署完成后,可使用生成的
kubeconfig
文件连接到新集群。
1.4 连接到集群
集群创建完成后,可使用
kubectl
从安装过程在用户集群命名空间中创建的
Secret
中获取
kubeconfig
文件。以下是提取
kubeconfig
文件的示例命令:
kubectl --kubeconfig ADMIN_KUBECONFIG get secret USER_CLUSTER_NAME-kubeconfig -n USER_CLUSTER_NAMESPACE -o ‘jsonpath={.data.value}’ | base64 -d > bmctl-workspace/user-cluster/USER_CLUSTER_NAME-kubeconfig
2. 升级集群
当裸金属版 Anthos 发布新版本时,你可以升级集群。在非独立集群安装中,需要先升级管理/混合集群,然后再升级用户集群。
2.1 升级管理、独立或混合集群
升级管理、独立或混合集群的步骤如下:
1. 修改集群创建期间使用的集群配置文件,将裸金属版 Anthos 集群版本从现有版本更改为要升级到的版本。以下是升级到 1.13 版本的示例配置:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: admin-cluster
namespace: cluster-admin-cluster
spec:
type: hybrid
# Anthos cluster version.
anthosBareMetalVersion: 1.13.0
-
下载所需版本的
bmctl工具(即要将集群升级到的版本):
gs://anthos-baremetal-release/bmctl/<VERSION>/linux-amd64/bmctl
- 执行以下命令升级集群:
bmctl upgrade cluster -c CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG
其中,
CLUSTER_NAME
是集群的名称,
ADMIN_KUBECONFIG
是安装过程中创建的
kubeconfig
文件。
以下是创建和升级集群的流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px
A([开始]):::startend --> B(创建管理/混合集群):::process
B --> C(创建用户集群配置文件):::process
C --> D(修改配置文件):::process
D --> E(应用配置文件创建用户集群):::process
E --> F{是否有新版本发布}:::decision
F -- 是 --> G(升级管理/混合集群):::process
G --> H(升级用户集群):::process
F -- 否 --> I([结束]):::startend
H --> I
3. 集群相关的其他信息
-
裸金属计算环境
:Anthos 支持在非 VMware 平台(包括裸金属或其他虚拟机管理程序)上部署,提供多种部署选项,如管理/用户、混合和独立集群。负载均衡有多种选择,包括使用外部负载均衡器(手动模式)或内置选项(捆绑模式)。默认存储选项限于本地主机存储,仅适用于开发集群。安装过程使用少量自文档化的配置文件,通过单个可执行文件
bmctl进行部署和升级。 - 集群网络 :不同云环境(如 GCP、AWS、Azure)下的集群网络配置有所不同,包括集群 IP 分配、出口流量控制、负载均衡器配置等。例如,在 GCP 上,需要考虑共享 VPC 的最佳实践;在 AWS 上,需要配置相关资源和网络要求。
- CI/CD 流程 :涉及持续集成和持续交付,包括工件版本控制、自动化测试、使用 Cloud Build 构建和部署应用程序、使用 Cloud Deploy 进行持续交付等。还可以使用 Skaffold 进行本地开发和预览。
以下是不同云环境下集群配置的对比表格:
| 云环境 | 集群 IP 分配 | 出口流量控制 | 负载均衡器配置 |
| ---- | ---- | ---- | ---- |
| GCP | 多种方式,如 VPC 原生集群等 | 可配置规则 | 多种类型,如内部和外部负载均衡器 |
| AWS | 需配置相关资源 | 可设置控制策略 | 如 NLB、ALB 等 |
| Azure | 遵循 Azure 网络规则 | 按 Azure 策略配置 | 支持 Azure 负载均衡器 |
4. 安全与策略管理
在集群的使用过程中,安全与策略管理至关重要。以下是一些关键的安全和策略相关内容:
4.1 容器安全
容器的安全涉及多个方面,包括容器扫描、运行时安全等。
-
容器扫描
:可以对容器进行扫描以检测常见漏洞和暴露(CVEs)。操作步骤如下:
1. 启用扫描功能。
2. 将镜像添加到仓库。
3. 审查镜像的漏洞情况。
-
运行时安全
:要避免以 root 用户运行容器和使用特权容器。例如,运行特权容器可能会带来安全风险,应尽量避免。
4.2 策略控制
使用 Gatekeeper Service 可以进行策略控制,具体操作如下:
-
审计约束
:对约束进行审计,确保策略的合规性。
-
创建约束模板
:定义策略的规则和条件。
-
创建命名空间豁免
:可以为特定的命名空间豁免某些策略。
-
启用策略
:将定义好的策略应用到集群中。
以下是安全与策略管理的操作步骤列表:
1. 进行容器扫描
- 启用扫描功能
- 添加镜像到仓库
- 审查镜像漏洞
2. 配置 Gatekeeper Service
- 审计约束
- 创建约束模板
- 创建命名空间豁免
- 启用策略
5. 边缘应用与计算
Anthos 可以作为边缘应用的平台,支持 5G 等技术,为边缘计算提供了强大的支持。
5.1 边缘应用架构
边缘应用具有独特的架构,其好处包括降低延迟、提高响应速度等,但也存在一些局限性,如资源有限等。
5.2 边缘计算的实现
可以通过 Google Distributed Cloud Edge 实现边缘计算,具体包括:
-
容器资源模型
:定义容器在边缘环境中的资源使用方式。
-
网络资源模型
:配置边缘网络的资源分配。
以下是边缘应用与计算的相关信息表格:
| 方面 | 描述 |
| ---- | ---- |
| 架构 | 具有独特架构,降低延迟、提高响应速度 |
| 实现方式 | 通过 Google Distributed Cloud Edge,包括容器和网络资源模型 |
6. 应用部署与开发
应用的部署和开发是集群使用的重要环节,涉及多个工具和流程。
6.1 应用部署工具
可以使用 Artifact Registry、Cloud Build、Cloud Source Repository 等工具进行应用部署。具体操作步骤如下:
1. 使用 Cloud Source Repository 创建代码仓库。
2. 使用 Cloud Build 构建容器镜像,可以使用配置文件或 Dockerfile。
3. 将构建好的镜像存储到 Artifact Registry。
4. 将应用部署到目标集群,如 Anthos GKE 或 Cloud Run。
6.2 持续集成与交付
通过 CI/CD 流程实现应用的持续集成和交付,包括使用 Skaffold 进行本地开发和预览,使用 Cloud Deploy 进行持续交付。以下是 CI/CD 流程的 mermaid 流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A([开始]):::startend --> B(代码提交到 Cloud Source Repository):::process
B --> C(Cloud Build 构建镜像):::process
C --> D(镜像存储到 Artifact Registry):::process
D --> E{是否进行本地预览}:::process
E -- 是 --> F(Skaffold 本地预览):::process
E -- 否 --> G(Cloud Deploy 持续交付):::process
F --> G
G --> H([结束]):::startend
7. 总结
通过以上内容,我们了解了在裸金属环境下创建和升级集群的详细步骤,包括用户集群的创建、配置和连接,以及集群升级的操作。同时,还涉及了集群的安全与策略管理、边缘应用与计算、应用部署与开发等多个方面。掌握这些知识和操作方法,可以帮助我们更好地使用 Anthos 集群,提高工作效率和系统的安全性。在实际应用中,需要根据具体的需求和环境进行合理的配置和调整,以充分发挥集群的优势。
超级会员免费看
33

被折叠的 条评论
为什么被折叠?



