eks错误:为kubernetes指定了certificate-authority-data和certificate-authority

问题描述 投票:2回答:1

我有一个配置文件的EKS设置(kubernetes):

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: REDACTED
    server: https://E3D13176159D2CA5C51AF0622AFE252C.yl4.us-east-1.eks.amazonaws.com
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: aws
  name: aws
current-context: aws
kind: Config
preferences: {}
users:
- name: aws
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1alpha1
      args:
      - token
      - -i
      - terraform-eks-demo-green
      command: aws-iam-authenticator
      env: null

这里的证书权限数据是自签名的(EKS AMI附带),我正在尝试为kubernetes(artifactory)建立一个私有的docker注册表,它是https并使用内部证书。

所以在申请我的容器时,我会做以下事情:

kubectl apply  --certificate-authority='internal-ca.pem' -f echo-service.yaml

失败的是:

错误:为kubernetes指定了certificate-authority-data和certificate-authority。 certificate-authority-data将覆盖。

如何设置容器以使用除docker config中定义的ca证书之外的其他ca证书?

目前,任何容器申请都失败了:

x509:由未知权限签署的证书

因为它使用以前的证书..

amazon-web-services kubernetes ca amazon-eks
1个回答
0
投票

kubectl证书颁发机构选项适用于客户端本身。你想要的是在容器内设置ca。我认为你可以设置几种方式(不限):

  1. 使用ca内容创建一个ConfigMap(或k8s机密)并挂载到您的pod上,并让您的应用程序将其引用为ca config(您的docker注册表)
  2. 例如,将配置直接烘焙到某个/etc/registry目录中的容器中,让应用程序引用它。更推荐的方法是1.由于通常不建议在容器图像中加入硬件。
© www.soinside.com 2019 - 2024. All rights reserved.