首页 > 其他分享 >k8s配置与密钥管理

k8s配置与密钥管理

时间:2023-11-24 16:34:48浏览次数:38  
标签:kubectl name 配置 secret 密钥 mysql pod k8s cm1

1、configmap

1.1 configmap创建方式

命令行创建方式

# kubectl create configmap cm1 --from-literal=host=127.0.0.1 --from-literal=port=3306
configmap/cm1 created
# kubectl describe cm cm1
Name:         cm1
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
host:
----
127.0.0.1
port:
----
3306
Events:  <none>
# kubectl get cm
NAME               DATA   AGE
cm1                2      43s
kube-root-ca.crt   1      24h

通过多个文件创建

# echo -n 127.0.0.1 > host
# echo -n 3306 > port
# kubectl create configmap cm2 --from-file=./host --from-file=./port

命令行通过文件提供多个键值对创建

# cat env.txt 
host=127.0.0.1
port=3306
# kubectl create configmap cm3 --from-env-file=env.txt

通过yaml资源清单文件创建

# cat cm4.yml 
apiVersion: v1
kind: ConfigMap
metadata:
  name: cm4
data:
  host: 127.0.0.1
  port: "3306"

# kubectl apply -f cm4.yml
1.2 configmap的使用方式

通过环境变量的方式传递给pod,这种方式不会热更新

# vim pod-cm1.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-cm1
spec:
  containers:
  - name: busybox
    image: busybox
    args: [ "/bin/sh", "-c", "sleep 10000" ]
    envFrom:
    - configMapRef:
        name: cm1


# kubectl apply -f pod-cm1.yaml 

# kubectl get pods
NAME      READY   STATUS    RESTARTS   AGE
pod-cm1   1/1     Running   0          14s

# kubectl exec -it pod-cm1 -- env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=pod-cm1
TERM=xterm
host=127.0.0.1
port=3306
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
KUBERNETES_SERVICE_HOST=10.96.0.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_PROTO=tcp
HOME=/root

通过volume方式挂载到pod内,这种方式会热更新,大约需要半分钟左右。

# vim pod-cm2.yml
apiVersion: v1
kind: Pod
metadata:
  name: pod-cm2
spec:
  containers:
  - name: busybox
    image: busybox
    args: [ "/bin/sh", "-c", "sleep 100000" ]
    volumeMounts:
    - name: vol-cm
      mountPath: "/etc/mysql"
      readOnly: true
  volumes:
  - name: vol-cm
    configMap:
      name: cm2

# kubectl apply -f pod-cm2.yml 

# kubectl exec pod-cm2 -- ls /etc/mysql
host
port
# kubectl exec pod-cm2 -- cat /etc/mysql/host
127.0.0.1

2、secret

2.1 创建方式
# echo -n 123 | base64 
MTIz
# vim secret-mysql.yaml
apiVersion: v1
kind: Secret
metadata:
  name: secret-mysql
data:
  password: MTIz

# kubectl apply -f secret-mysql.yaml 
# kubectl get secret
NAME                  TYPE                                  DATA   AGE
default-token-bkdlq   kubernetes.io/service-account-token   3      25h
secret-mysql          Opaque                                1      27s
# kubectl describe secret secret-mysql
Name:         secret-mysql
Namespace:    default
Labels:       <none>
Annotations:  <none>

Type:  Opaque

Data
====
password:  3 bytes
2.2 secert使用方法

通过环境方式传递Pod

# vim pod-mysql-secret.yml
apiVersion: v1
kind: Pod
metadata:
  name: pod-mysql-secret1
spec:
  containers:
  - name: mysql
    image: mysql:5.7
    env:
    - name: MYSQL_ROOT_PASSWORD
      valueFrom:
        secretKeyRef:
          name: secret-mysql
          key: password

# kubectl apply -f pod-mysql-secret.yml 

# kubectl exec pod-mysql-secret1 -- env
MYSQL_ROOT_PASSWORD=123

通过volume挂载传递

# cat pod-mysql-secret2.yml
apiVersion: v1
kind: Pod
metadata:
  name: pod-mysql-secret2
