国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Kubernetes配置管理 ConfigMap

這篇具有很好參考價值的文章主要介紹了Kubernetes配置管理 ConfigMap。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Kubernetes配置管理 ConfigMap

一、ConfigMap

1.1 什么是configmap

  • kubernetes集群可以使用ConfigMap來實現(xiàn)對容器中應用的配置管理
  • 可以把ConfigMap看作是一個掛載到pod中的存儲卷

1.2 創(chuàng)建ConfigMap的4種方式

1.2.1 在命令行指定參數(shù)創(chuàng)建

通過直接在命令行中指定configmap參數(shù)創(chuàng)建,即--from-literal=key=value

[root@k8s-master1 ~]# kubectl create configmap cm1 --from-literal=host=127.0.0.1 --from-literal=port=3306
configmap/cm1 created
[root@k8s-master1 ~]# kubectl get cm
NAME   DATA   AGE
cm1    2      12s
[root@k8s-master1 ~]#  kubectl describe cm cm1
Name:         cm1
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
host:
----
127.0.0.1
port:
----
3306
Events:  <none>

kubectl 更新configmap,devOps,kubernetes,docker,容器

1.2.2 在命令行通過多個文件創(chuàng)建

通過指定文件創(chuàng)建,即將一個配置文件創(chuàng)建為一個ConfigMap,--from-file=文件路徑

[root@k8s-master1 ~]#  echo -n 127.0.0.1 > host
[root@k8s-master1 ~]#  echo -n 3306 > port				

[root@k8s-master1 ~]#  kubectl create configmap cm2 --from-file=./host --from-file=./port
configmap/cm2 created

[root@k8s-master1 ~]#  kubectl get cm
NAME   DATA   AGE
cm1    2      3m45s
cm2    2      94s
[root@k8s-master1 ~]#  kubectl describe cm cm2
Name:         cm2
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
host:
----
127.0.0.1
port:
----
3306
Events:  <none>

kubectl 更新configmap,devOps,kubernetes,docker,容器

1.2.3 在命令行通過文件提供多個鍵值對創(chuàng)建

通過一個文件內(nèi)多個鍵值對,--from-env-file=文件路徑;

[root@k8smaster ~]# vi env.properties
[root@k8smaster ~]# cat env.properties 
host=127.0.0.1
port=3306
[root@k8smaster ~]# kubectl create configmap cm3 --from-env-file=env.properties
configmap/cm3 created
[root@k8smaster ~]# kubectl get cm
NAME   DATA   AGE
cm1    2      76m
cm2    2      4m6s
cm3    2      8s

[root@k8s-master1 ~]#  kubectl describe cm cm3
Name:         cm3
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
host:
----
127.0.0.1
port:
----
3306
Events:  <none>

1.2.4 通過YAML資源清單文件創(chuàng)建

通過kubectl create/apply -f YMAL文件 創(chuàng)建

[root@k8s-master1 ~]#  vim cm4.yml
apiVersion: v1
kind: ConfigMap
metadata:
  name: cm4
data:
  host: 127.0.0.1
  port: "3306"
  
[root@k8s-master1 ~]#  kubectl apply -f cm4.yml
configmap/cm4 created
[root@k8s-master1 ~]#  kubectl get cm
NAME   DATA   AGE
cm1    2      6m18s
cm2    2      4m7s
cm3    2      113s
cm4    2      11s
[root@k8s-master1 ~]#  kubectl describe cm cm4
Name:         cm4
Namespace:    default
Labels:       <none>
Annotations:
Data
====
host:
----
127.0.0.1
port:
----
3306
Events:  <none>

kubectl 更新configmap,devOps,kubernetes,docker,容器

1.3 ConfigMap的2種使用方式

1.3.1 通過環(huán)境變量的方式傳遞給pod

[root@k8s-master1 ~]#  vim pod-cm1.yml
apiVersion: v1
kind: Pod
metadata:
  name: pod-cm1
