07-k8s中secret资源02-玩转secret

这篇具有很好参考价值的文章主要介绍了07-k8s中secret资源02-玩转secret。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、回顾secret资源的简单实用

第一步:将想要的数据信息【key:value】中的value值,使用base64编码后,写入secret资源清单中;

第二步:创建secret资源;

第三步:pod资源引用secret资源;

二、实战secret资源

1,第一步:将数据base64编码

[root@k8s231 ~]# echo xinjizhiwa | base64
eGluaml6aGl3YQo=

2,编辑secret资源清单

[root@k8s231 secrets]# vim secret.yaml

apiVersion: v1
kind: Secret
metadata:
  name: secret-01

#用户自定义的任意数据类型;(还有别的类型。。。)
type: Opaque
data:
  k8s: eGluaml6aGl3YQo=

3,创建secret资源

[root@k8s231 secrets]# kubectl apply -f secret.yaml

07-k8s中secret资源02-玩转secret,k8s系列,kubernetes,容器,云原生

4,pod引用secret资源

· 编辑资源清单

[root@k8s231 secrets]# cat pod.yaml 
#pod资源env环境变量方式引用secret
apiVersion: v1
kind: Pod
metadata:
  name: pod-secret-01
spec:
  containers:
  - name: c1
    image: nginx:1.20.1-alpine
    env:
    - name: k8s
      valueFrom:
        #声明引用secret资源
        secretKeyRef: 
          name: secret-01
          #声明使用secret资源中的那一个key
          key: k8s

---

#vomlume方式引用
apiVersion: v1
kind: Pod
metadata:
  name: pod-secret-02
spec: 
  #声明存储卷
  volumes:
  - name: vol-secret
    #声明存储卷的类型是secret
    secret:
      #指定secret资源的名称(使用哪个secret资源?)
      secretName: secret-01
  containers:
  - name: c2
    image: nginx:1.24.0-alpine
    volumeMounts:
    - name: vol-secret
      #挂载到容器的哪个位置路径?
      mountPath: /secret/

· 创建pod资源

[root@k8s231 secrets]# kubectl apply -f pod.yaml

5,进入容器查看是否引用成功

· env应用的pod容器

[root@k8s231 secrets]# kubectl exec pod-secret-01 -it -- sh 
/ # env
k8s=xinjizhiwa

· volumes引用的pod容器

[root@k8s231 secrets]# kubectl exec pod-secret-02 -it -- sh 
/ # cat /secret/k8s 
xinjizhiwa

三、pod资源清单指定key引用secret

1,编辑pod资源清单

[root@k8s231 secrets]# cat pod.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: pod-secret-02
spec: 
  #声明存储卷
  volumes:
  - name: vol-secret
    #声明存储卷的类型是secret
    secret:
      #1,指定secret资源的名称(使用哪个secret资源?)
      secretName: secret-01
      #2,指定secret资源中要引用的key
      items: 
      - key: k8s
        path: xjzw.log
  containers:
  - name: c2
    image: nginx:1.24.0-alpine
    volumeMounts:
    - name: vol-secret
      #挂载到容器的哪个位置路径?
      mountPath: /secret/xjzw.log
      #只挂在文件,不清空容器原有文件夹
      subPath: xjzw.log

2,创建pod

[root@k8s231 secrets]# kubectl apply -f pod.yaml

3,进入pod查看

[root@k8s231 secrets]# kubectl exec pod-secret-02 -it -- sh 
/ # ls /secret/
xjzw.log
/ # cat /secret/xjzw.log 
xinjizhiwa

四、secret类型之-私有镜像仓库使用

        创建Docker harbor的secret信息:

        因为,k8s拉取镜像与Docker拉取镜像是不同的方式,所以k8s需要创建一个属于自己的来气镜像的方式;

07-k8s中secret资源02-玩转secret,k8s系列,kubernetes,容器,云原生

1>docker-registry:创建一个给Docker registry容器镜像仓库使用的secret
2>generic: 从本地file, directory或者literal value创建一个 secret(这是大多数情况使用的)

                     也就是资源清单中的type:Opaque是一个意思;
3>tls: 创建一个TLS secret

1,harbor创建私有仓库

harbor创建私有仓库

07-k8s中secret资源02-玩转secret,k8s系列,kubernetes,容器,云原生

2,推送镜像到私有仓库

[root@k8s233 ~]# docker push harbor.xinjizhiwa.com/xinjizhiwa01/nginx:1.20.1-alpine

07-k8s中secret资源02-玩转secret,k8s系列,kubernetes,容器,云原生

