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

k8s的配置資源管理

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

Secret

Secret用來保存密碼、token密鑰以及一些敏感的k8s資源。這類數(shù)據(jù)雖然可以存放在鏡像當中,但是放在secret當中可以更方便控制。減少暴露的風險。

Secret的作用:保存加密的信息

Secret的類型

docker-registry()主要用于存儲docker倉庫的認證信息,以及docker組件認證信息。(私有)

generic(jienairuike)是Secret的默認模式。類型是Qpaque。是base64加密編碼的secret。用于用戶自定義的密碼、密鑰等等。

tls表示TLS/SSL,用于存儲證書和密鑰、存儲https證書和密鑰隊

系統(tǒng)自建的:kubernetes.io/service-account-token來訪問系統(tǒng)的apiserver。pod會默認使用kubernetes.io/service-account-token創(chuàng)建的secret和apiserver進行通信。自動掛載到pod的/run/serect/kubernetes.io/service-account

如何創(chuàng)建secret?

1、指定文件提取信息

陳述式的創(chuàng)建方式:

#創(chuàng)建命令
kubectl create secret generic mysecret --from-file=/opt/xiao.txt --from-file=/opt/xiaobu.txt

#查看有哪些secret文件
kubectl get secrets
NAME                                 TYPE                                  DATA   AGE
default-token-sgjrp                  kubernetes.io/service-account-token   3      18d
mysecret                             Opaque                                2      11s
nfs-client-provisioner-token-rlg96   kubernetes.io/service-account-token   3      20h

#查看指定secret的詳細信息
kubectl describe secrets mysecret
Name:         mysecret
Namespace:    default
Labels:       <none>
Annotations:  <none>

Type:  Opaque

Data
====
xiao.txt:    4 bytes
xiaobu.txt:  4 bytes

#以base64的加密方式生成文件內(nèi)部數(shù)據(jù)
echo xiaobu.txt | base64
echo xiao.txt | base64

陳述式需要指定資源創(chuàng)建

默認類型的加密方式:Opaque加密類型

聲明式的創(chuàng)建方式:

apiVersion: v1
kind: Secret
metadata:
  name: mysecret1
type:
  Opaque
data:
  xiaobu: eGlhb2J1LnR4dAo=
  xiao: eGlhby50eHQK

data內(nèi)保存的是加密的內(nèi)容

pod如何來引用Secret?

1、 掛載方式。將secret掛載到pod當中的一個或者多個容器上的卷里面。

2、 把secret作為容器的環(huán)境變量

3、 docker-registry可以作為集群拉取鏡像時使用。使用secret可以實現(xiàn)免密登錄。

掛載的方式來實現(xiàn)

實驗舉例:

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: nginx
    image: nginx:1.22
    volumeMounts:
    - name: secrets
      mountPath: "/etc/secret"
      readOnly: false
  volumes:
  - name: secrets
    secret:
      secretName: mysecret
#將創(chuàng)建好的mysecret加密內(nèi)容和容器內(nèi)的指定目錄進行掛載

執(zhí)行命令
kubectl apply -f sercet.yaml
進入容器
kubectl exec -it mypod bash
查看掛載目錄
root@mypod:/# cd /etc/secret/
root@mypod:/etc/secret# ls
xiao.txt  xiaobu.txt
root@mypod:/etc/secret# cat xiao.txt
123
root@mypod:/etc/secret# cat xiaobu.txt 
456

保存內(nèi)容是加密內(nèi)容,容器內(nèi)部可以解密直接引用。

把secret作為容器的環(huán)境變量

[root@master01 opt]# echo 小布 | base64
5bCP5biDCg==
[root@master01 opt]# echo 小凱 | base64
5bCP5YevCg==

創(chuàng)建secret

apiVersion: v1
kind: Secret
metadata:
  name: mysecret1
type:
  Opaque
data:
  xiaobu: 5bCP5biDCg==
  xiaokai: 5bCP5YevCg==


創(chuàng)建pod
apiVersion: v1
kind: Pod
metadata:
  name: mypod1
spec:
  containers:
  - name: nginx
    image: nginx:1.22
    env:
    - name: USER
      valueFrom:
        secretKeyRef:
          name:  mysecret1
          key: xiaobu
    - name: USER1
      valueFrom:
        secretKeyRef:
          name: mysecret1
          key: xiaokai
#我給nginx1.22這個容器里面?zhèn)鲀蓚€環(huán)境變量,這兩個變量的值從secret來,分別是兩條mysecret1的加密信息


進入容器查看
root@mypod1:/# env              
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_SERVICE_PORT=443
HOSTNAME=mypod1
PWD=/
PKG_RELEASE=1~bullseye
HOME=/root
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
USER1=小凱

NJS_VERSION=0.7.11
TERM=xterm
USER=小布

