首页 > 其他分享 >K8S之配置信息应用

K8S之配置信息应用

时间:2024-08-23 14:17:47浏览次数:9  
标签:name 配置 volume secret 应用 Pod K8S my

在K8S中,为容器提供预先定义好的数据,K8S支持四种volume:Secret、ConfigMap、DownloadAPI、ServiceAccountToken

Secret

把Pod想要访问的加密数据存放到etcd中,然后可以在Pod容器通过挂载的方式访问secret里保存的数据
一旦secret被创建,我们可以通过三种方式使用

  1. 在创建Pod时,通过为Pod指定service account来自动使用secret
  2. 通过挂载该secret到Pod来使用它
  3. 在Docker镜像下载时使用,通过指定Pod的spc.ImagePullSecrets来引用它
apiVersion: v1
kind: Pod
metadata: 
  name: pod-volume-test
  labels:
    app: pod-volume-test
spec:
  containers:
  - name: volume-secret-test
    image: xxx
    command:
    - "/bin/sh"    
    - "-c"
    - "sleep 3600"
    volumeMounts:
    - name: my-secret
      mouthPath: "/project-volume"
      readOnly: true
  volumes:
  - name: my-secret
    projected:
      sources:
      - secret:
          name: my-secret-volume

-------------
apiVersion: v1
kind: Secret
metadata:
  name: my-secret-volume
type: Opaque
data:
  user: cm9vdA==
  password: UEBzc1cwcmQ=

通过这种方式挂载的secret,如果单个数据被更新,这些volume里的内容不会被更新,如要更新,重新apply或删除重建

ConfigMap

configMap 保存的数据不需要加密,比如存放应用的配置信息

定义配置信息yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-app-params
  labels:
    app: my-app
data:
  db.host: localhost
  db.port: "3306"

使用上述定义配置信息

apiVersion: v1
kind: Pod
metadata:
  name: env-configmap
  labels:
    app: env-configmap-db
spec:
  containers:
  - name: test-configmap
    image: xxx
    command:
    - "/bin/sh"    
    - "-c"
    - "env"
    env:
    - name: DB_HOST
      valueFrom:
        configMapKeyRef:
          name: my-app-params
          key: db.host
    - name: DB_PORT
      valueFrom:
        configMapKeyRef:
          name: my-app-params
          key: db.port      
    envFrom:
    - configMapRef:
      name: my-app-params     

DownloadAPI

让这个Pod里的容器可以直接获取这个Pod API对象本身的信息

apiVersion: v1
kind: Pod
metadata:
  name: test-downwardapi-volume
  labels:
    zone: us-est-coast
    cluster: test-cluster1
    rack: rack-22
spec:
  containers:
    - name: client-container
      image: k8s.gcr.io/xxxx
      command: ["sh", "-c"]
      args:
      - while true; do
          if [[ -e /etc/podinfo/labels ]]; then
            echo -en '\n\n'; cat /etc/podinfo/labels; fi;
          sleep 5;
        done;
      volumeMounts:
        - name: podinfo
          mountPath: /etc/podinfo
          readOnly: false
  volumes:
    - name: podinfo
      projected:
        sources:
        - downwardAPI:
            items:
              - path: "labels"
                fieldRef:
                  fieldPath: metadata.labels

ServiceAccountToken

ServiceAccountToken是K8S内置一种服务账户,是K8S进行权限分配的对象。ServiceAccountToken的授权信息和文件保存在
secret对象中,它是一个特殊的secret对象。任何运行在K8S集群上的应用,都必须使用ServiceAccountToken里保存的授权信息,
也就是token,这样才能合法访问API Server。K8S已经提供一个默认的服务账户,任何一个运行在K8S里的Pod,都可以无显示声明地
挂载ServiceAccountToken并使用它

标签:name,配置,volume,secret,应用,Pod,K8S,my
From: https://www.cnblogs.com/codechange/p/17832436.html

