k8s——机密数据管理
1、secret
2、configMap
kubectl explain secret    #查看帮助手册
然后将你要加密的变量值做些许处理:
echo 123 | base64      #返回MTIzCg==作为加密后的值
通过编写secret的yaml文件实现机密数据管理
secret的配置
vim secret.yaml
apiVersion: v1
kind: Secret
metadata:
 name: mysec
data:
 name: ken
 mypass: 123
 
kubectl apply secret.yaml  #如果你的data下面是明文,那么就会报错。
解决方式就是加密:
apiVersion: v1
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
secret的使用
1、volumes
2、env
volume的形式使用secret:
vim pod-sec.yaml    #这里pod是直接创建的没有创建deploy,不受deploy的管控,pod可以不受deploy的管控。
apiVersion: v1
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
kubectl exec -it mypod sh  #进入pod中查看/ken/目录中的内容,发现是两个连接文件
cat mypass #返回你设置的mypass值(非加密)
cat name    #返回你设置的name值(非加密)
如果你想要修改密码的值,只需要再secret的yaml文件中修改相应的加密信息即可,而且volume形式支持动态更新。
也就是说你更改了secret的值后执行kubectl apply -f secret.yaml,在pod中也能够查看到新的值。相应的,如果
使用了kubectl edit secret mysec 那么也能看到已经修改后的加密值。
env的形式使用secret:
kubectl explain po.spec.containers.env  
vim pod-env.yaml
apiVersion: v1
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,就能够看到你设置的环境变量和其对应的值了(明文)。
但是需要注意的是环境变量是不支持动态更新的,环境变量一旦建立就无法动态更新。
configMap管理配置
secret可以为pod提供密码、token、密钥等敏感数据,对于一些非敏感数据,如应用的配置信息,则可以使用configMap
configMap的使用和创建方式和secret非常类似,主要不同的是数据以明文的形式存放。
configMap的使用
1、volumes
2、env
编写yaml文件
vim cmap.yaml
apiVerison: v1
kind: ConfigMap
metadata:
 name:mycm
data:
 name: ken
 mima: ken123
kubectl apply -f cmap.yaml
kubectl get cm
kubectl describe cm mycm  #可以查看到以明文形式存放的数据
使用env示例:
vim cm-env.yaml
apiVersion: v1
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 get po
kubectl exec mypod2 printenv   #打印出相应的env变量可以看到。
k8s监控
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——机密数据管理的更多相关文章

  1. kubernetes之数据管理

    volume emptyDir [machangwei@mcwk8s-master ~]$ kubectl apply -f mcwVolume1.yml #部署emptydir pod/produc ...

  2. istio 配置解读

    Istio在服务网络中统一提供了许多关键功能: 流量管理:控制服务之间的流量和API调用的流向,使得调用更可靠,并使网络在恶劣情况下更加健壮. 可观察性:了解服务之间的依赖关系,以及它们之间流量的本质 ...

  3. 直击KubeCon北美峰会:开发者们不得不关注的10大项目

    今天晚上8:30,第三期在线培训<如何通过Istio进行金丝雀发布>将准时开播,内容包括Istio原理.金丝雀发布.在Rancher中启用Istio,报名及观看链接:https://www ...

  4. Kubernetes Secret(机密存储)

    Kubernetes Secret(机密存储) 官方文档:https://kubernetes.io/docs/concepts/configuration/secret/ 加密数据并存放Etcd中, ...

  5. Kubernetes——滚动更新和数据管理

    k8s——滚动更新滚动更新就是一次只更新一小部分副本,更新成功之后再更新更多的副本,最终完成所有副本的更新.滚动更新最大的好处是零停机,整个更新的过程中始终有副本运行,从而保证了业务的连续性.kube ...

  6. Kubernetes -- secret (敏感数据管理)

    https://www.kubernetes.org.cn/secret secret 主要解决密码.token.密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod Spec中 Se ...

  7. Kubernetes --(k8s)volume 数据管理

    容器的磁盘的生命周期是短暂的,这就带来了许多问题:第一:当一个容器损坏了,kubelet会重启这个容器,但是数据会随着container的死亡而丢失:第二:当很多容器在同一Pod中运行的时候,经常需要 ...

  8. 使用kubeadm搭建Kubernetes(1.10.2)集群(国内环境)

    目录 目标 准备 主机 软件 步骤 (1/4)安装 kubeadm, kubelet and kubectl (2/4)初始化master节点 (3/4) 安装网络插件 (4/4)加入其他节点 (可选 ...

  9. Kubernetes & Docker

    Docker核心技术原理及其应用 Docker 概览 Docker版本与安装介绍 Docker 核心技术之镜像 Docker 核心技术之容器 Docker 核心技术之容器与镜像 Docker 核心技术 ...

随机推荐

  1. 4_4 信息解码(UVa213)<二进制:输入技巧与调试技巧>

    消息编码方案要求在两个部分中发送一个被编码的消息.第一部分:称为头,包含消息的字符.第二部分包含一个模式 表示信息.你必须写一个程序,可以解码这个消息. 你的程序的编码方案的核心是一个序列的“0和1” ...

  2. Passive Client Feature

    Q. How is the passive client feature used on Wireless LAN Controllers? A. Passive clients are wirele ...

  3. Cisco Spectrum Expert(Wave2 AP)

    在一些版本中,我们可能会发现,AP16,26或AP17,27,37等支持Spectrum Expert Connect (即SE-Connect),该模式可以让AP将频谱分析所述数据发送到对应的分析仪 ...

  4. EAP认证

    EAP信息交换: 上图中展示的是OTP(一次性密码)实现EAP交换过程,具体的EAP交换过程如下: 步骤1:请求方向认证方发送EAPOL-Start消息,通知对方已经做到了认证准备(注意:若会话由认证 ...

  5. Update(Stage4):scala补充知识

    1.惰性加载: 在企业的大数据开发中,有时候会编写非常复杂的SQL语句,这些SQL语句可能有几百行甚至上千行.这些SQL语句,如果直接加载到JVM中,会有很大的内存开销.如何解决? 当有一些变量保存的 ...

  6. The property does not exist in XML namespace

    自定义依赖属性,绑定在xaml文件中,无问题. 但是编译失败,报 The property does not exist in XML namespace 错误. 发现如果依赖属性定义在本程序集中,在 ...

  7. javascript对象创建及继承

    //****************************************************************************** //创建类的多种方式 //------ ...

  8. Hibernate框架报错:org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.mikey.hibernate.domain.Person.pid

    报错信息 org nate.PropertyAccessException:IllegalArgumentException在调用com.mikey.Hibernate.domain.Person.p ...

  9. java后端开发echarts

    参考: https://blog.csdn.net/mxdmojingqing/article/details/77340245 https://github.com/abel533/ECharts

  10. github设置分支push权限

    1. 管理员身份登录GitHub,找到项目2. Settings-->Branches-->Protected branches--->Choose a branch... ,选择需 ...