spec:
  containers:
  - name: busybox
    image: busybox
    args: [ "/bin/sh", "-c", "sleep 10000" ]
    envFrom:							# env方式
    - configMapRef:
        name: cm1						# configmap名稱
[root@k8s-master1 ~]#  kubectl apply -f pod-cm1.yml
pod/pod-cm1 created
[root@k8s-master1 ~]#  kubectl get pods
NAME               READY   STATUS    RESTARTS   AGE
pod-cm1            1/1     Running   0          9s
[root@k8s-master1 ~]#  kubectl exec pod-cm1 -- env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=pod-cm1
host=127.0.0.1								 # 我們創(chuàng)建的configmap傳進去的env
port=3306									 # 我們創(chuàng)建的configmap傳進去的env
DEPLOY_NGINX_PORT_80_TCP=tcp://10.2.205.160:80
DEPLOY_NGINX_PORT_80_TCP_ADDR=10.2.205.160
KUBERNETES_PORT=tcp://10.2.0.1:443
KUBERNETES_PORT_443_TCP=tcp://10.2.0.1:443
MY_SERVICE_SERVICE_HOST=10.2.52.46
MY_SERVICE_PORT_80_TCP_ADDR=10.2.52.46
KUBERNETES_SERVICE_HOST=10.2.0.1
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP_ADDR=10.2.0.1
MY_SERVICE_SERVICE_PORT=80
MY_SERVICE_PORT=tcp://10.2.52.46:80
MY_SERVICE_PORT_80_TCP=tcp://10.2.52.46:80
DEPLOY_NGINX_SERVICE_HOST=10.2.205.160
DEPLOY_NGINX_SERVICE_PORT=80
KUBERNETES_PORT_443_TCP_PORT=443
MY_SERVICE_PORT_80_TCP_PORT=80
DEPLOY_NGINX_PORT=tcp://10.2.205.160:80
DEPLOY_NGINX_PORT_80_TCP_PROTO=tcp
DEPLOY_NGINX_PORT_80_TCP_PORT=80
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_PORT_HTTPS=443
MY_SERVICE_PORT_80_TCP_PROTO=tcp
HOME=/root

kubectl 更新configmap,devOps,kubernetes,docker,容器

1.3.2 通過volume的方式掛載到pod內(nèi)

[root@k8s-master1 ~]#  vim pod-cm2.yml
apiVersion: v1
kind: Pod
metadata:
  name: pod-cm2
spec:
  containers:
  - name: busybox
    image: busybox
    args: [ "/bin/sh", "-c", "sleep 10000" ]
    volumeMounts:                               # 用volume掛載方式
    - name: vol-cm                              # 對應下面的volume名
      mountPath: "/etc/mysql"                   # 掛載到容器內(nèi)部的路徑
      readOnly: true                            # 只讀

  volumes:
  - name: vol-cm                                # 卷名稱
    configMap:
      name: cm2                                 # configmap的名稱
[root@k8s-master1 ~]#  kubectl apply -f pod-cm2.yml
pod/pod-cm2 created
[root@k8s-master1 ~]#  kubectl get pod
NAME      READY   STATUS    RESTARTS   AGE
pod-cm1   1/1     Running   0          3m51s
pod-cm2   1/1     Running   0          49s
[root@k8s-master1 ~]#  kubectl exec pod-cm2 -- ls /etc/mysql
host
port
[root@k8s-master1 ~]#  kubectl exec pod-cm2 -- cat /etc/mysql/host
127.0.0.1

[root@k8s-master1 ~]#  kubectl exec pod-cm2 -- cat /etc/mysql/port
3306

1.4 ConfigMap的熱更新

1.4.1 ConfigMap熱更新方式

如果修改了value, 那么容器內(nèi)部會不會更新?

  • 通過環(huán)境變量的方式傳遞給pod。這種方式不會熱更新
  • 通過volume的方式掛載到pod內(nèi)。這種方式會熱更新,大概需要半分鐘左右。

