本文不涉及NSX-T安装以及初始化步骤,假设NSX-T 已具备如下预置条件:
1.完成ComputeManager的对接 |
![]() |
2.完成Host Transport Nodes和Edge Transport Nodes的部署 |
![]() |
![]() |
3.完成T1/ T0部署,并在T0上打通外部路由,确保Pod路由能通过外部网络可达,且Pod可以访问联网。 |
![]() |
![]() |
NSX-T 基础网络配置
# 配置DHCP Profiles,由T1提供OCP Cluster Node的动态IP地址分配。
# 配置OCP Cluster Node所使用的Overlay Segment(LS_172.36.1.0_24)并关联DHCP Profiles
# 配置Avi SE所使用的Overlay Segment(LS_SEG01)
DNS 记录添加
用户必须在托管 OpenShift Container Platform 集群的 vCenter 实例的相应 DNS 服务器中为两个静态 IP 地址创建 DNS 记录。 在每条记录中,<cluster_name> 是集群名称,<base_domain> 是用户在安装集群时指定的集群base domain。 完整的 DNS 记录采用以下形式:<component>.<cluster_name>.<base_domain>..本文以Windows DNSServer为例描述其配置步骤
组件 | 记录 | 描述 |
---|---|---|
API VIP | api.sddc3ocp.vmwlab.net. | 此A记录必须指向control plane node的负载均衡器。 此记录可由集群外部的客户端和集群内的所有节点解析。 |
Ingress VIP | *.apps.sddc3ocp.vmwlab.net. | 此A记录指向以运行 Ingress router pod 的node为目标的负载均衡器,默认情况下,这些node是工作节点。 此记录可由集群外部的客户端和集群内的所有节点解析。 |
# 在base domain下添加DNS子域sddc3ocp(此名称需与最终ocp cluster名称一致)
# 新建A记录–API。
# 在sddc3ocp子域下新建apps子域,并添加A记录 *
应用VCSA的CA根证书
由于通过IPI方式安装OCP时需要调用VCSA API,所以需要在Operator VM上加载证书。
# 登陆vcsa页面https://vcsa7sddc31.vmwlab.net,下载root CA
# 保存文件为vcsa7sddc31.zip并上传至Operator VM,解压后得到certs文件夹
# 拷贝lin文件夹下的所需证书,并更新至系统(Operator VM为Centos8)
[root@Operator ~]# unzip vcsa7sddc31.zip[root@Operator ~]# cp certs/lin/* /etc/pki/ca-trust/source/anchors [root@Operator ~]# update-ca-trust extract |
CNI(Antrea) 准备
OCP的部署阶段需要同时安装CNI,无法分开进行部署,所以需要根据使用场景,预先修改antrea的 Manifests,本文为避免数据平面隧道的多层隧道叠加,使用noEncap模式来部署Antrea。
# 修改operator.yaml文件相关参数
[root@Operator ~]# tar xvf deploy.tar.gz[root@Operator ~]# cd deploy/openshift/ [root@Operator openshift]# vi operator.yaml |
![]() |
# 修改operator.antrea.vmware.com_v1_antreainstall_cr.yaml文件相关参数
[root@Operator openshift]# vi operator.antrea.vmware.com_v1_antreainstall_cr.yaml |
antreaAgentConfig 部分 |
![]() |
antreaControllerConfig 部分 |
![]() |
OCP安装部署
# 生成OCP Cluster 节点登陆密钥,便于后期运维管理
[root@Operator ~]# ssh-keygen -t ed25519 -N ”[root@Operator ~]# cat /root/.ssh/id_ed25519.pub |
![]() |
[root@Operator ~]# ll /root/.ssh/ |
![]() |
# 根据向导生成install-config.yaml(Ignition配置文件)
[root@Operator ~]# ./openshift-install create install-config –dir /root/ocp-install |
![]() |
?Pull Secret [? for help] 步骤需要通过如下方式获取 |
[root@Operator ~]# jq -c . pull-secret.json |
# 获取OCP安装时访问Harbor的CA证书内容
[root@Operator ~]# cat ca.crt |
# 修改install-config.yaml关键参数
关于第4条中提到的ova文件链接,在有网络的情况下,可以注释掉这一行,第一次安装的时候,会自动从互联网下载,此时注意安装提示,会显示具体的文件下载地址,直接按提示链接下载即可。
在首次下载后,自动存至本地cache中,下次再安装时,会自动从cache拉取OVA。
![]() |
注意 :具体参数请详情请查阅如下文档 |
Installing a cluster on vSphere with customizations https://docs.openshift.com/container-platform/4.11/installing/installing_vsphere/installing-vsphere-installer-provisioned-customizations.html Installing a cluster on vSphere with network customizations |
# 创建OCP集群安装目录
[root@Operator ~]# mkdir ocp-install |
# 生成OCP manifests
[root@Operator ~]# ./openshift-install create manifests –dir ocp-install |
![]() |
# 拷贝antrea operator manifests目录至OCP安装路径
[root@Operator ~]# cp deploy/openshift/* ocp-install/manifests |
# 开始OCP&Antrea部署安装
[root@Operator ~]# ./openshift-install create cluster –dir ocp-install –log-level=info |
# 部署过程中确认Node分配的CIDR,并及时在T1上添加静态路由
由于使用noEncap模式,Node节点上OCP本身的Pod资源无法在节点间互访,会导致部分Pod Crash,最终安装失败。Workround:在安装过程中持续关注Pod信息,及时在T1添加到各节点Pod CIDR的静态路由。
[root@Operator ~]# export KUBECONFIG=/root/ocp-install/auth/kubeconfig |
[root@Operator ~]# kubectl –kubeconfig=kubeconfig get pods -A -o wide | grep 10.128. |
![]() |
从上图中结合VCSA上OCP Node VM的IP地址可以得到如下信息:
Node Name | Node IP | Pod CIDR |
sddc3ocp-nw5qz-master-0 | 172.36.1.109 | 10.128.0.0/24 |
sddc3ocp-nw5qz-master-1 | 172.36.1.138 | 10.128.1.0/24 |
sddc3ocp-nw5qz-master-2 | 172.36.1.104 | 10.128.2.0/24 |
sddc3ocp-nw5qz-worker-fg59f | 172.36.1.119 | 10.128.4.0/24 |
sddc3ocp-nw5qz-worker-p6jkt | 172.36.1.139 | 10.128.3.0/24 |
# 在T1上添加静态路由
# Next Hops部分请根据上表添加为节点IP地址
# 安装完毕,记录登录用户名和密码以及URL
![]() |
# OCP登录
https://console-openshift-console.apps.sddc3ocp.vmwlab.net
注意:安装过程中可以使用如下命令来检查安装状态 |
# Debug |
[root@Operator ~]# ./openshift-install wait-for install-complete –dir ocp-install –log-level=debug |
# 使用kubectl 查看ocp集群资源状态 |
[root@Operator ~]# cd ocp-install/auth/ |
[root@Operator ~]# kubectl –kubeconfig=kubeconfig get node |
[root@Operator ~]# kubectl –kubeconfig=kubeconfig get pods -A |
# 使用oc命令查看集群状态 |
[root@Operator ~]# oc get co |
# 安装过程遇到问题可以通过如下方式删除集群 |
[root@Operator ~]# ./openshift-install destroy cluster –dir ocp-install |