Kubernetes 使用K8S/Helm:MountVolume安装TimescaleDB时出错。卷“certificate”的安装失败:找不到secret“TimescaleDB certificate”

Kubernetes 使用K8S/Helm:MountVolume安装TimescaleDB时出错。卷“certificate”的安装失败:找不到secret“TimescaleDB certificate”,kubernetes,kubernetes-helm,timescaledb,Kubernetes,Kubernetes Helm,Timescaledb,我刚刚尝试在Ubuntu20.04上安装minikube中带有Helm的timescaleDB Single 通过以下方式安装后: helm安装timescaledb timescaledb/timescaledb单命名空间espace-client-v2 我得到了信息: ➜ ~ helm install timescaledb timescaledb/timescaledb-single --namespace espace-client-v2 NAME: timescaledb LAST

我刚刚尝试在Ubuntu20.04上安装minikube中带有Helm的timescaleDB Single

通过以下方式安装后:

helm安装timescaledb timescaledb/timescaledb单命名空间espace-client-v2

我得到了信息:

➜  ~ helm install timescaledb timescaledb/timescaledb-single  --namespace espace-client-v2
NAME: timescaledb
LAST DEPLOYED: Fri Aug  7 17:17:59 2020
NAMESPACE: espace-client-v2
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
TimescaleDB can be accessed via port 5432 on the following DNS name from within your cluster:
timescaledb.espace-client-v2.svc.cluster.local

To get your password for superuser run:

    # superuser password
    PGPASSWORD_POSTGRES=$(kubectl get secret --namespace espace-client-v2 timescaledb-credentials -o jsonpath="{.data.PATRONI_SUPERUSER_PASSWORD}" | base64 --decode)

    # admin password
    PGPASSWORD_ADMIN=$(kubectl get secret --namespace espace-client-v2 timescaledb-credentials -o jsonpath="{.data.PATRONI_admin_PASSWORD}" | base64 --decode)

To connect to your database, chose one of these options:

1. Run a postgres pod and connect using the psql cli:
    # login as superuser
    kubectl run -i --tty --rm psql --image=postgres \
      --env "PGPASSWORD=$PGPASSWORD_POSTGRES" \
      --command -- psql -U postgres \
      -h timescaledb.espace-client-v2.svc.cluster.local postgres

    # login as admin
    kubectl run -i --tty --rm psql --image=postgres \
      --env "PGPASSWORD=$PGPASSWORD_ADMIN" \
      --command -- psql -U admin \
      -h timescaledb.espace-client-v2.svc.cluster.local postgres

2. Directly execute a psql session on the master node

   MASTERPOD="$(kubectl get pod -o name --namespace espace-client-v2 -l release=timescaledb,role=master)"
   kubectl exec -i --tty --namespace espace-client-v2 ${MASTERPOD} -- psql -U postgres

它似乎安装得很好

但是,在执行时:

     PGPASSWORD_POSTGRES=$(kubectl get secret --namespace espace-client-v2 timescaledb-credentials -o jsonpath="{.data.PATRONI_SUPERUSER_PASSWORD}" | base64 --decode)

Error from server (NotFound): secrets "timescaledb-credentials" not found


之后,我意识到pod甚至还没有被创建,它给了我以下错误

MountVolume.SetUp failed for volume "certificate" : secret "timescaledb-certificate" not found

我该怎么办?

我能做到。如果页面没有提供有关安装过程的详细信息,您可以转到以下位置:

我必须使用kustomize生成内容:

./generate_kustomization.sh my-release
然后生成几个文件:

credentials.conf  kustomization.yaml  pgbackrest.conf  timescaledbMap.yaml  tls.crt  tls.key
然后我做了:

kubectl kustomize ./
它生成了一个k8s yml文件,我将其保存为timescaledbMap.yaml

最后,我做到了:

kubectl apply -f timescaledbMap.yaml
然后它创造了所有必要的秘密,我可以安装图表


。希望它能帮助别人。

我能做到。如果页面没有提供有关安装过程的详细信息,您可以转到以下位置:

我必须使用kustomize生成内容:

./generate_kustomization.sh my-release
然后生成几个文件:

credentials.conf  kustomization.yaml  pgbackrest.conf  timescaledbMap.yaml  tls.crt  tls.key
然后我做了:

kubectl kustomize ./
它生成了一个k8s yml文件,我将其保存为timescaledbMap.yaml

最后,我做到了:

kubectl apply -f timescaledbMap.yaml
然后它创造了所有必要的秘密,我可以安装图表


。希望它能帮助其他人。

要使用kubectl获取机密,您必须先创建机密。。您是否创建了secrets.yaml模板来管理密码。?特努普,我没有。那么请创建它。这是生产用的吗?如果是这样的话,我建议你不要用任何人都可以访问的价值观来管理你的秘密。但是,您可以手动创建机密,并再次创建其唯一的base64编码。有生产级的秘密管理系统,比如Hashicorp vault,你可以考虑使用它。好的,我将在周一试用。我应该只把这两个变量放进去?是的。只有密码。干杯。要使用kubectl获得秘密,你必须先创建秘密。。您是否创建了secrets.yaml模板来管理密码。?特努普,我没有。那么请创建它。这是生产用的吗?如果是这样的话,我建议你不要用任何人都可以访问的价值观来管理你的秘密。但是,您可以手动创建机密,并再次创建其唯一的base64编码。有生产级的秘密管理系统,比如Hashicorp vault,你可以考虑使用它。好的,我将在周一试用。我应该只把这两个变量放进去?是的。只有密码。干杯