文档章节

k8s secret

o
 osc_ogi0qclx
发布于 2019/08/24 15:10
字数 1036
阅读 12
收藏 0

精选30+云产品,助力企业轻松上云!>>>

secret
?
第一步:加密用户名及密码
[root@ken1 ~]# echo "123" | base64
MTIzCg==
[root@ken1 ~]# echo ken | base64
a2VuCg==
?
第二步:编写secret的yaml文件
apiVersion: v1
kind: Secret
metadata:
name: mysecret
data:
name: a2VuCg==
mima: MTIzCg==
?
第三步:执行yml文件
[root@ken1 ~]# kubectl apply -f secret.yml
?
第四步:查看secret
[root@ken1 ~]# kubectl get secret
NAME TYPE DATA AGE
default-token-wc4hc kubernetes.io/service-account-token 3 7d15h
mysecret Opaque 2 19h
?
第五步:查看secret信息
[root@ken1 ~]# kubectl describe secret mysecret
Name: mysecret
Namespace: default
Labels: <none>
Annotations:
Type: Opaque
Data
====
mima: 5 bytes
name: 4 bytes
?
第六步:编辑secret获取加密数据
[root@ken1 ~]# kubectl edit secret mysecret
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
data:
mima: MTIzNAo=
name: a2VuCg==
kind: Secret
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","data":{"mima":"MTIzNAo=","name":"a2VuCg=="},"kind":"Secret","metadata":{"annotations":{},"name":"mysecret","namespace":"default"}}
creationTimestamp: "2019-08-22T06:26:46Z"
name: mysecret
namespace: default
resourceVersion: "111906"
selfLink: /api/v1/namespaces/default/secrets/mysecret
uid: c3d1aa93-bc53-4a97-a9cf-e1a9e1fcdadf
?
第七步:解码
[root@ken1 ~]# echo "a2VuCg==" | base64 --decode
ken
[root@ken1 ~]# echo "MTIzNAo=" | base64 --decode
1234
?
使用secret
有两种方式
1. 以volume的形式挂载到pod
2. 以环境变量的方式使用
?
?
以volume的形式挂载到pod
?
第一步:创建pod并编写yml文件
apiVersion: v1
kind: Pod
metadata:
name: pod-secret
spec:
containers:
- name: busybox
image: busybox
imagePullPolicy: IfNotPresent
args:
- /bin/sh
- -c
- touch test; sleep 60000
volumeMounts:
- name: ken
mountPath: /ken
volumes:
- name: ken
secret:
secretName: mysecret
?
第二步:执行yaml文件
[root@ken1 ~]# kubectl apply -f pod-secret.yml
?
第三步:进入pod查看secret
?
[root@ken1 ~]# kubectl exec -it pod-secret1 /bin/sh
/ # ls
bin dev etc home ken proc root sys test tmp usr var
/ # cd kne
/bin/sh: cd: can't cd to kne: No such file or directory
/ # cd ken
/ken # ls
mima name
/ken # cat mima
1234
/ken # cat name
ken
?
第四步:动态更新密码
一、生成加密密码
[root@ken1 ~]# echo 12345 | base64
MTIzNDUK
?
二、修改secret文件
apiVersion: v1
kind: Secret
metadata:
name: mysecret
data:
name: a2VuCg==
mima: MTIzNDUK
?
三、执行yml文件
[root@ken1 ~]# kubectl apply -f secret.yml
?
第五步:查看密码
[root@ken1 ~]# kubectl exec -it pod-secret1 /bin/sh
/ # ls
bin dev etc home ken proc root sys test tmp usr var
/ # cd ken
/ken # ls
mima name
/ken # cat mima
12345
?
注意:secret只有在以volume形式使用的时候才支持动态更新,环境变量的方式不知道动态更新密码!
?
二、以环境变量的方式使用secret
?
第一步:编写yaml文件
apiVersion: v1
kind: Pod
metadata:
name: pod-secret2
spec:
containers:
- name: busybox
image: busybox
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysecret
key: mima
args:
- /bin/sh
- -c
- touch test; sleep 6000
?
第二步:执行yml文件
[root@ken1 ~]# kubectl apply -f pod-secret2.yml
?
第三步:查看pod
[root@ken1 ~]# kubectl get po
NAME READY STATUS RESTARTS AGE
nginx-hostp 1/1 Running 1 23h
pod-cm 1/1 Running 1 19h
pod-secret1 1/1 Running 0 9m38s
pod-secret2 1/1 Running 0 22s
?
第四步:进入pod
[root@ken1 ~]# kubectl exec -it pod-secret2 /bin/sh
/ # ls
bin dev etc home proc root sys test tmp usr var
/ # printenv
KUBERNETES_SERVICE_PORT=443
KUBERNETES_PORT=tcp://10.96.0.1:443
HOSTNAME=pod-secret2
SHLVL=1
HOME=/root
MYSQL_ROOT_PASSWORD=12345
TERM=xterm
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_SERVICE_HOST=10.96.0.1
PWD=/
?
注意:这种方式不支持密码动态更新
?
?
?
configMap
?
创建configMap
?
第一步:编写yml文件
apiVersion: v1
kind: ConfigMap
metadata:
name: mycm
data:
name: ken
mima: ken123
?
第二步:执行yml文件
[root@ken1 ~]# kubectl apply -f cm.yml
?
第三步:查看cm
[root@ken1 ~]# kubectl get cm
NAME DATA AGE
mycm 2 19s
?
第四步:查看具体指
[root@ken1 ~]# kubectl describe cm mycm
Name: mycm
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","data":{"mima":"ken123","name":"ken"},"kind":"ConfigMap","metadata":{"annotations":{},"name":"mycm","namespace":"defaul...
Data
====
mima:
----
ken123
name:
----
ken
?
?
?
有两种方式使用cm
1.以volume形式
2.以环境变量的形式
?
演示以环境变量的方式使用cm
?
第一步:编写yml文件
apiVersion: v1
kind: Pod
metadata:
name: pod-cm
spec:
containers:
- name: busybox
image: busybox
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
configMapKeyRef:
name: mycm
key: mima
args:
- /bin/sh
- -c
- touch test; sleep 6000
?
第二步:执行该yml文件
[root@ken1 ~]# kubectl apply -f pod-cm.yml
?
第三步:查看容器
[root@ken1 ~]# kubectl get po
NAME READY STATUS RESTARTS AGE
nginx-hostp 1/1 Running 1 24h
pod-cm 1/1 Running 1 19h
pod-cm1 1/1 Running 0 25s
pod-secret1 1/1 Running 0 44m
pod-secret2 1/1 Running 0 34m
?
第四步:进入容器
[root@ken1 ~]# kubectl exec -it pod-cm1 sh
/ # ls
bin dev etc home proc root sys test tmp usr var
/ # printenv
KUBERNETES_SERVICE_PORT=443
KUBERNETES_PORT=tcp://10.96.0.1:443
HOSTNAME=pod-cm1
SHLVL=1
HOME=/root
MYSQL_ROOT_PASSWORD=ken123
TERM=xterm
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_SERVICE_HOST=10.96.0.1
Continue Reading

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Kerbernetes使用Secret资源配置铭感信息

             Kerbernetes使用Secret资源配置铭感信息                                      作者:尹正杰 版权声明:原创作品,谢绝转...

