为特定名称空间创建 imagePullSecrets

imagePullSecrets 是一个授权令牌(也称为密钥),用来存储用于访问注册表的 Docker 凭证。

可以通过两种方式从management console中创建应用程序。 要创建应用程序,您可以在“创建部署”窗口中输入参数值,或将 YAML 文件粘贴到“创建资源”窗口中。

如果要使用专用映像注册表的其他名称空间中的映像,那么您必须在 YAML 文件中提供该名称空间的 imagePullSecrets 值。

要创建 imagePullSecrets,请完成下列操作:

  1. 安装 kubectl 命令行界面,并配置与 IBM® Cloud Private 集群的连接。 请参阅从 kubectl CLI 访问集群

  2. 切换到您要在其中创建部署的名称空间。

    kubectl config set-context <cluster_CA_domain>-context --user=<user_name> --namespace=<namespace_name>
    

    其中,<cluster_CA_domain> 是安装期间在 config.yaml 文件中设置的认证中心 (CA) 域。

  3. 创建密钥。 运行以下命令:

    kubectl create secret docker-registry myregistrykey --docker-server=<cluster_CA_domain>:8500 --docker-username=<user_name> --docker-password=<user_password> --docker-email=<user_email>
    
  4. 查看密钥。 运行以下命令:

    kubectl get secret
    

    输出类似于以下文本:

    NAME                  TYPE                                  DATA      AGE
    myregistrykey         kubernetes.io/dockercfg               1         5d
    default-token-5gjfc   kubernetes.io/service-account-token   3         5d
    

    在该示例中,myregistrykey 密钥可用在 default 名称空间中。

在部署中使用 imagePullSecret

imagePullSecrets 参数添加到部署的 YAML 文件中。 将 imagePullSecrets 参数放入 templates 部分的 spec 部分中,如以下样本中所示:

  apiVersion: apps/v1beta2
  kind: Deployment
  metadata:
    name: nginx-demo
  spec:
    replicas: 1
    selector:
      matchLabels:
        app: nginx
    template:
      metadata:
        labels:
          app: nginx
      spec:
        hostNetwork: false
        containers:
        - name: nginx
          image: mycluster.icp:8500/developer/nginx
          ports: []
          resources:
            limits: {}
        imagePullSecrets:
        - name: myregistrykey