zoukankan      html  css  js  c++  java
  • K8S-资源配置清单补充1

    K8S环境变量中敏感信息会带来的安全隐患

    • 环境变量中有很多敏感的信息,比如账号密码,直接暴漏在yaml文件中存在安全性问题
    • 团队内部一般存在多个项目,这些项目直接存在配置相同环境变量的情况,因此可以统一维护管理
    • 对于开发、测试、生产环境,由于配置均不同,每套环境部署的时候都要修改yaml,带来额外的开销
      k8s提供两类资源,configMap和Secret,可以用来实现业务配置的统一管理, 允许将配置文件与镜像文件分离,以使容器化的应用程序具有可移植性 。

    方法1:资源配置清单创建

    configMap,通常用来管理应用的配置文件或者环境变量,myblog/two-pod/configmap.yaml
    
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: myblog
      namespace: luffy
    data:
      MYSQL_HOST: "192.168.136.11"
      MYSQL_PORT: "3306"
    

    方法2:命令行创建

    kubectl create configmap myblog --from-env-file=configmap.txt
    

    Secret,管理敏感类的信息,默认会base64编码存储,有三种类型

    • Service Account :用来访问Kubernetes API,由Kubernetes自动创建,并且会自动挂载到Pod的/run/secrets/kubernetes.io/serviceaccount目录中;创建ServiceAccount后,Pod中指定serviceAccount后,自动创建该ServiceAccount对应的secret;
    • Opaque : base64编码格式的Secret,用来存储密码、密钥等;
    • kubernetes.io/dockerconfigjson :用来存储私有docker registry的认证信息。
    apiVersion: v1
    kind: Secret
    metadata:
      name: myblog
      namespace: luffy
    type: Opaque
    data:
      MYSQL_USER: cm9vdA==		#注意加-n参数, echo -n root|base64
      MYSQL_PASSWD: MTIzNDU2
    

    也可以通过下面的方式:

    $ cat secret.txt
    MYSQL_USER=root
    MYSQL_PASSWD=123456
    $ kubectl -n luffy create secret generic myblog --from-env-file=secret.txt 
    

    命令行模式:
    创建harbor拉取

    kubectl create secret  docker-registry  registry-harbor --docker-server=harbor.dinghc.com --docker-username=admin --docker-password=123456 -n kube-system
    
    
    

    创建tls

    kubectl create secret tls traefik-cert --key /ssl/intra.sheca.com.key --cert /ssl/intra.sheca.com.cer -n uat
    

    在部署不同的环境时,pod的yaml无须再变化,只需要在每套环境中维护一套ConfigMap和Secret即可。但是注意configmap和secret不能跨namespace使用,且更新后,pod内的env不会自动更新,重建后方可更新。

    如何编写资源yaml

    1. 拿来主义,从机器中已有的资源中拿

      $ kubectl -n kube-system get po,deployment,ds
      
      
      
    2. 学会在官网查找, https://kubernetes.io/docs/home/

    3. 从kubernetes-api文档中查找, https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#pod-v1-core

    4. kubectl explain 查看具体字段含义

    ###### pod状态与生命周期
    Pod的状态如下表所示:
  • 相关阅读:
    图片延迟加载
    Python开发【第一篇】:初识Python
    JavsScript+dom
    Django学习系列18:使用迁移创建生产数据库
    Django学习系列17:在模板中渲染待办事项
    Django学习系列16:处理完POST请求后重定向
    Django学习系列15:把POST请求中的数据存入数据库
    Django学习系列14:第一个数据库迁移
    Django学习系列13:Django ORM和第一个模型
    Django学习系列12:把Python变量传入模板中渲染
  • 原文地址:https://www.cnblogs.com/dinghc/p/14384757.html
Copyright © 2011-2022 走看看