Kubernetes——机密数据管理
1、secret
2、configMap
然后将你要加密的变量值做些许处理:
echo 123 | base64 #返回MTIzCg==作为加密后的值
通过编写secret的yaml文件实现机密数据管理
kind: Secret
metadata:
name: mysec
data:
name: ken
mypass: 123
kubectl apply secret.yaml #如果你的data下面是明文,那么就会报错。
kind: Secret
metadata:
name: mysec
data:
name: a2VuCg==
pass: MTIzCg==
kubectl apply -f secret.yaml #secret创建成功
kubectl get secret #能够查看到自己创建的mysec
kubectl describe secret mysec #能够查看的只是加密后的信息的字节长度
kubectl edit secret mysec
然后复制data内容:
name: a2VuCg==
mypass: MTIzCg==
解码即可得到相应的信息:
[jerry@centos ~]$ echo a2VuCg== | base64 --decode
ken
[jerry@centos ~]$ echo MTIzCg== | base64 --decode
123
1、volumes
2、env
volume的形式使用secret:
vim pod-sec.yaml #这里pod是直接创建的没有创建deploy,不受deploy的管控,pod可以不受deploy的管控。
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: busybox
image: busybox
imagePullPolicy: IfNotPresent
args:
- /bin/sh
- -c
- echo 1;sleep 500
volumeMounts:
- name: pod
mountPath: /ken/
volumes:
- name: pod
secret:
secretName: mysec
使用注意:要先创建secret,否则pod起不来
kubectl apply -f secret.yaml
kubectl apply -f pod-sec.yaml
cat name #返回你设置的name值(非加密)
也就是说你更改了secret的值后执行kubectl apply -f secret.yaml,在pod中也能够查看到新的值。相应的,如果
使用了kubectl edit secret mysec 那么也能看到已经修改后的加密值。
kubectl explain po.spec.containers.env
vim pod-env.yaml
kind: Pod
metadata:
name: mypod1
sepc:
containers:
- name: busybox
image: busybox
imagePullPolicy: IfNotPresent
args:
- /bin/sh
- -c
- echo 1;sleep 500
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysec
key: "mypass"
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: mysec
key: "name"
kubectl apply -f pod-env.yaml
kubectl exec -it mypod1 sh
执行printenv,就能够看到你设置的环境变量和其对应的值了(明文)。
但是需要注意的是环境变量是不支持动态更新的,环境变量一旦建立就无法动态更新。
secret可以为pod提供密码、token、密钥等敏感数据,对于一些非敏感数据,如应用的配置信息,则可以使用configMap
configMap的使用和创建方式和secret非常类似,主要不同的是数据以明文的形式存放。
1、volumes
2、env
vim cmap.yaml
apiVerison: v1
kind: ConfigMap
metadata:
name:mycm
data:
name: ken
mima: ken123
kubectl apply -f cmap.yaml
kubectl get cm
使用env示例:
vim cm-env.yaml
kind: Pod
metadata:
name: mypod2
sepc:
containers:
- name: busybox
image: busybox
imagePullPolicy: IfNotPresent
args:
- /bin/sh
- -c
- echo 1;sleep 500
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
configMapKeyRef:
name: mycm
key: "mima"
- name: MYSQL_USER
valueFrom:
configMapKeyRef:
name: mycm
key: "name"
kubectl apply -f cm-env.yaml
kubectl exec mypod2 printenv #打印出相应的env变量可以看到。
weave scope——在docker的相关博文已经提到过这款可视化的监控软件,实际上也可以用于k8s
它提供了至上而下的集群基础设施和应用的完整视图,用户可以轻松对分布式的容器化应用进行实时的监控和问题诊断。
安装weave scope:
kubectl apply -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d '\n')&k8s-service-type=NodePort"
kubectl get ns #可以查看到一个名为weave的namespace
kubectl get ds -n weave #发现每个节点上都运行一个daemon,也就是weave scope 的agent
在每台node上执行docker ps 也可以查看。
kubectl get svc -n weave #可以看到从外网访问该pod的端口映射,因为在安装的时候使用了k8s-service-type=NodePort参数
kubectl get po -n weave #发现都是running状态即可
使用网络的时候要使用flannel网络
kubectl get po -n kube-system #可以查看到使用的网络类型
然后通过浏览器打开就能够打开相应的监控web视图。
Kubernetes——机密数据管理的更多相关文章
- kubernetes之数据管理
volume emptyDir [machangwei@mcwk8s-master ~]$ kubectl apply -f mcwVolume1.yml #部署emptydir pod/produc ...
- istio 配置解读
Istio在服务网络中统一提供了许多关键功能: 流量管理:控制服务之间的流量和API调用的流向,使得调用更可靠,并使网络在恶劣情况下更加健壮. 可观察性:了解服务之间的依赖关系,以及它们之间流量的本质 ...
- 直击KubeCon北美峰会:开发者们不得不关注的10大项目
今天晚上8:30,第三期在线培训<如何通过Istio进行金丝雀发布>将准时开播,内容包括Istio原理.金丝雀发布.在Rancher中启用Istio,报名及观看链接:https://www ...
- Kubernetes Secret(机密存储)
Kubernetes Secret(机密存储) 官方文档:https://kubernetes.io/docs/concepts/configuration/secret/ 加密数据并存放Etcd中, ...
- Kubernetes——滚动更新和数据管理
k8s——滚动更新滚动更新就是一次只更新一小部分副本,更新成功之后再更新更多的副本,最终完成所有副本的更新.滚动更新最大的好处是零停机,整个更新的过程中始终有副本运行,从而保证了业务的连续性.kube ...
- Kubernetes -- secret (敏感数据管理)
https://www.kubernetes.org.cn/secret secret 主要解决密码.token.密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod Spec中 Se ...
- Kubernetes --(k8s)volume 数据管理
容器的磁盘的生命周期是短暂的,这就带来了许多问题:第一:当一个容器损坏了,kubelet会重启这个容器,但是数据会随着container的死亡而丢失:第二:当很多容器在同一Pod中运行的时候,经常需要 ...
- 使用kubeadm搭建Kubernetes(1.10.2)集群(国内环境)
目录 目标 准备 主机 软件 步骤 (1/4)安装 kubeadm, kubelet and kubectl (2/4)初始化master节点 (3/4) 安装网络插件 (4/4)加入其他节点 (可选 ...
- Kubernetes & Docker
Docker核心技术原理及其应用 Docker 概览 Docker版本与安装介绍 Docker 核心技术之镜像 Docker 核心技术之容器 Docker 核心技术之容器与镜像 Docker 核心技术 ...
随机推荐
- buuctf——easyjava
虽然学过Javaweb的开发,但没好好学,所以对Javaweb了解不深 菜的真实 WEB-INF/web.xml泄露 贴一个别人的源码泄露总结ctf/web源码泄露及利用办法[总结中] WEB-INF ...
- docker部署-windows环境
docker部署-windows环境 1. docker windows 1.1. 安装 win7或者win8需要利用docker toolbox来安装,其是一个docker工具集,w ...
- 使用Vue时localhost:8080中localhost换成ip地址后无法显示页面的问题
解决办法是:在package.json中 然后重新启动服务器 npm run dev 就正常显示了.
- BGP前缀过滤(正则表达式)
BGP的正则表达式一般用在as-path中,常用的如下: .(点):表示匹配任意一个字符,包括空格. *:表示匹配零个或多个模式的出现.即前一个字符出现0次或多次. +:表示匹配一个或多个模式的出现. ...
- js一位大侠的笔记--转载
js基础 js笔记散记,只是为了方便自己以后可以回看用的: 1.所有用 “点” 的都能 “[]” 代替 odiv.style.color odiv['style'].color odiv['style ...
- DataTable和实体类之间的转换
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.R ...
- 多项式输出 (0)<P2009_1>
多项式输出 (poly.pas/c/cpp) [问题描述] 一元n次多项式可用如下的表达式表示: 其中,称为i次项,ai称为i次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输 ...
- SpringMVC笔记三
课程安排: 第一天:springmvc的基础知识 什么是springmvc? springmvc框架原理(掌握) 前端控制器.处理器映射器.处理器适配器.视图解析器 springmvc入门程序 目的: ...
- openstack搭建之旅(原创)
1.什么是openstack是一个集中管理虚拟机的平台,整合了各种虚拟化的技术.虚拟机的具体创建交给具体的虚拟化技术实现,而Openstack是整合这些虚拟化技术,提供一个统一管理的视图,对虚拟机进行 ...
- .net使用rabbitmq安装操作
自己在windows安装rabbitmq时,遇到了很多坑,最恶心的就是版本不匹配的问题,所以自己写了一篇总结,本文章安装的Erlang为8.2,rabbitmq为3.5.6 1 安装rabbitmq, ...