SHLVL=1
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
KUBERNETES_SERVICE_HOST=10.96.0.1
KUBERNETES_PORT=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_PORT=443
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NGINX_VERSION=1.22.1
_=/usr/bin/env

docker-registry

kubectl create secret docker-registry myharbor --docker-server=20.0.0.73 --docker-username=admin --docker-password=123456



apiVersion: v1
kind: Pod
metadata:
  name: mypod2
spec:
  containers:
  - name: nginx1
    image: hub.test.com/library/nginx:v1
  imagePullSecrets:
  - name: myharbor
  nodeName: node02


kubectl get pod
NAME                              READY   STATUS    RESTARTS   AGE
mypod                             1/1     Running   0          83m
mypod1                            1/1     Running   0          73m
mypod2                            1/1     Running   0          39s
nfs-provisioner-cbbfd74c8-5tr7r   1/1     Running   0          22h
nginx1-68c5d494c9-9zwhd           1/1     Running   0          103m
nginx1-68c5d494c9-bbbds           1/1     Running   0          103m
nginx1-68c5d494c9-mg8ms           1/1     Running   0          103m

secret三種方式:

陳述式創(chuàng)建

聲明式

引用方式:

掛載使用

設定環(huán)境變量

docker-registry

ConfigMap

保存的是不需要加密的信息。configmap是1.2引用的功能,應用程序會配置文件,命令參數(shù)。以及環(huán)境變量中讀取信息。

通過configmap在創(chuàng)建容器時,給他注入我們需要的配置信息。既可以是單個的屬性也可也是整個文件的配置文件。

陳述式

kubectl create configmap person --from-file=/opt/configmap/xiaobu.txt --from-file=/opt/configmap/xiaokai.txt


ubectl describe cm person 
Name:         person
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
xiaobu.txt:
----
xiaobu=....
xiaokai=gao

xiaokai.txt:
----
xiao=bu
xiao=kai

Events:  <none>

指定文件創(chuàng)建,可以是一個,也可以是多個。

kubectl create configmap person1 --from-literal=xiaobu=bu --from-literal=xiaokai=kai


[root@master01 opt]# kubectl get cm
NAME               DATA   AGE
kube-root-ca.crt   1      18d
person             2      2m28s
person1            2      6s

聲明式

apiVersion: v1
kind: ConfigMap
metadata:
  name: person
data:
  xiaobu: bu
  xiaokai: kai
#configmap是鍵值對形式


kubectl describe cm person 
Name:         person
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
xiaobu:
----
bu
xiaokai:
----
kai
Events:  <none>

引用方式

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: nginx
    image: nginx:1.22
    env:
      - name: USER1
        valueFrom:
          configMapKeyRef:
            name: person
            key: xiaobu
      - name: USER2
        valueFrom:
          configMapKeyRef:
            name: person
            key: xiaokai

kubectl get pod
NAME                              READY   STATUS    RESTARTS   AGE
mypod                             1/1     Running   0          6s
nfs-provisioner-cbbfd74c8-5tr7r   1/1     Running   0          22h


進入容器查看
root@mypod:/# env
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_SERVICE_PORT=443
HOSTNAME=mypod
PWD=/
PKG_RELEASE=1~bullseye
HOME=/root
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
USER1=bu
USER2=kai
NJS_VERSION=0.7.11
TERM=xterm
SHLVL=1
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
KUBERNETES_SERVICE_HOST=10.96.0.1
KUBERNETES_PORT=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_PORT=443
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NGINX_VERSION=1.22.1
_=/usr/bin/env

掛載的方式

數(shù)據(jù)卷使用comfigmap