尹正杰
02/11
0
0
Harbor与K8s的集成实践

Harbor与K8s的集成实践 Harbor提供了基于角色的访问控制机制,并通过项目来对镜像进行组织和访问权限的控制。kubernetes中通过namespace来对资源进行隔离,在企业级应用场景中,通过将两者进...

yzy121403725
2018/04/27
0
0
ASP.NET Core on K8S深入学习(9)Secret & Configmap

本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。 一、Secret 1.1 关于Secret   在应用启动过程中需要一些敏感信息,比如数据库用户名、密...

osc_snzhxf3u
04/16
2
0
k8s之源之secret和serviceaccount

发布一个k8s部署视频:https://edu.csdn.net/course/detail/26967 课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k...

hxpjava1
03/31
0
0
使用Rancher在Kubernetes上部署EMQ X集群

本文描述如何通过Rancher2.0部署kubernetes集群,并将EMQ X部署到kubernetes集群上 实验环境: 公有云环境:AWS EC2 操作系统:ubuntu 16.04 Docker version:18.09.0 通过Rancher部署kuber...

osc_etp9xzp8
2019/08/23
2
0

没有更多内容

加载失败,请刷新页面

加载更多

浅谈对python pandas中 inplace 参数的理解

这篇文章主要介绍了对python pandas中 inplace 参数的理解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 pandas 中 inplace 参数在很多函数中都会有,它的作用是:是否...

Linux就该这么学
17分钟前
13
0
C++ 从基本数据类型说起

前言 int 在32位和64位操作系统,都是四个字节长度。为了能编写一个在32位和64位操作系统都能稳定运行的程序,建议采用std::int32_t 或者std::int64_t指定数据类型。*与long随操作系统子长变...

osc_sxdofc9c
17分钟前
9
0
游戏音乐的作用以及起源

游戏音乐是由特殊的音乐、语言符号、美学符号组成,在电子游戏的发展下,游戏音乐越来越成熟,游戏音乐与美术相融合,能够带给玩家视觉与声音的感官冲击,形成游戏音乐所具有的独特的审美效果...

奇亿音乐
18分钟前
10
0
2020,最新Model的设计-APP重构之路

很多的app使用MVC设计模式来将“用户交互”与“数据和逻辑”分开,而model其中一个重要作用就是持久化。下文中设计的Model可能不是一个完美的,扩展性强的model范例,但在我需要重构的app中,...

osc_mfzkzkxi
18分钟前
4
0
面对职业瓶颈,iOS 开发人员应该如何突破?

我们经常看到 iOS 开发人员(各种能力水平都有)的一些问题,咨询有关专业和财务发展方面的建议。 这些问题有一个共同点:前面都会说“我现在遇到了职业困境”,然后会问一些诸如“我是否应该...

osc_gfpedeca
19分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部