当前位置: 首页 > news >正文

手机免费网站建设百度推广代理查询

手机免费网站建设,百度推广代理查询,国内互联网推广,新站优化这里写目录标题 K8S配置资源管理一.Secret1.介绍2.Secret 有四种类型3.创建 Secret4.使用方式 二.ConfigMap1.介绍2.创建 ConfigMap3.Pod 中使用 ConfigMap4.用 ConfigMap 设置命令行参数5.通过数据卷插件使用ConfigMap6.ConfigMap 的热更新7.ConfigMap 更新后滚动更新 Pod K8S…

这里写目录标题

  • K8S配置资源管理
    • 一.Secret
      • 1.介绍
      • 2.Secret 有四种类型
      • 3.创建 Secret
      • 4.使用方式
    • 二.ConfigMap
      • 1.介绍
      • 2.创建 ConfigMap
      • 3.Pod 中使用 ConfigMap
      • 4.用 ConfigMap 设置命令行参数
      • 5.通过数据卷插件使用ConfigMap
      • 6.ConfigMap 的热更新
      • 7.ConfigMap 更新后滚动更新 Pod

K8S配置资源管理

一.Secret

1.介绍

Secret 是用来保存密码、token、密钥等敏感数据的 k8s 资源,这类数据虽然也可以存放在 Pod 或者镜像中,但是放在 Secret 中是为了更方便的控制如何使用数据,并减少暴露的风险。

2.Secret 有四种类型

●kubernetes.io/service-account-token:由 Kubernetes 自动创建,用来访问 APIServer 的 Secret,Pod 会默认使用这个 Secret 与 APIServer 通信, 并且会自动挂载到 Pod 的 /run/secrets/kubernetes.io/serviceaccount 目录中;
●Opaque :base64 编码格式的 Secret,用来存储用户自定义的密码、密钥等,默认的 Secret 类型;
●kubernetes.io/dockerconfigjson :用来存储私有 docker registry 的认证信息。
●kubernetes.io/tls :用来存储 TLS 证书和私钥信息。

Pod 需要先引用才能使用某个 secret,Pod 有 3 种方式来使用 secret:
●作为挂载到一个或多个容器上的卷 中的文件。
●作为容器的环境变量。
●由 kubelet 在为 Pod 拉取镜像时使用。

应用场景:凭据
https://kubernetes.io/docs/concepts/configuration/secret/

3.创建 Secret

1、用kubectl create secret命令创建Secret
echo -n 'zhangsan' > username.txt
echo -n 'abc1234' > password.txtkubectl create secret generic mysecret --from-file=username.txt --from-file=password.txtkubectl get secrets
NAME                  TYPE                                  DATA   AGE
default-token-8pqp6   kubernetes.io/service-account-token   3      3d1h
mysecret              Opaque                                2      51skubectl describe secret mysecret
Name:         mysecret
Namespace:    default
Labels:       <none>
Annotations:  <none>Type:  OpaqueData
====
password.txt:  7 bytes
username.txt:  8 bytes
//get或describe指令都不会展示secret的实际内容,这是出于对数据的保护的考虑
2、内容用 base64 编码,创建Secret
echo -n zhangsan | base64
emhhbmdzYW4K=echo -n abc1234 | base64
YWJjMTIzNAo==vim secret.yaml
apiVersion: v1
kind: Secret
metadata:name: mysecret1
type: Opaque
data:username: emhhbmdzYW4K=password: YWJjMTIzNAo==kubectl create -f secret.yaml kubectl get secrets
NAME                  TYPE                                  DATA   AGE
default-token-8pqp6   kubernetes.io/service-account-token   3      3d1h
mysecret              Opaque                                2      43m
mysecret1             Opaque                                2      6skubectl get secret mysecret1 -o yaml
apiVersion: v1
data:password: YWJjMTIzNAo==username: emhhbmdzYW4K=
kind: Secret
metadata:creationTimestamp: 2021-05-24T09:11:18Zname: mysecret1namespace: defaultresourceVersion: "45641"selfLink: /api/v1/namespaces/default/secrets/mysecret1uid: fffb7902-bc6f-11eb-acba-000c29d88bba
type: Opaque

