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

學(xué)習(xí)筆記二十九:K8S配置管理中心Configmap實(shí)現(xiàn)微服務(wù)配置管理

這篇具有很好參考價(jià)值的文章主要介紹了學(xué)習(xí)筆記二十九:K8S配置管理中心Configmap實(shí)現(xiàn)微服務(wù)配置管理。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Configmap概述

Configmap是k8s中的資源對(duì)象,用于保存非機(jī)密性的配置的,數(shù)據(jù)可以用key/value鍵值對(duì)的形式保存,也可通過(guò)文件的形式保存。

Configmap能解決哪些問(wèn)題?

我們?cè)诓渴鸱?wù)的時(shí)候,每個(gè)服務(wù)都有自己的配置文件,如果一臺(tái)服務(wù)器上部署多個(gè)服務(wù):nginx、tomcat、apache等,那么這些配置都存在這個(gè)節(jié)點(diǎn)上,假如一臺(tái)服務(wù)器不能滿(mǎn)足線上高并發(fā)的要求,需要對(duì)服務(wù)器擴(kuò)容,擴(kuò)容之后的服務(wù)器還是需要部署多個(gè)服務(wù):nginx、tomcat、apache,新增加的服務(wù)器上還是要管理這些服務(wù)的配置,如果有一個(gè)服務(wù)出現(xiàn)問(wèn)題,需要修改配置文件,每臺(tái)物理節(jié)點(diǎn)上的配置都需要修改,這種方式肯定滿(mǎn)足不了線上大批量的配置變更要求。 所以,k8s中引入了Configmap資源對(duì)象,可以當(dāng)成volume掛載到pod中,實(shí)現(xiàn)統(tǒng)一的配置管理。

學(xué)習(xí)筆記二十九:K8S配置管理中心Configmap實(shí)現(xiàn)微服務(wù)配置管理,CKA學(xué)習(xí)筆記,學(xué)習(xí),筆記,kubernetes

  • Configmap是k8s中的資源, 相當(dāng)于配置文件,可以有一個(gè)或者多個(gè)Configmap;
  • Configmap可以做成Volume,k8s pod啟動(dòng)之后,通過(guò) volume 形式映射到容器內(nèi)部指定目錄上;
  • 容器中應(yīng)用程序按照原有方式讀取容器特定目錄上的配置文件。
  • 在容器看來(lái),配置文件就像是打包在容器內(nèi)部特定目錄,整個(gè)過(guò)程對(duì)應(yīng)用沒(méi)有任何侵入。

Configmap應(yīng)用場(chǎng)景

  • 使用k8s部署應(yīng)用,當(dāng)你將應(yīng)用配置寫(xiě)進(jìn)代碼中,更新配置時(shí)也需要打包鏡像,configmap可以將配置信息和docker鏡像解耦,以便實(shí)現(xiàn)鏡像的可移植性和可復(fù)用性,因?yàn)橐粋€(gè)configMap其實(shí)就是一系列配置信息的集合,可直接注入到Pod中給容器使用。configmap注入方式有兩種,一種將configMap做為存儲(chǔ)卷,一種是將configMap通過(guò)env中configMapKeyRef注入到容器中。
  • 使用微服務(wù)架構(gòu)的話,存在多個(gè)服務(wù)共用配置的情況,如果每個(gè)服務(wù)中單獨(dú)一份配置的話,那么更新配置就很麻煩,使用configmap可以友好的進(jìn)行配置共享。

局限性

  • ConfigMap在設(shè)計(jì)上不是用來(lái)保存大量數(shù)據(jù)的。在ConfigMap中保存的數(shù)據(jù)不可超過(guò)1 MiB。如果你需要保存超出此尺寸限制的數(shù)據(jù),可以考慮掛載存儲(chǔ)卷或者使用獨(dú)立的數(shù)據(jù)庫(kù)或者文件服務(wù)。

Configmap創(chuàng)建方法

命令行直接創(chuàng)建

直接在命令行中指定configmap參數(shù)創(chuàng)建,通過(guò)–from-literal指定參數(shù)