spec:
  containers:
  - name: busybox
    image: busybox
    args:
    - /bin/sh
    - -c
    - sleep 100000
    volumeMounts:
    - name: vol-secret
      mountPath: "/opt/passwd"
      readOnly: true
  volumes:
  - name: vol-secret
    secret:
      secretName: secret-mysql

# kubectl apply -f pod-mysql-secret1.yml
# kubectl exec pod-mysql-secret2 -- cat /opt/passwd/password
123

标签:kubectl,name,配置,secret,密钥,mysql,pod,k8s,cm1
From: https://www.cnblogs.com/zbc230/p/17854053.html

相关文章

  • 详解CCE服务:一站式告警配置和云原生日志视图
    本文分享自华为云社区《新一代云原生可观测平台之CCE服务日志和告警篇》,作者:云容器大未来。告警和日志是运维人员快速定位问题、恢复异常的主要手段。运维人员日常的工作模式往往是先接收告警信息,再根据告警信息初步判断异常的范围和影响,通过相关组件的日志定位出故障原因,进行系......
  • [Java] 解析Xml配置文件
    1、解析方法importjavax.xml.parsers.DocumentBuilder;importjavax.xml.parsers.DocumentBuilderFactory;importorg.w3c.dom.Document;importorg.w3c.dom.NamedNodeMap;importorg.w3c.dom.Node;importorg.w3c.dom.NodeList;publicstaticMap<String,String>pars......
  • JVM参数、配置项含义
    学习自:轻松永远记住经典jvm参数Jvm内存模型_jvm内存模型-CSDN博客JVM参数总结-简书有OutOfMemoryError有关的JVM参数_crash参数javajvm_毛发旺盛的程序员的博客-CSDN博客1、参数分类参数开头有四种:-、-X、-XX、-D javajvm.参数jvm参数-d_ctaxnews的技术博客_51CTO......
  • Vim——.vimrc配置
    vim是一个很好用的文本编辑工具,支持丰富的插件、定制化。主要在home目录下放置.vimrc,即~/.vimrc,即可实现诸多插件配置。这里,共享一份笔者在用的.vimrc。setnocompatible"beiMproved,requiredsetbackspace=indent,eol,startfiletypeoff......
  • mac端 安卓UI自动化安装环境配置
    安装JDK 官网下载安装包https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html 选择对应mac版本的dmg文件下载安装 配置Java环境终端执行命令vi~/.bash_profile文件,/Library/Java/JavaVirtualMachines/jdk-17.jdk/Content......
  • Spring Boot应用中Tomcat建议配置
    在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。Tomcat是Apache基金下的一个轻量级的Servlet容器,支持Servlet和JSP。Tomcat服务器本身具有Web服务器的功能,可以作为独立的Web服务器来使用。一、SpringBoot应用......
  • 华为交换机配置静态mac
    华为交换机静态arp绑定vlan的地址和mac 在华为交换机上,可以通过以下命令来配置静态ARP绑定,并将其关联到特定的VLAN。请注意,确保你有足够的权限执行这些命令,并根据你的网络配置进行适当的调整。进入系统视图:plaintext[Switch]system-view[Switch]_选择......
  • 实训课 - wireshark和网络配置基本知识
    接上文:实训课-计算机网络技术基础笔记https://blog.51cto.com/youyeye/8363907WireShark的基本抓包使用安装wireshark先在虚拟机上安装wireshark(直接在本机上将exe文件复制,然后切换到虚拟机上粘贴)然后工具栏capture–optionsInterface是接口,然后旁边的将是网卡,有两个选项,选择in......
  • ElasticSearch之配置
    ElasticSearch主要的配置文件,如下:elasticsearch.yml,ElasticSearch的相关参数。jvm.options,JVM的相关参数。log4j2.properties,日志的相关参数。默认情况下,ElasticSearch从$ES_HOME/config目录下读取上述配置文件。启动ElasticSearch时可以使用环境变量ES_PATH_CONF,指定配置......
  • springboot定时任务线程池配置拾遗--利用配置类进行配置
    springboot定时任务线程池配置拾遗--利用配置类进行配置目录springboot定时任务线程池配置拾遗--利用配置类进行配置1springboot自动装配1.1通过TaskSchedulingProperties获取yaml参数1.2TaskSchedulingAutoConfiguration自动配置类根据TaskSchedulingProperties的配置装配线......