This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.10. 配置与 Redis 的安全通信
在 Red Hat OpenShift GitOps 中使用传输层安全 (TLS) 加密,您可以保护 Argo CD 组件和 Redis 缓存之间的通信,并保护传输中潜在的敏感数据。
您可以使用以下配置之一保护与 Redis 的通信:
-
启用
autotls
设置,为 TLS 加密发布适当的证书。 -
通过使用密钥和证书对创建
argocd-operator-redis-tls
secret,手动配置 TLS 加密。
启用或没有启用高可用性 (HA) 时都可以使用这两个配置。
先决条件
-
您可以使用
cluster-admin
权限访问集群。 - 访问 OpenShift Container Platform web 控制台。
- 在集群中安装了 Red Hat OpenShift GitOps Operator。
5.10.1. 为启用了 autotls 的 Redis 配置 TLS 复制链接链接已复制到粘贴板!
您可以通过在新的或已有的 Argo CD 实例中启用 autotls
设置来为 Redis 配置 TLS 加密。配置会自动置备 argocd-operator-redis-tls
secret,且不需要进一步的步骤。目前,OpenShift Container Platform 是唯一受支持的 secret 供应商。
默认情况下禁用 autotls
设置。
流程
- 登陆到 OpenShift Container Platform Web 控制台。
创建启用了
autotls
的 Argo CD 实例:-
在 Web 控制台的 Administrator 视角中,使用左侧导航面板进入 Administration
CustomResourceDefinitions。 -
搜索
argocds.argoproj.io
并点ArgoCD
自定义资源定义 (CRD)。 - 在 CustomResourceDefinition 详情页面中,点 Instances 选项卡,然后点 Create ArgoCD。
编辑或替换类似以下示例的 YAML:
启用 autotls 的 Argo CD CR 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示另外,您可以通过运行以下命令来在已经存在的 Argo CD 实例上启用
autotls
设置:oc patch argocds.argoproj.io <instance-name> --type=merge -p '{"spec":{"redis":{"autotls":"openshift"}}}'
$ oc patch argocds.argoproj.io <instance-name> --type=merge -p '{"spec":{"redis":{"autotls":"openshift"}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create。
验证 Argo CD pod 是否已就绪并在运行:
oc get pods -n <namespace>
$ oc get pods -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定运行 Argo CD 实例的命名空间,如
openshift-gitops
。
禁用 HA 的输出示例
NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 26s argocd-redis-84b77d4f58-vp6zm 1/1 Running 0 37s argocd-repo-server-5b959b57f4-znxjq 1/1 Running 0 37s argocd-server-6b8787d686-wv9zh 1/1 Running 0 37s
NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 26s argocd-redis-84b77d4f58-vp6zm 1/1 Running 0 37s argocd-repo-server-5b959b57f4-znxjq 1/1 Running 0 37s argocd-server-6b8787d686-wv9zh 1/1 Running 0 37s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意启用 HA 的 TLS 配置需要一个至少有三个 worker 节点的集群。如果您启用了使用 HA 配置的 Argo CD 实例,可能需要几分钟时间才会显示输出。
启用了 HA 的输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
在 Web 控制台的 Administrator 视角中,使用左侧导航面板进入 Administration
验证
argocd-operator-redis-tls
secret 是否已创建:oc get secrets argocd-operator-redis-tls -n <namespace>
$ oc get secrets argocd-operator-redis-tls -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定运行 Argo CD 实例的命名空间,如
openshift-gitops
。
输出示例
NAME TYPE DATA AGE argocd-operator-redis-tls kubernetes.io/tls 2 30s
NAME TYPE DATA AGE argocd-operator-redis-tls kubernetes.io/tls 2 30s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow secret 必须是
kubernetes.io/tls
类型,大小为2
。
5.10.2. 为禁用了 autotls 的 Redis 配置 TLS 复制链接链接已复制到粘贴板!
您可以使用密钥和证书对创建 argocd-operator-redis-tls
secret,为 Redis 手动配置 TLS 加密。另外,您必须注解 secret 以指示它属于适当的 Argo CD 实例。对于启用了高可用性 (HA) 的实例,创建证书和 secret 的步骤会有所不同。
流程
- 登陆到 OpenShift Container Platform Web 控制台。
创建 Argo CD 实例:
-
在 Web 控制台的 Administrator 视角中,使用左侧导航面板进入 Administration
CustomResourceDefinitions。 -
搜索
argocds.argoproj.io
并点ArgoCD
自定义资源定义 (CRD)。 - 在 CustomResourceDefinition 详情页面中,点 Instances 选项卡,然后点 Create ArgoCD。
编辑或替换类似以下示例的 YAML:
禁用 autotls 的 ArgoCD CR 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create。
验证 Argo CD pod 是否已就绪并在运行:
oc get pods -n <namespace>
$ oc get pods -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定运行 Argo CD 实例的命名空间,如
openshift-gitops
。
禁用 HA 的输出示例
NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 26s argocd-redis-84b77d4f58-vp6zm 1/1 Running 0 37s argocd-repo-server-5b959b57f4-znxjq 1/1 Running 0 37s argocd-server-6b8787d686-wv9zh 1/1 Running 0 37s
NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 26s argocd-redis-84b77d4f58-vp6zm 1/1 Running 0 37s argocd-repo-server-5b959b57f4-znxjq 1/1 Running 0 37s argocd-server-6b8787d686-wv9zh 1/1 Running 0 37s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意启用 HA 的 TLS 配置需要一个至少有三个 worker 节点的集群。如果您启用了使用 HA 配置的 Argo CD 实例,可能需要几分钟时间才会显示输出。
启用了 HA 的输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
在 Web 控制台的 Administrator 视角中,使用左侧导航面板进入 Administration
根据您的 HA 配置,使用以下选项之一为 Redis 服务器创建一个自签名证书:
对于禁用了 HA 的 Argo CD 实例,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定运行 Argo CD 实例的命名空间,如
openshift-gitops
。
输出示例
Generating a RSA private key ...............++++ ............................++++ writing new private key to '/tmp/redis.key'
Generating a RSA private key ...............++++ ............................++++ writing new private key to '/tmp/redis.key'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于启用了 HA 的 Argo CD 实例,运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定运行 Argo CD 实例的命名空间,如
openshift-gitops
。
输出示例
Generating a RSA private key ...............++++ ............................++++ writing new private key to '/tmp/redis-ha.key'
Generating a RSA private key ...............++++ ............................++++ writing new private key to '/tmp/redis-ha.key'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
运行以下命令,验证生成的证书和密钥是否在
/tmp
目录中可用:cd /tmp
$ cd /tmp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ls
$ ls
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 禁用 HA 的输出示例
... redis.crt redis.key ...
... redis.crt redis.key ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用了 HA 的输出示例
... redis-ha.crt redis-ha.key ...
... redis-ha.crt redis-ha.key ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据您的 HA 配置,使用以下选项之一创建
argocd-operator-redis-tls
secret:对于禁用了 HA 的 Argo CD 实例,请运行以下命令:
oc create secret tls argocd-operator-redis-tls --key=/tmp/redis.key --cert=/tmp/redis.crt
$ oc create secret tls argocd-operator-redis-tls --key=/tmp/redis.key --cert=/tmp/redis.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于启用了 HA 的 Argo CD 实例,运行以下命令:
oc create secret tls argocd-operator-redis-tls --key=/tmp/redis-ha.key --cert=/tmp/redis-ha.crt
$ oc create secret tls argocd-operator-redis-tls --key=/tmp/redis-ha.key --cert=/tmp/redis-ha.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
secret/argocd-operator-redis-tls created
secret/argocd-operator-redis-tls created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注解 secret 以表示它属于 Argo CD CR:
oc annotate secret argocd-operator-redis-tls argocds.argoproj.io/name=<instance-name>
$ oc annotate secret argocd-operator-redis-tls argocds.argoproj.io/name=<instance-name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定 Argo CD 实例的名称,如
argocd
。
输出示例
secret/argocd-operator-redis-tls annotated
secret/argocd-operator-redis-tls annotated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 Argo CD pod 是否已就绪并在运行:
oc get pods -n <namespace>
$ oc get pods -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定运行 Argo CD 实例的命名空间,如
openshift-gitops
。
禁用 HA 的输出示例
NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 26s argocd-redis-84b77d4f58-vp6zm 1/1 Running 0 37s argocd-repo-server-5b959b57f4-znxjq 1/1 Running 0 37s argocd-server-6b8787d686-wv9zh 1/1 Running 0 37s
NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 26s argocd-redis-84b77d4f58-vp6zm 1/1 Running 0 37s argocd-repo-server-5b959b57f4-znxjq 1/1 Running 0 37s argocd-server-6b8787d686-wv9zh 1/1 Running 0 37s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您启用了使用 HA 配置的 Argo CD 实例,可能需要几分钟时间才会显示输出。
启用了 HA 的输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow