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. Catalyst3560密码破解

    1.关机:2.将设备MODE键按住,然后开机,进入switch:switch: flash_initInitializing Flash...flashfs[0]: 7 files, 2 direct ...

  2. idea使用小技巧

    1.按住alt,鼠标往下拉一条直线,可以选中一列或多列,或者不选中任何文字,可以让光标定位到这几行的相同的列的位置,然后输入文本,发现在被选中的所有行同时输入了这些文本(类似notepad++): 2 ...

  3. 设计模式课程 设计模式精讲 4-2 简单工厂coding

    1 代码演练 1.1 未使用简单工厂模式代码 1.2 使用简单工厂模式 1.3 使用反射机制简单工行模式 1 代码演练 1.1 未使用简单工厂模式代码 测试类: package com.geely.d ...

  4. 2019年mybatils面试高频题(java)

    前前言 2019即将过去,伴随我们即将迎来的又是新的一年,过完春节,马上又要迎来新的金三银四面试季. 那么,作为程序猿的你,是否真的有所准备的呢,亦或是安于本职工作,继续做好手头上的事情. 当然,不论 ...

  5. 标签UILabel的讲解

    首先,我先自定义几个名词,方便接下来的讲解工作.如下图所示: 接下来,通过五个方面来讲解我们能对UILabel做出哪些改变或者称之为设置: 1.文字 1.1普通文字:内容text.字体大小font.字 ...

  6. Vacuum Pump Manufacturer - Vacuum Pump Range Use: Considerations

    The vacuum pump is a versatile bottle that holds your lotion, shampoo and conditioner. Keep away fro ...

  7. PAT A1103 Integer Factorization

    线性dfs,注意每次深搜完状态的维护~ #include<bits/stdc++.h> using namespace std; ; vector<int> v,tmp,pat ...

  8. lua叠代器

    注意:叠待值遇到nil就退出 叠代器,是符合for遍历框架,需要满足条件 1-叠代函数,常量,控制变量 2-叠代函数可以接受二个参数,当然也可以忽略处理(利用闭包封装参数作为控制变量和状态变量) 无状 ...

  9. jsp 防止表单多次提交

    1:首先java 后台代码生成一个token,然后保存到jsp 页面的一个隐藏控件并且保存到set session中 */ @RequestMapping("/yuDengJi") ...

  10. JS如何阻止事件冒泡

      <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx. ...