栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

K8S对象-secret及应用(k8s 使用harbor镜像仓库,http,https 自签CA证书)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

K8S对象-secret及应用(k8s 使用harbor镜像仓库,http,https 自签CA证书)

文章目录
  • 1. 概述
    • 1.1 作用
    • 1.2 三种类型
  • 2. docker registry
    • 2.1 http库的使用
    • 2.2 https仓库的使用
      • 2.2.1 获取config.json的编码
      • 2.2.2 创建secret
      • 2.2.3 使用
  • 3. generic
    • 3.1 语法
    • 3.2 示例
  • 4. tls
    • 4.1 语法
    • 4.2 示例

1. 概述 1.1 作用
  • 用来保存敏感信息,例如密码、OAuth 令牌和 ssh key等等

而ConfigMap只能使用明文保存,因此不适合保存这些。

1.2 三种类型

看帮助文件可知:

  • docker registry
    作用:为用户提供docker仓库帐号密码
  • generic
    创建基于key value的secret。
  • tls
    从给定的(public/private)公钥/私钥对创建TLS secret 。
2. docker registry

k8s连接镜像仓库,如果是http或者https没有证书,则不能直接下载,需要使用如下方法:

2.1 http库的使用
  • 创建secrete
# kubectl create secret docker-registry  abc-habor-xf --namespace=xinfa --docker-server=10.252.97.209:80 --docker-username=admin --docker-password=Habor209 --docker-email=40010355@qq.com
  • 使用secret
    添加imagePullSecrets一段。
    spec:
      containers:
      - name: web-iot
        image: 10.252.97.57/iot/web-k8sdev:1.2.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80
          protocol: TCP
          name: web-port
      imagePullSecrets:
      - name: my-nexus
2.2 https仓库的使用 2.2.1 获取config.json的编码
  • 登录https的镜像仓库,生成对应的config.json文件

  • 查看如图:
    添加 /root/.docker/config.json文件如下:

{
	"auths": {
		"10.252.97.57": {
			"auth": "YWRtaW46MVcyM2x5YzQ1ag=="
		}
	},
	"HttpHeaders": {
		"User-Agent": "Docker-Client/18.06.1-ce (linux)"
	}
  • 将json文件生成base64编码
#cat /root/.docker/config.json|base64 -w 0
ewoJImF1dGhzIjogewoJCSIxMC4yNTIuOTcuNTciOiB7CgkJCSJhdXRoIjogIllXUnRhVzQ2TVZjeU0yeDVZelExYWc9PSIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTguMDYuMS1jZSAobGludXgpIgoJfQp9
2.2.2 创建secret
  • yaml文件
    创建yml文件如下:
apiVersion: v1
kind: Secret
metadata:
  name: my-harbor
  namespace: iot-01
type: kubernetes.io/dockerconfigjson
data:
    .dockerconfigjson: ewoJImF1dGhzIjogewoJCSIxMC4yNTIuOTcuNTciOiB7CgkJCSJhdXRoIjogIllXUnRhVzQ2TVZjeU0yeDVZelExYWc9PSIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTguMDYuMS1jZSAobGludXgpIgoJfQp9
  • 创建secrete
# kubeclt create -f secrete.yaml
2.2.3 使用

同 2.1

3. generic 3.1 语法

generic NAME [--type=string] [--from-file=[key=]source] [--from-literal=key1=value1] [--dry-run]

3.2 示例
  • 本地文件创建
    创建一个名为my-secret的secret,指定文件内容作为某key的值。
# kubectl create secret generic my-secret --from-file=ssh-privatekey=~/.ssh/id_rsa --from-file=ssh-publickey=~/.ssh/id_rsa.pub
  • 指定键值对创建
    用key1 = supersecret和key2 = topsecret创建一个名为my-secret的secret
kubectl create secret generic my-secret --from-literal=key1=supersecret --from-literal=key2=topsecret
  • 指定evn文件创建
    从env文件创建名为my-secret的secret
# kubectl create secret generic my-secret --from-env-file=path/to/bar.env
4. tls 4.1 语法

tls NAME --cert=path/to/cert/file --key=path/to/key/file [--dry-run]

4.2 示例

使用指定的key创建名为tls-secret的TLS secret

kubectl create secret tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/964462.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号