17-k8s-secret使用

文章目录

    • 一、概念
    • 二、相关操作
    • 三、harbor仓库加密资源

一、概念

  1. 概念:secret是k8s中用来存储敏感认证信息的一种重要资源,大致可以分为三种类型:docker-registrygenerictls,从名称上就可以看出来,分别用于存储镜像仓库认证信息,一般信息和证书信息。其中generic类型的最常用,比较典型的就是用来存放数据库的认证信息。

  2. 相关帮助指令:kubectl create secret -h
    17-k8s-secret使用_第1张图片

二、相关操作

  1. 创建generic 加密资源:kubectl create secret generic my-generic --from-literal=username=admin --from-literal=password=ffcsict123

    ps:对于需要加密的字符串,如果有特殊符号的,需要带上单引号,否则会被默认移除。如:–from-literal=password=‘ffcsict123’

  2. 查看generic 加密资源:kubectl describe secret my-generic
    17-k8s-secret使用_第2张图片

  3. 创建docker-registry加密资源

    kubectl create secret docker-registry my-harbor-secret --docker-username=admin --docker-password=ffcsict123 --docker-server=192.168.248.12:180
    
  4. 编辑docker-registry加密资源,拷贝加密串:kubectl edit secret my-harbor-secret
    在这里插入图片描述

  5. 打印加密串

    echo 'eyJhdXRocyI6eyIxOTIuMTY4LjI0OC4xMjoxODAiOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiZmZjc2ljdDEyMyIsImF1dGgiOiJZV1J0YVc0NlptWmpjMmxqZERFeU13PT0ifX19' | base64 --decode
    

在这里插入图片描述

三、harbor仓库加密资源

ps:前面文章部署springboot项目的时候,我们将项目打成镜像上传到harbor仓库,然后编写资源文件拉取部署。由于我的harbor仓库设置成了公开,所以不需要账号密码。接下来就演示下非公开仓库的使用。

  1. 打开harbor,将仓库设为私有
    17-k8s-secret使用_第3张图片

  2. 编写yaml文件:vi /opt/springboot-docker.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: sptest
      labels:
        controller: deploy 
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: sptest
      template:
        metadata:
          labels:
            app: sptest
        spec:
          containers:
            - name: k8stest
              image: 192.168.248.12:180/myresponsity/springboot-docker:v1
              ports:
                - name: k8stest-port
                  containerPort: 8080
                  protocol: TCP
    
  3. 启动pod:kubectl apply -f /opt/springboot-docker.yaml

  4. 查看:kubectl get pod
    在这里插入图片描述

  5. 查看详情:kubectl describe pod sptest-bc65fb8cd-sxgz9

    ps:无权限拉取
    在这里插入图片描述

  6. 给资源文件配置secret资源:vi /opt/springboot-docker.yaml

    ps:设置imagePullSecrets属性

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: sptest
      labels:
        controller: deploy 
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: sptest
      template:
        metadata:
          labels:
            app: sptest
        spec:
          imagePullSecrets: 
          - name: my-harbor-secret
          containers:
            - name: k8stest
              image: 192.168.248.12:180/myresponsity/springboot-docker:v1
              ports:
                - name: k8stest-port
                  containerPort: 8080
                  protocol: TCP
    
  7. 更新:kubectl apply -f /opt/springboot-docker.yaml

  8. 查看pod:kubectl get pod
    在这里插入图片描述

  9. 说明密码设置成功!

你可能感兴趣的:(k8s学习笔记,kubernetes,容器,云原生)