Kubernetes里的secret最基本的用法

举报
汪子熙 发表于 2021/12/25 21:41:29 2021/12/25
【摘要】 Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。Secret可以以Volume或者环境变量的方式使用。使用如下命令行创建一个secret:kubectl create secret generic admin-access --from-file=./username.txt --from-fi...

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。

Secret可以以Volume或者环境变量的方式使用。

使用如下命令行创建一个secret:

kubectl create secret generic admin-access --from-file=./username.txt --from-file=./password.txt

输入文件username.txt和password.txt需要手动创建,里面分别维护用于测试的用户名和密码。

创建成功后,发现secret的类型为Opaque:

实际上,Kubernetes的secret有三种类型:

1. Service Account:用来访问Kubernetes API,由Kubernetes自动创建,并且会自动挂载到Pod的 /run/secrets/kubernetes.io/serviceaccount 目录中;

2. Opaque:base64编码格式的Secret,用来存储密码、密钥等;

3. kubernetes.io/dockerconfigjson :用来存储私有docker registry的认证信息。

而我们刚刚创建的secret的类型为Opaque,因此在kubectl get secrets的返回结果里,能看到password和username的值均为base64编码:

要在pod里消费这个secret也很容易,看一个例子:

apiVersion: v1

kind: Pod

metadata:

name: secret-pod

spec:

restartPolicy: Never

volumes:

- name: credentials

secret:

secretName: admin-access

defaultMode: 0440

containers:

- name: secret-container

image: alpine:3.8

command: [ "/bin/sh", "-c", "cat /etc/foo/username.txt /etc/foo/password.txt" ]

volumeMounts:

- name: credentials

mountPath: "/etc/foo"

readOnly: true

创建pod,自动执行,通过log命令查看pod的日志:

发现/bin/sh命令被执行了,pod mount的目录/etc/foo下的username.txt和password.txt通过cat命令显示了输出:

今天我的一位同事在微信群里发了一张图片,勾起了我的好奇心:不同编程语言支持的函数递归调用的最大嵌套层数是?

Java 1.8


private static void recur(int i){

  System.out.println("Stack level: " + i);

  recur(++i);

}

测试结果:8644

Javascript in Chrome

Chrome版本:

Version 70.0.3538.102 (Official Build) (64-bit)


function a(i){

   console.log("stack level: " + i)

   a(i+1);

}

a(0);

测试结果:11412

JavaScript in nodejs

nodejs version: v8.11.3

测试结果:11213

Golang

版本:

测试结果:3947556

ABAP


data: lv_temp type int4.

form recur using iv type int4.

  sy-index = iv.

  lv_temp = iv + 1.

  perform recur using lv_temp .

endform.

START-OF-SELECTION.

   perform recur using 0.

实际上是out-of-memory错误。

测试结果:12258206

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。