OKD项目在vSphere上的用户供应基础设施(UPI)部署指南

OKD项目在vSphere上的用户供应基础设施(UPI)部署指南

【免费下载链接】okd The self-managing, auto-upgrading, Kubernetes distribution for everyone 【免费下载链接】okd 项目地址: https://gitcode.com/gh_mirrors/ok/okd

概述

本文将详细介绍如何在VMware vSphere环境中通过用户供应基础设施(UPI)方式部署OKD 4集群。OKD是OpenShift的开源上游项目,提供了强大的容器应用平台。通过UPI方式,用户可以完全控制基础设施的配置过程,特别适合有特定环境要求的企业用户。

前置准备

在开始部署前,请确保满足以下条件:

  1. 已安装对应版本的openshift-installeroc命令行工具
  2. 已配置好govc工具并完成vSphere环境认证
  3. 准备一个可用的vSphere网络端口组
  4. 了解OKD不会与vSphere平台深度集成(使用platform: none配置)

部署流程详解

1. 获取Fedora CoreOS镜像

Fedora CoreOS(FCOS)是OKD 4的推荐主机操作系统,专为运行容器化工作负载而优化。

# 下载FCOS OVA镜像
wget https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/31.20200113.3.1/x86_64/fedora-coreos-31.20200113.3.1-vmware.x86_64.ova 

# 导入到vSphere
govc import.ova -ds=<datastore_name> \
    -name fedora-coreos-31.20200113.3.1-vmware.x86_64 \
    fedora-coreos-31.20200113.3.1-vmware.x86_64.ova

2. 创建虚拟机模板

使用以下脚本批量创建控制平面、工作节点和引导节点虚拟机:

#!/bin/bash
# 设置集群参数
template_name="fedora-coreos-31.20200113.3.1-vmware.x86_64"
cluster_name=<cluster_name>
datastore_name=<datastore_name>
vm_folder=<folder_path>
network_name=<network_name>
master_node_count=3  # 推荐3个控制节点
worker_node_count=2  # 根据需求调整

# 创建控制节点
for (( i=1; i<=${master_node_count}; i++ )); do
    vm="${cluster_name}-master-${i}"
    govc vm.clone -vm "${template_name}" \
        -ds "${datastore_name}" \
        -folder "${vm_folder}" \
        -on="false" \
        -c="4" -m="8192" \
        -net="${network_name}" \
        $vm
    govc vm.disk.change -vm $vm -disk.label "Hard disk 1" -size 120G
done

# 创建工作节点
for (( i=1; i<=${worker_node_count}; i++ )); do
    vm="${cluster_name}-worker-${i}"
    govc vm.clone -vm "${template_name}" \
            -ds "${datastore_name}" \
            -folder "${vm_folder}" \
            -on="false" \
            -c="4" -m="8192" \
            -net="${network_name}" \
            $vm
    govc vm.disk.change -vm $vm -disk.label "Hard disk 1" -size 120G
done

# 创建引导节点
vm="${cluster_name}-bootstrap"
govc vm.clone -vm "${template_name}" \
        -ds "${datastore_name}" \
        -folder "${vm_folder}" \
        -on="false" \
        -c="4" -m="8192" \
        -net="${network_name}" \
        $vm
govc vm.disk.change -vm $vm -disk.label "Hard disk 1" -size 120G

3. 配置网络基础设施

OKD集群需要正确配置以下网络组件:

  • DNS服务:为集群节点提供正向和反向解析
  • DHCP服务:为节点分配IP地址和主机名
  • 负载均衡器:分发API服务器和机器配置服务流量

建议配置至少3个控制平面节点以实现高可用性,负载均衡器应配置为监听6443(API)和22623(机器配置)端口。

4. 生成集群配置文件

创建install-config.yaml文件,这是集群的核心配置文件:

apiVersion: v1
baseDomain: example.com
metadata:
  name: okd-cluster

