为特定名称空间创建 imagePullSecrets
imagePullSecrets 是一个授权令牌(也称为密钥),用来存储用于访问注册表的 Docker 凭证。
可以通过两种方式从management console中创建应用程序。 要创建应用程序,您可以在“创建部署”窗口中输入参数值,或将 YAML 文件粘贴到“创建资源”窗口中。
如果要使用专用映像注册表的其他名称空间中的映像,那么您必须在 YAML 文件中提供该名称空间的 imagePullSecrets 值。
要创建 imagePullSecrets,请完成下列操作:
-
安装
kubectl
命令行界面,并配置与 IBM® Cloud Private 集群的连接。 请参阅从 kubectl CLI 访问集群。 -
切换到您要在其中创建部署的名称空间。
kubectl config set-context <cluster_CA_domain>-context --user=<user_name> --namespace=<namespace_name>
其中,
<cluster_CA_domain>
是安装期间在config.yaml
文件中设置的认证中心 (CA) 域。 -
创建密钥。 运行以下命令:
kubectl create secret docker-registry myregistrykey --docker-server=<cluster_CA_domain>:8500 --docker-username=<user_name> --docker-password=<user_password> --docker-email=<user_email>
-
查看密钥。 运行以下命令:
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