kubectl create configmap tomcat-config --from-literal=tomcat_port=8080 --from-literal=server_name=myapp.tomcat.com
kubectl describe configmap tomcat-config
Name:         tomcat-config
Namespace:    default
Labels:       <none>
Annotations:  <none>
Data
====
server_name:
----
myapp.tomcat.com
tomcat_port:
----
8080
Events:  <none>

通過(guò)文件創(chuàng)建

通過(guò)指定文件創(chuàng)建一個(gè)configmap,–from-file=<文件>

vim nginx.conf
server {
  server_name www.nginx.com;
  listen 80;
  root /home/nginx/www/
}
#定義一個(gè)key是www,值是nginx.conf中的內(nèi)容
kubectl create configmap www-nginx --from-file=www=./nginx.conf
kubectl describe configmap www-nginx
Name:         www-nginx
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
www:
----
server {
  server_name www.nginx.com;
  listen 80;
  root /home/nginx/www/
}

指定目錄創(chuàng)建configmap

mkdir test-a
cd test-a/
cat my-server.cnf 
server-id=1
cat my-slave.cnf 
server-id=2

指定目錄創(chuàng)建configmap

kubectl create configmap mysql-config --from-file=/root/test-a/

查看configmap詳細(xì)信息

kubectl describe configmap mysql-config
Name:         mysql-config
Namespace:    default
Labels:       <none>
Annotations:  <none>
Data
====
my-server.cnf:
----
server-id=1
my-slave.cnf:
----
server-id=2
Events:  <none>

編寫(xiě)configmap資源清單YAML文件

cat mysql-configmap.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql
  labels:
    app: mysql
data:
  master.cnf: |
    [mysqld]
    log-bin
    log_bin_trust_function_creators=1
    lower_case_table_names=1
  slave.cnf: |
    [mysqld]
    super-read-only
    log_bin_trust_function_creators=1

使用Configmap

通過(guò)環(huán)境變量引入:使用configMapKeyRef

創(chuàng)建一個(gè)存儲(chǔ)mysql配置的configmap

cat mysql-configmap.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql
  labels:
    app: mysql
data:
    log: "1"
    lower: "1"
kubectl apply -f mysql-configmap.yaml

創(chuàng)建pod,引用Configmap中的內(nèi)容

cat mysql-pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: mysql-pod
spec:
  containers:
  - name: mysql
    image: busybox
    command: [ "/bin/sh", "-c", "sleep 3600" ]
    env:
    - name: log_bin   #定義環(huán)境變量log_bin
      valueFrom: 
        configMapKeyRef:
          name: mysql     #指定configmap的名字
          key: log #指定configmap中的key
    - name: lower   #定義環(huán)境變量lower
      valueFrom:
        configMapKeyRef:
          name: mysql
          key: lower
  restartPolicy: Never
kubectl apply -f mysql-pod.yaml
kubectl exec -it mysql-pod -- /bin/sh
/ # printenv 
log_bin=1
lower=1

通過(guò)環(huán)境變量引入:使用envfrom

cat mysql-pod-envfrom.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: mysql-pod-envfrom
spec:
  containers:
  - name: mysql
    image: busybox
    imagePullPolicy: IfNotPresent
    command: [ "/bin/sh", "-c", "sleep 3600" ]
    envFrom: 
    - configMapRef:
       name: mysql     #指定configmap的名字
  restartPolicy: Never
kubectl apply -f mysql-pod-envfrom.yaml
kubectl exec -it mysql-pod-envfrom -- /bin/sh
/ # printenv
lower=1
log=1

把configmap做成volume,掛載到pod

cat mysql-configmap.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql
  labels:
    app: mysql
data:
    log: "1"
    lower: "1"
    my.cnf: |
      [mysqld]
      Welcome=haha
kubectl apply -f mysql-configmap.yaml
cat mysql-pod-volume.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: mysql-pod-volume
spec:
  containers:
  - name: mysql
    image: busybox
    command: [ "/bin/sh","-c","sleep 3600" ]
    volumeMounts:
    - name: mysql-config
      mountPath: /tmp/config
  volumes:
  - name: mysql-config
    configMap:
      name: mysql
  restartPolicy: Never