3,创建拉取镜像的secret资源

· 响应式创建secret资源

docker 拉取镜像的secret账号密码资源

[root@k8s231 secrets]# kubectl create secret docker-registry xinjizhiwa-harbor --docker-username=admin --docker-password=1 --docker-email=123@qq.com --docker-server=harbor.xinjizhiwa.com

07-k8s中secret资源02-玩转secret,k8s系列,kubernetes,容器,云原生

4,创建pod引用拉取镜像的secret资源

[root@k8s231 secrets]# cat pod.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: pod-secret-02
spec:
  #指定镜像拉取的secret资源(secret的拉取镜像类型);
  imagePullSecrets:
  - name: xinjizhiwa-harbor 
  containers:
  - name: c3
    image: harbor.xinjizhiwa.com/xinjizhiwa01/nginx:1.20.1-alpine

07-k8s中secret资源02-玩转secret,k8s系列,kubernetes,容器,云原生

五、拓展,如何声明式创建docker registry类型的secret资源

1,【-o yaml】模仿系统声明式的写法

就是将已经创建好的docker registry资源方向使用yaml格式查看;

[root@k8s231 secrets]# kubectl get secrets xinjizhiwa-harbor -o yaml 
apiVersion: v1
data:
  .dockerconfigjson: eyJhdXRocyI6eyJoYXJib3IueGluaml6aGl3YS5jb20iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiMSIsImVtYWlsIjoiMTIzQHFxLmNvbSIsImF1dGgiOiJZV1J0YVc0Nk1RPT0ifX19
kind: Secret
metadata:
  creationTimestamp: "2024-02-14T05:08:30Z"
  name: xinjizhiwa-harbor
  namespace: default
  resourceVersion: "597638"
  uid: 33a3d025-047f-4d22-be5e-b92ed97b3310
type: kubernetes.io/dockerconfigjson

2,base64反向编译查看内容

[root@k8s231 ~]# echo eyJhdXRocyI6eyJoYXJib3IueGluaml6aGl3YS5jb20iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiMSIsImVtYWlsIjoiMTIzQHFxLmNvbSIsImF1dGgiOiJZV1J0YVc0Nk1RPT0ifX19 | base64 -d
{"auths":{"harbor.xinjizhiwa.com":{"username":"admin","password":"1","email":"123@qq.com","auth":"YWRtaW46MQ=="}}}

[root@k8s231 ~]# echo YWRtaW46MQ== | base64 -d
admin:1

也就是说,dacker registy使用了两次base64的编码;

3,根据上述信息,自己编辑secret声明式资源清单

[root@k8s231 ~]# vim docker.yaml

apiVersion: v1
kind: Secret
metadata:
  name: xinjizhiwa-harbor02
type: kubernetes.io/dockerconfigjson
data:
  .dockerconfigjson: eyJhdXRocyI6eyJoYXJib3IueGluaml6aGl3YS5jb20iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiMSIsImVtYWlsIjoiMTIzQHFxLmNvbSIsImF1dGgiOiJZV1J0YVc0Nk1RPT0ifX19
 

了解到:私有仓库的镜像拉取secret资源的使用即可;

#######################################################################3

编译过程:二次base64编译方向过程

[root@k8s233 ~]# echo -n eyJhdXRocyI6eyJoYXJib3IueGluaml6aGl3YS5jb20iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiMSIsImVtYWlsIjoiMTIzQHFxLmNvbSIsImF1dGgiOiJZV1J0YVc0Nk1RPT0ifX19 |base64 -d
{"auths":{"harbor.xinjizhiwa.com":{"username":"admin","password":"1","email":"123@qq.com","auth":"YWRtaW46MQ=="}}}

[root@k8s233 ~]# echo -n YWRtaW46MQ== | base64 -d
admin:1

[root@k8s233 ~]# echo -n '{"auths":{"harbor.xinjizhiwa.com":{"username":"admin","password":"1","email":"123@qq.com","auth":"YWRtaW46MQ=="}}}' | base64
eyJhdXRocyI6eyJoYXJib3IueGluaml6aGl3YS5jb20iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBh
c3N3b3JkIjoiMSIsImVtYWlsIjoiMTIzQHFxLmNvbSIsImF1dGgiOiJZV1J0YVc0Nk1RPT0ifX19文章来源地址https://www.toymoban.com/news/detail-830742.html