compute:
- hyperthreading: Enabled
  name: worker
  replicas: 2

controlPlane:
  hyperthreading: Enabled
  name: master
  replicas: 3

platform:
  none: {}

pullSecret: '<从官方获取的pull secret>'
sshKey: 'ssh-rsa AAAAB3NzaC1...'

5. 生成Ignition配置文件

Ignition是FCOS使用的初始化系统,用于配置节点:

openshift-install create ignition-configs

此命令会生成以下文件:

  • bootstrap.ign - 引导节点配置
  • master.ign - 控制平面节点配置
  • worker.ign - 工作节点配置

6. 配置虚拟机元数据

由于bootstrap.ign文件较大,需要通过HTTP服务提供:

{
  "ignition": {
    "config": {
      "merge": [
        {
          "source": "http://<YOUR_SERVER_IP>:8000/bootstrap.ign", 
          "verification": {}
        }
      ]
    },
    "timeouts": {},
    "version": "3.0.0"
  }
}

使用脚本为所有节点设置元数据:

#!/bin/bash
cluster_name=okd-cluster
master_node_count=3
worker_node_count=2

# 设置控制节点元数据
for (( i=1; i<=${master_node_count}; i++ )); do
    vm="${cluster_name}-master-${i}"
    govc vm.change -vm $vm \
        -e guestinfo.ignition.config.data="$(cat master.ign | base64 -w0)" \
        -e guestinfo.ignition.config.data.encoding="base64" \
        -e disk.EnableUUID="TRUE"
done

# 设置工作节点元数据
for (( i=1; i<=${worker_node_count}; i++ )); do
    vm="${cluster_name}-worker-${i}"
    govc vm.change -vm $vm \
            -e guestinfo.ignition.config.data="$(cat worker.ign | base64 -w0)" \
            -e guestinfo.ignition.config.data.encoding="base64" \
            -e disk.EnableUUID="TRUE"
done

# 设置引导节点元数据
vm="${cluster_name}-bootstrap"
govc vm.change -vm $vm \
    -e guestinfo.ignition.config.data="$(cat append-bootstrap.ign | base64 -w0)" \
    -e guestinfo.ignition.config.data.encoding="base64" \
    -e disk.EnableUUID="TRUE"

7. 启动集群节点

按照以下顺序启动节点:

  1. 首先启动引导节点,等待其完成FCOS安装并启动API服务
  2. 启动控制平面节点,等待它们加入etcd集群
  3. 最后启动工作节点

使用以下命令监控引导过程:

openshift-install wait-for bootstrap-complete --log-level debug

8. 完成集群安装

引导完成后,需要执行以下操作:

  1. 批准节点证书签名请求(CSR):

    oc get csr -ojson | jq -r '.items[] | select(.status == {} ) | .metadata.name' | xargs --no-run-if-empty oc adm certificate approve
    
  2. 配置镜像仓库存储:

    oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed","storage":{"emptyDir":{}}}}'
    
  3. 等待安装完成:

    openshift-install wait-for install-complete --log-level debug
    

集群初始化后配置

安装完成后,建议执行以下操作:

  1. 配置身份提供程序,禁用临时kubeadmin用户
  2. 根据需求配置持久化存储
  3. 设置集群监控和日志收集
  4. 配置网络策略和安全性设置

故障排查技巧

  1. 使用journalctl -u kubelet查看kubelet日志
  2. 通过crictl pscrictl logs检查容器状态
  3. 检查API服务器和机器配置服务端口(6443和22623)是否可访问
  4. 验证DNS解析和网络连通性

通过以上步骤,您可以在vSphere环境中成功部署一个高可用的OKD 4集群。这种部署方式虽然步骤较多,但提供了最大的灵活性和控制权,适合生产环境使用。

【免费下载链接】okd The self-managing, auto-upgrading, Kubernetes distribution for everyone 【免费下载链接】okd 项目地址: https://gitcode.com/gh_mirrors/ok/okd

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值