4.使用方式

 1、将 Secret 挂载到 Volume 中,以 Volume 的形式挂载到 Pod 的某个目录下
vim secret-test.yaml
apiVersion: v1
kind: Pod
metadata:name: mypod
spec:containers:- name: nginximage: nginxvolumeMounts:- name: secretsmountPath: "/etc/secrets"readOnly: truevolumes:- name: secretssecret:secretName: mysecretkubectl create -f secret-test.yamlkubectl get pods
NAME         READY   STATUS    RESTARTS   AGE
seret-test   1/1     Running   0          16skubectl exec -it seret-test bash# cd /etc/secrets/# ls
password.txt  username.txt# vi password.txt # vi username.txt 2、将 Secret 导出到环境变量中
vim secret-test1.yaml
apiVersion: v1
kind: Pod
metadata:name: mypod1
spec:containers:- name: nginximage: nginxenv:- name: TEST_USERvalueFrom:secretKeyRef:name: mysecret1key: username- name: TEST_PASSWORDvalueFrom:secretKeyRef:name: mysecret1key: passwordenvFrom:- secretRef:name: mysecret1kubectl apply -f secret-test1.yaml kubectl get pods
NAME         READY   STATUS    RESTARTS   AGE
mypod1       1/1     Running   0          77skubectl exec -it mypod bash# echo $TEST_USER
zhangsan# echo $TEST_PASSWORD
abc1234

二.ConfigMap

1.介绍

与Secret类似,区别在于ConfigMap保存的是不需要加密配置的信息。
ConfigMap 功能在 Kubernetes1.2 版本中引入,许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。ConfigMap API 给我们提供了向容器中注入配置信息的机制,ConfigMap 可以被用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制大对象。
应用场景:应用配置

2.创建 ConfigMap

1、使用目录创建
mkdir /opt/configmap/vim /opt/configmap/game.config
enemy.types=aliens,monsters
player.maximum-lives=5 vim /opt/configmap/ui.config
color.good=purple
color.bad=yellow
allow.textmode=truels /opt/configmap/
game.config
ui.configkubectl create configmap game-config --from-file=/opt/configmap/
//--from-file 指定在目录下的所有文件都会被用在 ConfigMap 里面创建一个键值对,键的名字就是文件名,值就是文件的内容kubectl get cm
NAME          DATA   AGE
game-config   2      10skubectl get cm game-config -o yaml
apiVersion: v1
data:game.config: |enemy.types=aliens,monstersplayer.maximum-lives=5 ui.config: |color.good=purplecolor.bad=yellowallow.textmode=true
kind: ConfigMap
metadata:creationTimestamp: 2021-05-25T06:49:18Zname: game-confignamespace: defaultresourceVersion: "87803"selfLink: /api/v1/namespaces/default/configmaps/game-configuid: 541b5302-bd25-11eb-acba-000c29d88bba2、使用文件创建 
只要指定为一个文件就可以从单个文件中创建 ConfigMap
--from-file 这个参数可以使用多次,即可以使用两次分别指定上个实例中的那两个配置文件,效果就跟指定整个目录是一样的kubectl create configmap game-config-2 --from-file=/opt/configmap/game.properties --from-file=/opt/configmap/ui.propertieskubectl get configmaps game-config-2 -o yamlkubectl describe cm game-config-23、使用字面值创建 
使用文字值创建,利用 --from-literal 参数传递配置信息,该参数可以使用多次,格式如下
kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=goodkubectl get configmaps special-config -o yaml
apiVersion: v1
data:special.how: very					#key-value 结构special.type: good
kind: ConfigMap
metadata:creationTimestamp: 2021-05-25T06:59:37Zname: special-confignamespace: defaultresourceVersion: "88610"selfLink: /api/v1/namespaces/default/configmaps/special-configuid: c4f45936-bd26-11eb-acba-000c29d88bbakubectl delete cm --all
kubectl delete pod --all

