前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >容器中Secret的基础使用教程

容器中Secret的基础使用教程

原创
作者头像
keepyan
发布2018-12-23 18:25:40
1.1K0
发布2018-12-23 18:25:40
举报
文章被收录于专栏:TKE操作指北TKE操作指北

背景:我们都知道yaml文件中可以定义启动容器时使用的镜像所在地址,这里分为两种情况,即公有镜像和私有仓库镜像。

公有镜像,我们可以直接在yaml文件中配置images参数即可,制作容器时会自动去对应的位置拉取镜像,例如:

代码语言:javascript
复制
containers:                
 - name: nginx              
 image: nginx:latest  

这里的镜像就是默认的去docker 镜像仓库拉取,具体拉取哪个仓库取决于你的docker 镜像仓库的配置。

自己搭建的私有镜像,或者是github tencenthub 之类的仓库,私有镜像,需要进行认证的,就不能只是配置镜像地址了,还需要结合Secret 来进行搭配使用。

如:镜像仓库地址:abc.lengxiaofeng.cn (自建harbor仓库)

镜像:abc.lengxiaofeng.cn/cyk/nginx:1.9.0

用户名:admin 密码:*********

实验步骤:

一. 使用当前的镜像仓库信息创建Secret (使用两种方法)

1. 命令行使用kubectl create 命令直接创建

代码语言:txt
复制
kubectl -n default create secret  docker-registry registry-key   \
--docker-server=abc.lengxiaofeng.cn \
--docker-username=admin \
--docker-password=*********  \
--docker-email=17600****57@163.
注意:-n 参数不填写,默认也是default 这个命名空间内,docker-registry 参数后面接secret 名字。

完毕可以使用get 命令进行查看。

代码语言:javascript
复制
[root@CentOS ~]# kubectl get secret 
NAME                  TYPE                                  DATA      AGE
registry-key          kubernetes.io/dockerconfigjson        1         2h

2.使用yaml 文件的方式创建secret

代码语言:javascript
复制
[root@CentOS ~]# echo -n "admin"| base64 
YWRtaW4=
[root@CentOS ~]# echo -n "1f2d1e2e67df"| base64 
MWYyZDFlMmU2N2Rm

先将个人仓库的用户名和密码转码并保存

现在可以像这样写一个 secret 对象:

代码语言:txt
复制
apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  username: YWRtaW4=
  password: MWYyZDFlMmU2N2Rm

二:secret 创建完,接下来就需要在创建容器的yaml文件中引用secret 了。

代码语言:txt
复制
apiVersion: v1      #指定api版本,此值必须在kubectl apiversion中,可通过命令kubectl api-versions 查看
kind: ReplicationController     #指定创建资源的角色/类型
metadata:                                       #资源的元数据/属性
  name: nginx-test                          #资源的名字,在同一个namespace中必须唯一
spec:
  replicas: 3                               #副本数量3
  template:                                 #这里Pod的定义
    metadata:
      labels:                               #Pod的label,可以看到这个label与spec.selector相同
        app: nginx-test
    spec:                                 #specification of the resource content 指定该资源的内容
      restartPolicy: Always     #表明该容器一直运行,默认k8s策略,在此容器退出后,会立即创建一个相同的容器
      containers:
      - name: nginx-test                            #容器的名字
        image: abc.lengxiaofeng.cn/cyk/nginx:1.9.0     #容器使用的镜像地址
        ports:
        - containerPort: 80     #容器开发对外的端口
      imagePullSecrets:
      - name: registry-key     #指定使用的secret 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验步骤:
    • 一. 使用当前的镜像仓库信息创建Secret (使用两种方法)
      • 1. 命令行使用kubectl create 命令直接创建
      • 2.使用yaml 文件的方式创建secret
    • 二:secret 创建完,接下来就需要在创建容器的yaml文件中引用secret 了。
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档