kubectl apply -f mysql-pod-volume.yaml
kubectl exec -it mysql-pod-volume -- /bin/sh
/ # cd /tmp/config/
/tmp/config # ls
log    lower   my.cnf

Configmap熱更新

kubectl edit configmap mysql
# 把logs: “1”變成log: “2”

學(xué)習(xí)筆記二十九:K8S配置管理中心Configmap實(shí)現(xiàn)微服務(wù)配置管理,CKA學(xué)習(xí)筆記,學(xué)習(xí),筆記,kubernetes

kubectl exec -it mysql-pod-volume -- /bin/sh
/ # cat /tmp/config/log 
2

發(fā)現(xiàn)log值變成了2,更新生效了
更新 ConfigMap 后:使用該 ConfigMap 掛載的 Env 不會(huì)同步更新
使用該 ConfigMap 掛載的 Volume 中的數(shù)據(jù)需要一段時(shí)間(實(shí)測(cè)大概10秒)才能同步更新文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-741746.html

到了這里,關(guān)于學(xué)習(xí)筆記二十九:K8S配置管理中心Configmap實(shí)現(xiàn)微服務(wù)配置管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 學(xué)習(xí)筆記三十一:k8s安全管理:認(rèn)證、授權(quán)、準(zhǔn)入控制概述SA介紹

    學(xué)習(xí)筆記三十一:k8s安全管理:認(rèn)證、授權(quán)、準(zhǔn)入控制概述SA介紹

    認(rèn)證基本介紹:kubernetes主要通過(guò)APIserver對(duì)外提供服務(wù),那么就需要對(duì)訪問(wèn)apiserver的用戶(hù)做認(rèn)證,如果任何人都能訪問(wèn)apiserver,那么就可以隨意在k8s集群部署資源,這是非常危險(xiǎn)的,也容易被黑客攻擊滲透,所以需要我們對(duì)訪問(wèn)k8s系統(tǒng)的apiserver的用戶(hù)進(jìn)行認(rèn)證,確保是合法的符

    2024年02月06日
    瀏覽(23)
  • 商城-學(xué)習(xí)整理-集群-K8S-集群環(huán)境部署(二十四)

    商城-學(xué)習(xí)整理-集群-K8S-集群環(huán)境部署(二十四)

    MySQL-MMM是Master-MasterReplicationManagerforMySQL(mysql主主復(fù)制管理器)的簡(jiǎn)稱(chēng),是Google的開(kāi)源項(xiàng)目。 (Perl腳本)。MMM基于MySQL Replication做的擴(kuò)展架構(gòu),主要用來(lái)監(jiān)控mysql主主復(fù)制并做失敗轉(zhuǎn)移。其原理是將真實(shí)數(shù)據(jù)庫(kù)節(jié)點(diǎn)的IP(RIP)映射為虛擬IP(VIP)集。mysql-mmm的監(jiān)管端會(huì)提供多個(gè)

    2024年02月11日
    瀏覽(27)
  • 【K8S 】K8S配置資源管理

    【K8S 】K8S配置資源管理

    1、概念 用來(lái)保存密碼。token,敏感的K8S資源 這類(lèi)數(shù)據(jù)可以直接存放在鏡像中,但是放在Secret中可以更方便的控制,減少暴露的風(fēng)險(xiǎn) Secret:保存加密的信息 2、Secret類(lèi)型: docker-registry:存儲(chǔ)docker倉(cāng)庫(kù)的認(rèn)證信息,以及docker的組件認(rèn)證信息(私有) generic:是Secret的默認(rèn)模式,

    2024年01月17日
    瀏覽(23)
  • k8s-配置與存儲(chǔ)-配置管理

    k8s-配置與存儲(chǔ)-配置管理

    在前面已經(jīng)提到,容器的生命周期可能很短,會(huì)被頻繁地創(chuàng)建和銷(xiāo)毀。那么容器在銷(xiāo)毀時(shí),保存在容器中的數(shù)據(jù)也會(huì)被清除。這種結(jié)果對(duì)用戶(hù)來(lái)說(shuō),在某些情況下是不樂(lè)意看到的。為了持久化保存容器的數(shù)據(jù),kubernetes引入了Volume的概念。 Volume是Pod中能夠被多個(gè)容器訪問(wèn)的共

    2024年02月21日
    瀏覽(14)
  • K8S學(xué)習(xí)指南(49)-k8s的證書(shū)管理

    Kubernetes(K8s)是一款開(kāi)源的容器編排平臺(tái),具有強(qiáng)大的集群管理和安全機(jī)制。在Kubernetes集群中,證書(shū)管理是一個(gè)關(guān)鍵的安全組成部分,用于保障集群通信的安全性和可信度。本文將深入討論Kubernetes中的證書(shū)管理,包括證書(shū)的生成、頒發(fā)、續(xù)期以及如何在實(shí)際應(yīng)用中進(jìn)行合理

    2024年01月17日
    瀏覽(52)
  • k8s學(xué)習(xí)筆記(二):k8s的組件介紹

    k8s學(xué)習(xí)筆記(二):k8s的組件介紹

    Master:是 集群的網(wǎng)關(guān)和中樞樞紐 ,主要作用: 暴露API接口,跟蹤其他服務(wù)器的健康狀態(tài)、以最優(yōu)方式調(diào)度負(fù)載,以及編排其他組件之間的通信 。單個(gè)的Master節(jié)點(diǎn)可以完成所有的功能,但是考慮單點(diǎn)故障的痛點(diǎn),生產(chǎn)環(huán)境中通常要部署多個(gè)Master節(jié)點(diǎn),組成Cluster。包括所有的

    2024年02月04日
    瀏覽(53)
  • k8s---配置資源管理

    k8s---配置資源管理

    目錄 內(nèi)容預(yù)知 secret資源配置 secert的幾種模式 pod如何來(lái)引用secret 陳述式創(chuàng)建secret 聲明式+base64編碼配置secret 將secret用vlumes的方式掛載到pod中 傳參的方式將環(huán)境變量導(dǎo)入pod 如何通過(guò)secret加密方式獲取倉(cāng)庫(kù)密碼 configmap的資源配置 陳述式創(chuàng)建configmap資源配置 聲明式配置configma

    2024年01月21日
    瀏覽(65)
  • k8s配置資源管理

    k8s配置資源管理

    Secret Configmap Secret :保存密碼,token,敏感的k8s資源 這類(lèi)數(shù)據(jù)可以存放在鏡像當(dāng)中,但是防止secret當(dāng)中可以更方便控制,減少暴露的風(fēng)險(xiǎn) 保存加密的信息 Docker-registry: 存儲(chǔ)docker倉(cāng)庫(kù)認(rèn)證信息,以及docker組件認(rèn)證成功(私有) Generic: 是secret的默認(rèn)模式,opaque base64加密編碼的

    2024年01月21日
    瀏覽(29)
  • (五)k8s實(shí)戰(zhàn)-配置管理

    (五)k8s實(shí)戰(zhàn)-配置管理

    使用 kubectl create configmap -h 查看示例,構(gòu)建 configmap 對(duì)象 案例1:使用鍵值對(duì)類(lèi)型的ConfigMap 添加到env文件內(nèi) 使用: 案例2:使用文件類(lèi)型的ConfigMap 添加到指定目錄內(nèi) 使用: 與 ConfigMap 類(lèi)似,用于存儲(chǔ)配置信息,但是主要用于存儲(chǔ)敏感信息、需要加密的信息,Secret 可以提供數(shù)據(jù)

    2024年02月11日
    瀏覽(11)
  • k8s- 配置資源管理

    配置資源管理 //Secret Secret 是用來(lái)保存密碼、token、密鑰等敏感數(shù)據(jù)的 k8s 資源,這類(lèi)數(shù)據(jù)雖然也可以存放在 Pod 或者鏡像中,但是放在 Secret 中是為了更方便的控制如何使用數(shù)據(jù),并減少暴露的風(fēng)險(xiǎn)。 Secret 有四種類(lèi)型:? ●kubernetes.io/service-account-token:由 Kubernetes 自動(dòng)創(chuàng)建,

    2024年02月16日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包