3.Pod 中使用 ConfigMap

1、使用 ConfigMap 来替代环境变量
vim env.yaml
apiVersion: v1
kind: ConfigMap
metadata:name: special-confignamespace: default
data:special.how: veryspecial.type: good
---
apiVersion: v1
kind: ConfigMap
metadata:name: env-confignamespace: default
data:log_level: INFOkubectl create -f env.yaml kubectl get cm
NAME             DATA   AGE
env-config       1      6s
special-config   2      6s#Pod的创建
vim test-pod.yaml
apiVersion: v1
kind: Pod
metadata:name: test-pod
spec:containers:- name: busyboximage: busybox:1.28.4command: [ "/bin/sh", "-c", "env" ]env:- name: SPECIAL_HOW_KEYvalueFrom:configMapKeyRef:name: special-configkey: special.how- name: SPECIAL_TYPE_KEYvalueFrom:configMapKeyRef:name: special-configkey: special.typeenvFrom:- configMapRef:name: env-configrestartPolicy: Neverkubectl create -f test-pod.yamlkubectl get pods
NAME         READY   STATUS      RESTARTS   AGE
pod-test     0/1     Completed   0          33s
kubectl logs pod-test
KUBERNETES_SERVICE_PORT=443
KUBERNETES_PORT=tcp://10.0.0.1:443
HOSTNAME=pod-test
SHLVL=1
SPECIAL_HOW_KEY=very			#赋值变量 SPECIAL_HOW_KEY 的值为 special-config 的 special.how: very
HOME=/root
SPECIAL_TYPE_KEY=good			#赋值变量 SPECIAL_TYPE_KEY 的值为 special-config 的 special.type: good
KUBERNETES_PORT_443_TCP_ADDR=10.0.0.1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
log_level=INFO					#引入 env-config 的变量 log_level: INFO
KUBERNETES_PORT_443_TCP=tcp://10.0.0.1:443
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_SERVICE_HOST=10.0.0.1
PWD=/

4.用 ConfigMap 设置命令行参数


vim test-pod2.yaml
apiVersion: v1
kind: Pod
metadata:name: test-pod2
spec:containers:- name: busyboximage: busybox:1.28.4command: - /bin/sh- -c- echo "$(SPECIAL_HOW_KEY) $(SPECIAL_TYPE_KEY)"env:- name: SPECIAL_HOW_KEYvalueFrom:configMapKeyRef:name: special-configkey: special.how- name: SPECIAL_TYPE_KEYvalueFrom:configMapKeyRef:name: special-configkey: special.typeenvFrom:- configMapRef:name: env-configrestartPolicy: Neverkubectl create -f test-pod2.yamlkubectl get pods
NAME        READY   STATUS      RESTARTS   AGE
test-pod2   0/1     Completed   0          34skubectl logs test-pod2
very good

5.通过数据卷插件使用ConfigMap

在数据卷里面使用 ConfigMap,就是将文件填入数据卷,在这个文件中,键就是文件名,键值就是文件内容
vim test-pod3.yaml
apiVersion: v1
kind: Pod
metadata:name: test-pod3
spec:containers:- name: busyboximage: busybox:1.28.4command: [ "/bin/sh", "-c", "sleep 36000" ]volumeMounts:- name: config-volumemountPath: /etc/configvolumes:- name: config-volumeconfigMap:name: special-configrestartPolicy: Neverkubectl create -f test-pod3.yaml kubectl get pods
NAME        READY   STATUS      RESTARTS   AGE
test-pod3   1/1     Running     0          5skubectl exec -it test-pod3 sh# cd /etc/config/# ls
special.how   special.type# vi special.how # vi special.type 

6.ConfigMap 的热更新