相关文章

  • 公网IP配置SSL证书详情
    IP地址是互联网中每台设备的唯一标识,就像是门牌号,可以让数据准确找到目标设备。而服务器,则是能够提供网络服务的计算器,它可以存储、处理并响应来自互联网的各种请求。因此,IP访问的服务器通常指的是通过特定的IP地址与服务器建立连接,进行数据传输或服务请求的过程,IP在实现HTTP......
  • 构建Spring Boot应用的微服务服务链路追踪
    构建SpringBoot应用的微服务服务链路追踪大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在微服务架构中,服务链路追踪是确保服务调用流程透明化和问题定位的关键技术。SpringBoot结合SpringCloudSleuth和Zipkin等工具,可以轻松实现服务链路追踪。......
  • Clion配置-运行多个单独cpp代码的main函数
    修改CMakeLists.txt文件为project(YourProjectName)set(CMAKE_CXX_STANDARD11)#遍历项目二级目录下所有的.cpp文件file(GLOBfiles*/*.cpp)foreach(file${files})string(REGEXREPLACE".+/(.+)/(.+)\\..*""\\1-\\2"exe${file})add_exec......
  • 深度解析敏捷架构在数字时代的应用:创新理论与实践的融合
    在当今数字化转型的关键时刻,企业面对的最大挑战之一是如何在高速变化的环境中保持灵活性与竞争力。《数字化时代的敏捷架构》深入探讨了敏捷架构的理论基础、实践应用以及其在大规模企业中的成功经验。《数字化时代的敏捷架构》提出的敏捷架构框架(AgileArchitectureFramework......
  • 【AI+应用】一文了解知识图谱技术体系
    一、知识表示二、知识建模三、知识抽取四、知识挖掘五、知识存储六、知识融合七、知识检索八、知识推理原创虞大胆的叽叽喳喳《从零构建知识图谱:技术、方法与案例》这本书初读的时候,感觉有点理论,不过结合陈华钧教授知识图谱课件学习后,感觉阐述比较完整,尤其前......
  • 微前端架构:使用不同框架构建可扩展的大型应用
    随着前端技术的发展,构建和维护大型应用变得愈发复杂。传统的单体前端架构逐渐暴露出诸多问题,如代码臃肿、构建时间过长、团队协作困难等。为了解决这些问题,微前端架构应运而生。微前端架构允许我们将一个大型应用拆分成多个独立的子应用,每个子应用可以使用不同的技术栈独立......
  • 使用 reloadNuxtApp 强制刷新 Nuxt 应用
    title:使用reloadNuxtApp强制刷新Nuxt应用date:2024/8/22updated:2024/8/22author:cmdragonexcerpt:reloadNuxtApp是一个强大的工具,用于在Nuxt3应用中强制刷新页面。通过不同的选项,你可以控制刷新行为、指定路径、保存状态等。categories:前端开发tags:......
  • 保姆级教你如何安装Ubuntu系统和配置远程访问
    一.UNIX系统和Linux系统介绍1.UNIX简介1965年,美国麻省理工学院(MIT)、通用电气公司(GE)及AT&T的贝尔实验室联合开发Mulitics工程计划,期目标是开发一种交互式的具有多道程序处理能力的分时操作系统,但因Mulitics最求的目标过于庞大,项目进度远远落后于计划,最后贝尔实验室宣......
  • 构建Spring Boot应用的微服务服务依赖管理
    构建SpringBoot应用的微服务服务依赖管理大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在微服务架构中,服务间的依赖关系管理是一个复杂的问题。SpringBoot作为构建微服务的流行框架,提供了多种机制来管理服务间的依赖。服务依赖管理的概念服务依......
  • 构建Spring Boot应用的微服务服务契约管理
    构建SpringBoot应用的微服务服务契约管理大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在微服务架构中,服务之间的通信依赖于明确的接口契约。服务契约管理是确保服务间能够正确交互的关键。SpringBoot提供了多种机制来定义和管理服务契约。服务......