1.4.2 ConfigMap熱更新驗證

1.4.2.1 通過環(huán)境變量方式

此種方式不會熱更新

1.編輯修改對應的configmap

[root@k8s-master1 ~]# kubectl edit cm cm1
apiVersion: v1
data:
  host: 127.0.0.1
  port: "3307"								3306修改成3307
kind: ConfigMap
metadata:
  creationTimestamp: "2020-11-07T12:07:04Z"
  managedFields:
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:data:
        .: {}
        f:host: {}
        f:port: {}
    manager: kubectl
    operation: Update
    time: "2020-11-07T12:07:04Z"
  name: cm1
  namespace: default
  resourceVersion: "169386"
  selfLink: /api/v1/namespaces/default/configmaps/cm1
  uid: f06cd44d-2ef9-48f2-9ccc-995f9d9ea2ad
  1. 驗證對應的pod里的變化,發(fā)現(xiàn)很久都不會改變(環(huán)境變量方式)
[root@k8s-master1 ~]#  kubectl exec pod-cm1 -- env |grep port
port=3306									仍然為3306
1.4.2.2 通過volume方式
  1. 編輯修改對應的configmap
[root@k8s-master1 ~]#  kubectl edit cm cm2
apiVersion: v1
data:
  host: 127.0.0.1
  port: "3308"							 		 修改成3308
kind: ConfigMap
metadata:
  creationTimestamp: "2020-11-07T12:09:15Z"
  managedFields:
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:data:
        .: {}
        f:host: {}
        f:port: {}
    manager: kubectl
    operation: Update
    time: "2020-11-07T12:09:15Z"
  name: cm2
  namespace: default
  resourceVersion: "169707"
  selfLink: /api/v1/namespaces/default/configmaps/cm2

2.驗證對應的pod里的變化,一段時間后會改變(卷掛載方式)文章來源地址http://www.zghlxwxcb.cn/news/detail-698600.html

[root@k8s-master1 ~]#  kubectl exec pod-cm2 -- cat /etc/mysql/port
3308										     大概半分鐘后更新