到了这里,关于07-k8s中secret资源02-玩转secret的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8S:配置资源管理 Secret和configMap

    (1)Secret 是用来保存密码、token、密钥等敏感数据的 k8s 资源,这类数据虽然也可以存放在 Pod 或者镜像中,但是放在 secret 中是为了更方便的控制如何使用数据,并减少暴露的风险 (2)类似挂载的方式,使用的时候调用即可 ①kubernetes.io/service-account-token 由Kubernetes自动创建

    2024年02月03日
    浏览(59)
  • 【Kubernetes】第二十二篇 - k8s 部署 MySQL 服务(secret、deployment、service)

    上一篇,介绍基于 k8s 项目部署流程设计; 本篇,介绍 MySQL 服务的部署; 部署 MySQL 可以为指定 node 添加污点,专门用于 mysql 部署(当前只有一个节点,不考虑); 为了保证mysql容器重启时数据不会丢失:创建 mysql 数据目录,用于存储 mysql 数据,实现 MySQL 数据的持久化;

    2024年02月03日
    浏览(60)
  • K8S初级入门系列之四-Namespace/ConfigMap/Secret

         本章节我们继续学习Namespace、ConfigMap、Secret基础概念,了解他们基本用法和操作。NameSpace为命名空间,在同一集群中试下资源隔离。ConfigMap通过key-value的方式实现明文配置数据的保存,Secret与ConfigMap类似,不过是采用密文方式保存。      K8S集群可以通过Namespace创建多

    2024年02月15日
    浏览(51)
  • yum部署kubernetes(k8s)集群、k8s常用资源管理

    目录 一、环境搭建 1、准备环境 1)计算机说明,建议系统版本7.4或者7.6 2)修改所有主机的计算机名设置host文件  2、安装master节点 1)安装etcd配置etcd 2)安装k8s-master节点 3)配置apiserver 4)配置controller和scheduler 5)启动k8s服务 3、安装k8s-master上的node 1)安装node 2)配置kube

    2024年02月13日
    浏览(64)
  • kubernetes/k8s配置资源管理

    配置资源管理 Secret Configmap*.1.2加入新特征 1.18 Secret:保存密码,token,敏感的k8s资源 这类数据可以存放在镜像当中,但是防止secret可以更方便的控制,减少暴漏风险。 保存加密的信息 Secret的类型: docker-registry:存储docker仓库认证信息,以及docker组件的认证信息(私有的) generic:是

    2024年01月17日
    浏览(53)
  • (kubernetes)k8s常用资源管理

    目录 k8s常用资源管理 1、创建一个pod 1)创建yuml文件 2)创建容器 3)查看所有pod创建运行状态 4)查看指定pod资源 5)查看pod运行的详细信息 6)验证运行的pod 2、pod管理 1)删除pod 2)查看删除pod无法找到 3)创建pod 4)发现最先创建的pod运行在k8s-master节点上,下载镜像速度太

    2024年02月13日
    浏览(50)
  • Kubernets(K8S)启动和运行 01-02 Kubernetes的速度非常快

    Velocity is the key component in nearly all software development today. The software industry has evolved from shipping products as boxed CDs or DVDs to software that is delivered over the network via web-based services that are updated hourly. This changing landscape means that the difference between you and your competitors is often the speed with which yo

    2024年02月03日
    浏览(37)
  • K8s系列---【资源不足:0/3 nodes are available: 1 Insufficient cpu, 2 node(s) had taint {node-role.kubernetes...

    我用KubeSphere创建了一个工作负载,在增加副本数量时,报了下面的错。 Insufficient:不足的。 很显然,资源不足导致的。遇到这种情况,两种思路:一是增加cpu和内存,二是调低工作负载占用的内存和cpu的配置。这里我是因为只是学习用,所以选了第二种。

    2024年02月11日
    浏览(57)
  • 云原生Kubernetes:K8S配置资源管理

    目录 一、理论 1.Secret 2.Secret创建 3.Secret使用 4.Configmap 5.Configmap创建 6.Configmap使用 二、实验 1.Secret创建 2.Secret使用 3.Configmap创建 4.Configmap使用 三、问题 1.变量引用生成资源报错 2.查看pod日志失败 3.创建configmap报错 4.YAML创建configmap报错 5. 生成资源报错 6.文件挂载pod报错Error 四

    2024年02月07日
    浏览(68)
  • Kubernetes(k8s)核心资源解析:Pod详解

    💖The Begin💖点点关注,收藏不迷路💖 Pod是Kubernetes中最小的调度单元,它可以包含一个或多个容器。Pod中的所有容器共享网络和存储卷,它们一起运行在同一个节点上。Pod提供了一种抽象层,使得容器可以作为一个逻辑单元来管理。 Pod中的容器共享IP地址、端口空间和存储

    2024年04月11日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包