K8S对象-Secret及应用
目录
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: docker-registry
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
- 语法
generic NAME [--type=string] [--from-file=[key=]source] [--from-literal=key1=value1] [--dry-run]
- 示例
- 本地文件创建
创建一个名为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
- 语法
tls NAME --cert=path/to/cert/file --key=path/to/key/file [--dry-run]
- 示例
使用指定的key创建名为tls-secret的TLS secret
kubectl create secret tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key
合集:
《kubernetes》
, 第一章 原理和对象
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?