k8s配置与存储

1:Secret

Secret 类似于 ConfigMap 但专门用于保存机密数据。

1.1:Secret 的类型

创建 Secret 时,你可以使用 Secret 资源的 type 字段,或者与其等价的 kubectl 命令行参数(如果有的话)为其设置类型。 Secret 类型有助于对 Secret 数据进行编程处理。

Kubernetes 提供若干种内置的类型,用于一些常见的使用场景。 针对这些类型,Kubernetes 所执行的合法性检查操作以及对其所实施的限制各不相同。

内置类型

用法

Opaque

用户定义的任意数据

kubernetes.io/service-account-token

服务账号令牌

kubernetes.io/dockercfg

~/.dockercfg 文件的序列化形式

kubernetes.io/dockerconfigjson

~/.docker/config.json 文件的序列化形式

kubernetes.io/basic-auth

用于基本身份认证的凭据

kubernetes.io/ssh-auth

用于 SSH 身份认证的凭据

kubernetes.io/tls

用于 TLS 客户端或者服务器端的数据

bootstrap.kubernetes.io/token

启动引导令牌数据

通过为 Secret 对象的 type 字段设置一个非空的字符串值,你也可以定义并使用自己 Secret 类型(如果 type 值为空字符串,则被视为 Opaque 类型)。

1.1.1:generic 类型

1:使用基本字符串 命令行创建

特殊字符(例如 KaTeX parse error: Undefined control sequence: \、 at position 2: 、\̲、̲*、= 和 !)会被你的 Sh...zDsb=' --dry-run=client -oyaml

等同于 yaml

apiVersion: v1

data:

password: YWJjZEAxMjMh

username: cm9vdA==

kind: Secret

metadata:

creationTimestamp: null

name: db-secret

解码

echo "cm9vdA==" | base64 -d

2:使用文件来创建secret

默认密钥名称是文件名

kubectl create secret generic db-user-pass

--from-file=./username.txt

--from-file=./password.txt

使用 --from-file=[key=]source 来设置密钥名称

kubectl create secret generic db-user-pass-02

--from-file=uname=./username.txt

--from-file=pwd=./password.txt3:在pod中使用,并以环境变量的形式使用

修改secret pod环境变量引用的方式不会被自动更新

secret保存在集群的etcd里面

apiVersion: v1

kind: Pod

metadata:

name: "pod-secret"

namespace: default

labels:

app: "pod-secret"

spec:

containers:

  • name: pod-secret
    image: "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/registry.k8s.io/e2e-test-images/busybox:1.29-4"
    command: ["/bin/sh","-c","sleep 3600"] ## echo $My_USR
    resources:
    limits:
    cpu: 10m ### 1核代表1000m
    requests:
    cpu: 5m
    env:
    • name: MY_USR ### 容器里的环境变量名字
      valueFrom:
      secretKeyRef: ## secret的内容
      name: db-secret #指定secret名字
      key: username ### 自动base64解码
    • name: POD_NAME
      valueFrom:
      fieldRef: ## 属性引用
      fieldPath: metadata.name ## 取出资源对象信息
    • name: POD_LIMIT_MEM
      valueFrom:
      resourceFieldRef:
      containerName: pod-secret ## 取出指定容器的相关资源值
      resource: limits.cpu4:secret用卷挂载 (改文件,里面信息会更新)

secret保存在集群的etcd里面

apiVersion: v1

kind: Pod

metadata:

name: "pod-secret"

namespace: default

labels:

app: "pod-secret"

spec:

containers:

  1. configmap
    apiVersion: v1
    kind: Pod
    metadata:
    name: configmap-demo-pod
    spec:
    containers:

    • name: demo
      image: alpine
      command: ["sleep", "3600"]
      env:

      定义环境变量

      • name: PLAYER_INITIAL_LIVES # 请注意这里和 ConfigMap 中的键名是不一样的
        valueFrom:
        configMapKeyRef:
        name: game-demo # 这个值来自 ConfigMap
        key: player_initial_lives # 需要取值的键
      • name: UI_PROPERTIES_FILE_NAME
        valueFrom:
        configMapKeyRef:
        name: game-demo
        key: ui_properties_file_name
        volumeMounts:
      • name: config
        mountPath: "/config"
        readOnly: true
        volumes:

    你可以在 Pod 级别设置卷,然后将其挂载到 Pod 内的容器中

    • name: config
      configMap:

      提供你想要挂载的 ConfigMap 的名字

      name: game-demo

      来自 ConfigMap 的一组键,将被创建为文件

      items:

      • key: "game.properties"
        path: "game.properties"
      • key: "user-interface.properties"
        path: "user-interface.properties"
相关推荐
岁岁种桃花儿4 小时前
kubenetes从入门到上天系列第二十一篇:Kubernetes安装Ingress实战
云原生·容器·kubernetes
程序员老赵5 小时前
超全 Docker 镜像源配置指南|Windows/Mac/Linux一键搞定,拉镜像再也不卡顿
linux·后端·容器
掘根6 小时前
【微服务即时通讯】文件存储子服务
微服务·云原生·架构
一殊酒7 小时前
【Docker】Docker Desktop 安装指南及汉化教程
运维·docker·容器
0w0不秃头程序猿7 小时前
guide哥AI智能面试项目部署过程
云原生·eureka
阿里云云原生7 小时前
漫说运维:LoongCollector 性能与稳定性技术大解密
云原生
一殊酒11 小时前
【Docker】快速入门指南
运维·docker·容器
**蓝桉**11 小时前
prometheus监控docker容器(Rocky9)
docker·容器·prometheus
linux修理工12 小时前
EasyVoice 项目部署与使用指南(开源文字互转声音)
云原生·eureka
lpruoyu12 小时前
【云原生】Helm应用商店
云原生