.NET应用KubernetesClient中与Docker.DotNet AuthConfig等效的类是什么?
等效类及使用说明
Kubernetes C# 客户端中覆盖该功能的核心实现对应KubernetesClient.Models.V1Secret类,针对镜像仓库认证场景下需要将该类的Type属性指定为kubernetes.io/dockerconfigjson即可实现和Docker.DotNet的AuthConfig完全等效的认证信息存储能力。
- 你之前用
AuthConfig存储的用户名、密码、镜像仓库地址、令牌等字段,和K8s中.dockerconfigjson格式的配置字段完全兼容,原有认证配置可以直接复用无需调整。 - 仅需要将原有认证信息序列化为标准Docker配置JSON,转Base64后填入
V1Secret的Data字典中键为.dockerconfigjson的字段即可。
代码示例
// 构造镜像仓库认证配置,和原有AuthConfig字段逻辑完全一致 var registryAuth = new { Auths = new Dictionary<string, object> { ["https://你的镜像仓库地址"] = new { Username = "认证用户名", Password = "认证密码/令牌", Email = "可选联系邮箱", Auth = Convert.ToBase64String(Encoding.UTF8.GetBytes("用户名:密码")) } } }; // 序列化后转Base64编码 var dockerConfigJson = JsonSerializer.Serialize(registryAuth); var dockerConfigBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(dockerConfigJson)); // 构造K8s集群可用的认证Secret对象 var imagePullSecret = new KubernetesClient.Models.V1Secret { ApiVersion = "v1", Kind = "Secret", Metadata = new V1ObjectMeta { Name = "自定义secret名称", NamespaceProperty = "default" }, Type = "kubernetes.io/dockerconfigjson", Data = new Dictionary<string, byte[]> { [".dockerconfigjson"] = Encoding.UTF8.GetBytes(dockerConfigBase64) } };
内容的提问来源于stack exchange,提问作者Thor
相关产品推荐
相关产品推荐