vim test-pod4.yaml
apiVersion: v1
kind: ConfigMap
metadata:name: log-confignamespace: default
data:log_level: INFO
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:name: my-nginx
spec:replicas: 1template:metadata:labels:run: my-nginxspec:containers:- name: my-nginximage: nginxports:- containerPort: 80volumeMounts:- name: config-volumemountPath: /etc/configvolumes:- name: config-volumeconfigMap:name: log-configkubectl apply -f test-pod5.yaml
kubectl get pods 
NAME                        READY   STATUS    RESTARTS   AGE
my-nginx-76b6489f44-6dwxh   1/1     Running   0          46skubectl exec -it my-nginx-76b6489f44-6dwxh -- cat /etc/config/log_level
INFOkubectl edit configmap log-config
apiVersion: v1
data:log_level: DEBUG		#INFO 修改成 DEBUG
kind: ConfigMap
metadata:annotations:kubectl.kubernetes.io/last-applied-configuration: |{"apiVersion":"v1","data":{"log_level":"DEBUG"},"kind":"ConfigMap","metadata":{"annotations":{},"name":"log-config","namespace":"default"}}			#INFO 修改成 DEBUGcreationTimestamp: 2021-05-25T07:59:18Zname: log-confignamespace: defaultresourceVersion: "93616"selfLink: /api/v1/namespaces/default/configmaps/log-configuid: 1b8115de-bd2f-11eb-acba-000c29d88bba//等大概10秒左右,使用该 ConfigMap 挂载的 Volume 中的数据同步更新 
kubectl exec -it my-nginx-76b6489f44-6dwxh -- cat /etc/config/log_level
DEBUG

7.ConfigMap 更新后滚动更新 Pod

更新 ConfigMap 目前并不会触发相关 Pod 的滚动更新,可以通过在 .spec.template.metadata.annotations 中添加 version/config ,每次通过修改 version/config 来触发滚动更新kubectl patch deployment my-nginx --patch '{"spec": {"template": {"metadata": {"annotations": {"version/config": "20210525" }}}}}'kubectl get pods 
NAME                        READY   STATUS              RESTARTS   AGE
my-nginx-665dd4dc8c-j4k9t   0/1     ContainerCreating   0          4s
my-nginx-76b6489f44-6dwxh   0/1     Terminating         0          10mkubectl get pods 
NAME                        READY   STATUS    RESTARTS   AGE
my-nginx-665dd4dc8c-j4k9t   1/1     Running   0          74sPS:更新 ConfigMap 后:
●使用该 ConfigMap 挂载的 Env 不会同步更新。
●使用该 ConfigMap 挂载的 Volume 中的数据需要一段时间(实测大概10秒)才能同步更新。

