eks错误:为kubernetes指定了证书授权数据和证书授权

时间:2018-09-12 20:07:02

标签: amazon-web-services kubernetes ca amazon-eks

我有一个带有配置文件的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(人工工厂)设置私有docker登录,该注册表是https并使用内部证书。

因此,在应用容器时,我将执行以下操作:

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

失败:

  

错误:证书颁发机构数据和证书颁发机构都是   为kubernetes指定。证书授权数据将被覆盖。

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

当前,对容器的任何应用都会失败:

  

x509:证书由未知授权机构签名

因为它使用了以前的证书。

1 个答案:

答案 0 :(得分:0)

$ht = @{ '10' = 'ten'; 'a1' = 'a-one' } # string keys $ht['10'] # quoting required $ht.'10' # ditto, because 10 without quotes would be a *number* $ht.a1 # quoting *optional*, because a1 is parsed as a *string* 证书颁发机构选项适用于客户端本身。您需要在容器内设置ca。我认为您可以通过几种方式进行设置(但不限于):

  1. 使用ca内容创建ConfigMap(或k8s机密)并将其安装在您的Pod上,并让您的应用程序将其作为ca config(您的docker注册表)进行引用

  2. 例如,将配置直接烘烤到某个kubectl目录中的容器中,并让您的应用程序引用它。更加推荐的方法是1.,因为通常不建议在容器映像中使用硬包装的东西。