本主题介绍了如何在 Tanzu Kubernetes Grid 中将 cert-manager 安装到工作负载集群中。cert-manager 会自动安装在独立管理集群中。
本主题适用于在 vSphere、Amazon Web Services (AWS) 以及 Azure 上运行的工作负载集群。
要准备集群,请执行以下操作:
获取要在其中部署证书管理器的工作负载集群的管理员凭据。例如:
tanzu cluster kubeconfig get my-cluster --admin
将 kubectl 的上下文设置为集群。例如:
kubectl config use-context my-cluster-admin@my-cluster
要安装证书管理器,请执行以下操作:
如果要将 cert-manager 安装到单节点集群,如 vSphere 上的单节点集群(技术预览版)中所述,修补 cert-manager
软件包注释,以防止在单节点集群上作为核心软件包安装的 cert-manager
与 Tanzu standard
存储库中的cert-manager
之间发生冲突:
kubectl annotate --overwrite package cert-manager.tanzu.vmware.com.1.10.2+vmware.1-tkg.1 tkg.tanzu.vmware.com/package-repo='standard'
如果集群没有安装有 cert-manager 软件包的软件包存储库,如 tanzu-standard
存储库,请安装一个:
tanzu package repository add PACKAGE-REPO-NAME --url PACKAGE-REPO-ENDPOINT --namespace tkg-system
其中:
PACKAGE-REPO-NAME
是软件包存储库的名称,如 tanzu-standard
或使用 ADDITIONAL_IMAGE_REGISTRY
变量配置的专用映像注册表的名称。PACKAGE-REPO-ENDPOINT
是软件包存储库的 URL。
tanzu-standard
URL 为 projects.registry.vmware.com/tkg/packages/standard/repo:v2.2.0
。要从 Tanzu CLI 获取此值,请参见列出软件包存储库,或在 Tanzu Mission Control 中查看集群 (Cluster) 窗格中的附加模块 (Addons) > 存储库 (Repositories) 列表。确认 cert-manager
软件包在工作负载集群中可用:
tanzu package available list -A
检索可用软件包的版本:
tanzu package available list cert-manager.tanzu.vmware.com -A
安装 cert-manager 软件包:
tanzu package install cert-manager --package cert-manager.tanzu.vmware.com --namespace TARGET-NAMESPACE --version AVAILABLE-PACKAGE-VERSION
其中:
TARGET-NAMESPACE
是要在其中安装 cert-manager 软件包的命名空间。例如,my-packages
或 tanzu-cli-managed-packages
命名空间。
--namespace
标记,则 Tanzu CLI 会在 default
命名空间中安装软件包。kubectl create namespace my-packages
。AVAILABLE-PACKAGE-VERSION
是上面检索到的版本。例如:
tanzu package install cert-manager --package cert-manager.tanzu.vmware.com --namespace my-packages --version 1.7.2+vmware.1-tkg.1
确认已安装 cert-manager
软件包:
tanzu package installed list -A
cert-manager
软件包和 cert-manager
应用安装在运行 tanzu package install
命令时指定的命名空间中。
确认 cert-manager
应用已在 TARGET-NAMESPACE
中成功协调。例如:
kubectl get apps -A
NAMESPACE NAME DESCRIPTION SINCE-DEPLOY AGE
my-packages cert-manager Reconcile succeeded 3m2s 3m12s
...
如果状态不是 Reconcile Succeeded
,请查看 cert-manager
应用的完整状态详细信息。查看完整状态可帮助您解决问题。
kubectl get app cert-manager --namespace TARGET-NAMESPACE -o yaml
其中,TARGET-NAMESPACE
是安装软件包的命名空间。如果故障排除无法帮助您解决问题,则必须先卸载软件包,然后再重新安装:
tanzu package installed delete cert-manager --namespace TARGET-NAMESPACE
确认 cert-manager-
Pod 正在运行:
kubectl get pods -A
证书管理器 Pod 以及与 cert-manager 组件关联的任何其他资源是在 cert-manager
命名空间中创建的。