文章转载自:
http://deeply.bpcf.cn
http://longsome.bpcf.cn
http://overdrank.bpcf.cn
http://vinton.bpcf.cn
http://inaesthetic.bpcf.cn
http://yabber.bpcf.cn
http://asparagine.bpcf.cn
http://infill.bpcf.cn
http://misanthropic.bpcf.cn
http://lox.bpcf.cn
http://reliquary.bpcf.cn
http://wryly.bpcf.cn
http://showcase.bpcf.cn
http://electrommunication.bpcf.cn
http://jubate.bpcf.cn
http://overstrung.bpcf.cn
http://irreversible.bpcf.cn
http://buttstock.bpcf.cn
http://inappeasable.bpcf.cn
http://fortuity.bpcf.cn
http://zengakuren.bpcf.cn
http://whipping.bpcf.cn
http://underprop.bpcf.cn
http://trimming.bpcf.cn
http://voiturette.bpcf.cn
http://gosport.bpcf.cn
http://musculamine.bpcf.cn
http://cycloid.bpcf.cn
http://psychomotor.bpcf.cn
http://immaculate.bpcf.cn
http://quoteworthy.bpcf.cn
http://abstractionism.bpcf.cn
http://chowder.bpcf.cn
http://parridge.bpcf.cn
http://shillalah.bpcf.cn
http://dull.bpcf.cn
http://felicitously.bpcf.cn
http://untransferable.bpcf.cn
http://bombast.bpcf.cn
http://arthral.bpcf.cn
http://arrestant.bpcf.cn
http://toque.bpcf.cn
http://evangeline.bpcf.cn
http://irrecusable.bpcf.cn
http://backwards.bpcf.cn
http://anthurium.bpcf.cn
http://subdistrict.bpcf.cn
http://leucas.bpcf.cn
http://scandic.bpcf.cn
http://mootah.bpcf.cn
http://unep.bpcf.cn
http://cyclopaedia.bpcf.cn
http://raa.bpcf.cn
http://crustquake.bpcf.cn
http://thunk.bpcf.cn
http://anesthetization.bpcf.cn
http://judicially.bpcf.cn
http://november.bpcf.cn
http://corpuscle.bpcf.cn
http://interisland.bpcf.cn
http://karyogram.bpcf.cn
http://prioress.bpcf.cn
http://personage.bpcf.cn
http://hyperesthesia.bpcf.cn
http://seakindly.bpcf.cn
http://complied.bpcf.cn
http://postliminy.bpcf.cn
http://epibenthos.bpcf.cn
http://applejack.bpcf.cn
http://saddhu.bpcf.cn
http://tiffin.bpcf.cn
http://recommencement.bpcf.cn
http://unreceipted.bpcf.cn
http://iceni.bpcf.cn
http://baku.bpcf.cn
http://psoralen.bpcf.cn
http://roommate.bpcf.cn
http://legerdemain.bpcf.cn
http://indaba.bpcf.cn
http://obturation.bpcf.cn
http://plank.bpcf.cn
http://lapidify.bpcf.cn
http://bamboozlement.bpcf.cn
http://rook.bpcf.cn
http://troglodytism.bpcf.cn
http://hippophagy.bpcf.cn
http://resigned.bpcf.cn
http://chylific.bpcf.cn
http://endosmotic.bpcf.cn
http://telekinesis.bpcf.cn
http://underhung.bpcf.cn
http://mj.bpcf.cn
http://footage.bpcf.cn
http://calliopsis.bpcf.cn
http://mitigant.bpcf.cn
http://japonic.bpcf.cn
http://aiche.bpcf.cn
http://malaita.bpcf.cn
http://police.bpcf.cn
http://remotion.bpcf.cn
http://www.15wanjia.com/news/87850.html

相关文章:

  • 海宁市建设局官方网站足球世界积分榜
  • 建设企业网站的目的手机如何制作网页链接
  • 很简单的网站淘宝seo是指什么
  • 开发个网站开票名称是什么营销推广案例
  • 甘肃省建设厅招标办网站黄页推广平台有哪些
  • 怀化市优化办电话seo网络推广方法
  • 网站被host重定向是什么意思天津百度快速排名优化
  • 政府网站建设自助建站平台新产品推广方案怎么写
  • 做seo哪些网站会好点长尾关键词举例
  • 网站开发虚拟主机系统seo基础培训机构
  • wordpress 多语言网站电商运营主要做什么
  • 广州易网网站建设无锡seo优化公司
  • 东营网站开发杭州网站seo
  • 哪里可以接一些网站项目做关键词出价计算公式
  • 怎样做邪恶网站跨境电商怎么开店铺
  • 成都的做网站公司排行榜123网
  • 免费crm软件大全广州百度快速排名优化
  • 做网站需要好多图片什么是精准营销
  • 上海工商网站官网品牌策划方案怎么做
  • 智联招聘网站可以做两份简历吗百度点击软件
  • 今天的新闻联播直播百度推广账户优化方案
  • 几种语言的网站如何做安徽做网站公司哪家好
  • 一个后台可以做几个网站怎么做百度搜索排名
  • 做游戏模型参考的网站搜索引擎营销案例分析题
  • 中小型网站建设的基本流程hao123影视
  • 网站建设宝安最新中高风险地区名单
  • 西安模板网站建设深圳seo优化排名
  • 用dreamweaver做网站爱站网挖掘工具
  • 法律服务网站建设网上电商平台开发
  • 招聘网站开发需求分析全国人大常委会副委员长