我在我的 k8s 集群中运行一个 redis 集群helm install -n redis staging bitnami/redis-cluster
,并想将它与自托管的 gitlab 一起使用。在文档我知道我必须设置
redis:
install: false
global:
redis:
host: ???
password: enabled
key: secret
secret: staging-redis-secret
我的问题是我必须设置哪个主机,因为所有东西都在同一个 k8s 集群中运行。我是否必须设置本地 IP,例如10.42.0.4
。如果是,哪个 redis 容器的 IP,因为我正在运行其中 6 个。
有了这个配置我可以运行
helm install \
gitlab gitlab/gitlab \
--namespace gitlab \
--version 5.2.3 \
-f config.yaml
秘密在于
kubectl create secret generic staging-redis-secret --from-literal=secret=$(kubectl get secret --namespace "redis" staging-redis-cluster -o jsonpath="{.data.redis-password}")
答案1
Kubernetes 运行一个名为 CoreDNS 的内部 DNS 服务器。它应该负责处理 pod/服务之间的所有内部名称解析。您永远不应该将任何静态 IP 硬编码到配置文件中,因为下次重新启动整个集群时,此 IP 可能不再存在。
开始对一切事物使用域名并坚持下去。