专栏首页TKE操作指北容器中Secret的基础使用教程
原创

容器中Secret的基础使用教程

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

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

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 命令直接创建

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 命令进行查看。

[root@CentOS ~]# kubectl get secret 
NAME                  TYPE                                  DATA      AGE
registry-key          kubernetes.io/dockerconfigjson        1         2h

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

[root@CentOS ~]# echo -n "admin"| base64 
YWRtaW4=
[root@CentOS ~]# echo -n "1f2d1e2e67df"| base64 
MWYyZDFlMmU2N2Rm

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

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

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  username: YWRtaW4=
  password: MWYyZDFlMmU2N2Rm

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

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 

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 国内主机安装kubenetes1.9.0

    链接:https://pan.baidu.com/s/1kjhCqh5DlcBHkqRyHOx8oQ 密码:9dma

    keepyan
  • TKE镜像仓库的正确打开姿势

    镜像仓库用于存放 Docker 镜像,Docker 镜像用于部署容器服务,每个镜像有特定的唯一标识(镜像的 Registry 地址+镜像名称+镜像 Tag),目...

    keepyan
  • 怎么以特权模式运行容器

    小编这里是使用docker run 启动的容器,相信很多小伙伴刚接触容器的时候应该都遇到过这个问题。

    keepyan
  • Docker之常用命令(二)

    那一叶随风
  • Docker 入门(一)

    仓库和 registry 是最好理解的,registry 就类似于 GitHub 那样的代码托管平台,GitHub 托管代码,而 registry 则托管镜像,...

    benny
  • 工具系列 | Docker基本概念小结

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也...

    Tinywan
  • Docker 入门(一):理解三大核心

    Docker 的前世今生 Docker 的核心理念是 Build, Ship, and Run Any App, Anywher,即一次封装,到处运行。 从前,...

    zhisheng
  • 试用docker功能

    jeremyxu
  • docker入门篇

    docker pull centos       # 从docker仓库下载一个镜像例如:docker pull centos:6.7

    二狗不要跑
  • Docker教程03:Docker命令详解

    docker容器可以理解为在沙盒中运行的进程.这个沙盒包含了该进程运行所必须的资源,包括文件系统、系统类库、shell 环境等等.但这个沙盒默认是不会运行任何程...

    mojocn

扫码关注云+社区

领取腾讯云代金券