到了這里,關(guān)于Kubernetes配置管理 ConfigMap的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • Kubernetes ConfigMap - Secret - 使用ConfigMap來配置 Redis

    Kubernetes ConfigMap - Secret - 使用ConfigMap來配置 Redis

    目錄 ConfigMap : 參考文檔:k8s -- ConfigMap - 簡書 (jianshu.com)? ? K8S ConfigMap使用 - 知乎 (zhihu.com) ConfigMap的作用類型: 可以作為卷的數(shù)據(jù)來源:使用 ConfigMap 來配置 Redis | Kubernetes 可以基于文件創(chuàng)建 ConfigMap:配置 Pod 使用 ConfigMap | Kubernetes 可以基于目錄創(chuàng)建 ConfigMap:配置 Pod 使用

    2024年02月15日
    瀏覽(24)
  • Kubernetes系列-配置存儲 ConfigMap & Secret

    在部署應用程序時,我們都會涉及到應用的配置,在容器中,如Docker容器中,如果將配置文件打入容器鏡像,這種行為等同于寫死配置,每次修改完配置,鏡像就得重新構(gòu)建。當然,我們也可以通過掛載包含該文件的卷進行配置管理和修改。而在k8s中,我們要講一種更好的方

    2024年02月14日
    瀏覽(22)
  • Kubernetes 集群管理、Pod 創(chuàng)建、Service 的創(chuàng)建、ConfigMap等 Kubernetes Up and Running Writing Cloud Native Apps

    作者:禪與計算機程序設(shè)計藝術(shù) 本文通過介紹下述的內(nèi)容和知識點,介紹了云原生應用開發(fā)的 Kubernetes 基礎(chǔ)知識。 涉及的內(nèi)容包括 Kubernetes 集群管理、Pod 創(chuàng)建、Service 的創(chuàng)建、ConfigMap 和 Secret 等關(guān)鍵組件的介紹;Kubernetes 工作流程的概述;基于角色的訪問控制(RBAC)、網(wǎng)絡

    2024年02月09日
    瀏覽(27)
  • 學習筆記二十九:K8S配置管理中心Configmap實現(xiàn)微服務配置管理

    學習筆記二十九:K8S配置管理中心Configmap實現(xiàn)微服務配置管理

    Configmap是k8s中的資源對象,用于保存非機密性的配置的,數(shù)據(jù)可以用key/value鍵值對的形式保存,也可通過文件的形式保存。 Configmap能解決哪些問題? 我們在部署服務的時候,每個服務都有自己的配置文件,如果一臺服務器上部署多個服務:nginx、tomcat、apache等,那么這些配置

    2024年02月06日
    瀏覽(17)
  • K8S:配置資源管理 Secret和configMap

    K8S:配置資源管理 Secret和configMap

    (1)Secret 是用來保存密碼、token、密鑰等敏感數(shù)據(jù)的 k8s 資源,這類數(shù)據(jù)雖然也可以存放在 Pod 或者鏡像中,但是放在 secret 中是為了更方便的控制如何使用數(shù)據(jù),并減少暴露的風險 (2)類似掛載的方式,使用的時候調(diào)用即可 ①kubernetes.io/service-account-token 由Kubernetes自動創(chuàng)建

    2024年02月03日
    瀏覽(23)
  • K8S(六):Pod的配置管理——ConfigMap使用

    K8S(六):Pod的配置管理——ConfigMap使用

    ??’?? ??????, ?? ???? ?? ???????????????? ?????????????? ???????? ??????????????, ??????????. ?? ????????????: ?????????? ???????????????????? ?? ????????????????: ??’?? ?????????????????? ????

    2023年04月08日
    瀏覽(19)
  • DevOps系列文章-Kubernetes實現(xiàn)CI與CD配置

    DevOps系列文章-Kubernetes實現(xiàn)CI與CD配置

    基于 Kubernetes 實現(xiàn) CI/CD 配置,其實和往常那些 CI/CD 配置并沒有太大區(qū)別。都是通過 提交代碼,拉取代碼,構(gòu)建代碼,發(fā)布代碼來實現(xiàn)的。 只不過要是通過 K8s 來實現(xiàn)的話,則是需要將構(gòu)建好的代碼打包成鏡像,通過鏡像的方式來運行。 CI/CD 流程圖: 開發(fā)將代碼提交代碼倉

    2024年02月05日
    瀏覽(21)
  • 【kubernetes系列】Kubernetes之configMap

    工作中,在幾乎所有的應用開發(fā)中,都會涉及到配置文件的變更,比如服務需要配置MySQL、Redis等相關(guān)信息。而業(yè)務上線一般要經(jīng)歷開發(fā)環(huán)境、測試環(huán)境、預發(fā)布環(huán)境只到最終的線上環(huán)境,每一個環(huán)境一般都需要其獨立的配置。如果我們不能很好的管理這些配置文件,運維工作

    2024年02月12日
    瀏覽(46)
  • kubernetes存儲-configmap

    kubernetes存儲-configmap

    目錄 一、字面值創(chuàng)建 二、通過文件創(chuàng)建 三、通過目錄創(chuàng)建 四、通過yaml文件創(chuàng)建 五、使用configmap設(shè)置環(huán)境變量 六、使用conigmap設(shè)置命令行參數(shù) 七、通過數(shù)據(jù)卷使用configmap 八、configmap熱更新 ? ? ? 在Kubernetes中,ConfigMap是一種存儲配置數(shù)據(jù)的對象。它允許將配置數(shù)據(jù)分離出來

    2024年02月06日
    瀏覽(22)
  • 云原生Kubernetes系列 | Kubernetes Secret及ConfigMap

    ?? 使用某些鏡像例如mysql,是需要變量來傳遞密

    2024年02月04日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包