準備一個nginx.conf的配置文件
worker_processes  2;
events {
    worker_connections  1024;
}
http {
    default_type application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       8081;
        server_name  localhost;
        charset utf-8;
     location / {
         root   html;
         index  index.html index.htm;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
}



kubectl create configmap nginx-con --from-file=/opt/configmap/nginx.conf

創(chuàng)建yaml文件
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx1
  labels:
    app: nginx1
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx1
  template:
    metadata:
      labels:
        app: nginx1
    spec:
      containers:
      - name: nginx1
        image: nginx:1.22
        ports:
        - containerPort: 8081
        volumeMounts:
          - name: nginx-config
            mountPath: /etc/nginx/
          - name: nginx-mount
            mountPath: /usr/share/nginx/html
      volumes:
      - name: nginx-config
        configMap:
          name: nginx-con
      - name: nginx-mount
        hostPath:
          path: /opt/html
          type: DirectoryOrCreate


訪問不了,出現(xiàn)404,可能是訪問頁面路徑不對
修改訪問路徑之后
kubectl patch deployment nginx1 --patch '{"spec": {"template":{"metadata": {"annotations": {"version/config": "20240116"}}}}}'

curl 10.244.0.42:8081
123

熱更新的特點:

1、 通過數(shù)據(jù)卷的形式將配置文件傳給pod內(nèi)的容器

2、 在pod運行的情況下對configmap的配置信息進行修改。直接生效反應到容器當中。

熱更新pod不會重啟。如果有pod有副本都會一并更改。

3、 configmap的熱更新不會觸發(fā)pod的滾動更新機制。

version/config觸發(fā)滾動更新機制

kubectal patch deployment nginx1 --path '{"spec": {"template":{"metadata": {"annotations": {"version/config": "20240116"}}}}}'

通過命令觸發(fā)pod滾動更新,將pod重新拉起,將修改過的configmap重新傳遞給pod內(nèi)重新拉起的容器。

secret:主要作用是保存加密文件。使用的方式就是掛載方式。

configMap:把配置信息傳遞給容器。主要使用方式也是掛載。

configMap的熱更新:熱更新可以直接反應到容器的內(nèi)部。也不會觸發(fā)pod的更新機制。如果不是需要重啟的配置。都可以直接生效。

可以通過version/config的方式來觸發(fā)滾動更新機制

需要重啟的,可以重啟pod

更新:就是把配置信息重新傳遞到容器內(nèi)。重啟也是一樣的。

在工作中configMap就是將配置信息傳遞給容器。通過鍵值對形式保存的非加密信息。

secret和configMap的區(qū)別

secret是加密的信息。

configMap是非加密信息??梢詡鬟f配置信息給容器文章來源地址http://www.zghlxwxcb.cn/news/detail-797309.html

到了這里,關(guān)于k8s的配置資源管理的文章就介紹完了。如果您還想了解更多內(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)文章

  • k8s配置資源管理

    k8s配置資源管理

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

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

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

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

    k8s---配置資源管理

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

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

    Secret用來保存密碼、token密鑰以及一些敏感的k8s資源。這類數(shù)據(jù)雖然可以存放在鏡像當中,但是放在secret當中可以更方便控制。減少暴露的風險。 Secret的作用:保存加密的信息 docker-registry()主要用于存儲docker倉庫的認證信息,以及docker組件認證信息。(私有) generic(jienairuike)是

    2024年01月17日
    瀏覽(22)
  • [云原生] k8s配置資源管理

    [云原生] k8s配置資源管理

    1.1 Secret配置的相關(guān)說明? Secret 是用來保存密碼、token、密鑰等敏感數(shù)據(jù)的 k8s 資源,這類數(shù)據(jù)雖然也可以存放在 Pod 或者鏡像中,但是放在 Secret 中是為了更方便的控制如何使用數(shù)據(jù),并減少暴露的風險。 Secret 有三種類型:? ●kubernetes.io/service-account-token:由 Kubernetes 自動創(chuàng)

    2024年03月13日
    瀏覽(41)
  • 【云原生】k8s配置資源管理

    【云原生】k8s配置資源管理

    Secret 是用來保存密碼、token、密鑰等敏感數(shù)據(jù)的 k8s 資源,這類數(shù)據(jù)雖然也可以存放在 Pod 或者鏡像中,但是放在 Secret 中是為了更方便的控制如何使用數(shù)據(jù),并減少暴露的風險 Secret 有三種類型:? ● kubernetes.io/service-account-token :由 Kubernetes 自動創(chuàng)建,用來訪問 APIServer 的

    2024年02月13日
    瀏覽(28)
  • 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)
  • Kubernetes(K8s)與虛擬GPU(vGPU):實現(xiàn)高效管理和利用GPU資源的最佳實踐

    目錄 第一節(jié):Kubernetes簡介 第二節(jié):虛擬GPU(vGPU)簡介 第三節(jié):Kubernetes中的GPU資源管理 第四節(jié):虛擬GPU(vGPU)的部署和配置 第五節(jié):GPU資源調(diào)度和負載均衡 第六節(jié):GPU資源監(jiān)控和調(diào)優(yōu) 結(jié)論: 可先閱讀一下參考: kubernetes如何將異構(gòu)GPU(如NVIDIA、海光、寒武紀)統(tǒng)一協(xié)同

    2024年04月13日
    瀏覽(31)
  • K8S資源管理之計算資源管理

    K8S資源管理之計算資源管理

    ????????以CPU為例,下圖顯示了未設置Limits與設置了Requests和Limits的CPU使用率的區(qū)別 ???????盡管Requests和Limits只能被設置到容器上,但是設置了Pod級別的Requests和Limits能大大提高管理Pod的便利性和靈活性,因此在Kubernetes中提供了對Pod級別的Requests和Limits的配置。對于CP

    2024年04月15日
    瀏覽(23)
  • k8s 資源管理方式

    k8s中資源管理方式可以劃分為下面的幾種:命令式對象管理、命令式對象配置、聲明式對象配置。 命令式對象管理 命令式對象管理:直接使用命令的方式來操作k8s資源, 這種方式操作簡單,但是無法審計和追蹤。 命令式對象配置 通過命令和配置文件來操作k8s資源,這種方式

    2024年02月07日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包