欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

K8S集群范圍使用imagePullSecret示例詳解

 更新時(shí)間:2022年11月30日 14:38:38   作者:東風(fēng)微鳴  
在這篇文章中,我將向你展示如何在?Kubernetes?中使用?imagePullSecrets示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

imagePullSecrets 簡(jiǎn)介

Kubernetes 在每個(gè) Pod 或每個(gè) Namespace 的基礎(chǔ)上使用 imagePullSecrets 對(duì)私有容器注冊(cè)表進(jìn)行身份驗(yàn)證。要做到這一點(diǎn),你需要?jiǎng)?chuàng)建一個(gè)秘密與憑據(jù):

{% note warning %} ?? 警告

現(xiàn)在隨著公共鏡像倉(cāng)庫(kù)(如:docker.io 等)開(kāi)始對(duì)匿名用戶進(jìn)行限流,配置公共倉(cāng)庫(kù)的身份認(rèn)證也變得有必要。 {% endnote %}

kubectl create secret docker-registry image-pull-secret \
  -n <your-namespace> \
  --docker-server=<your-registry-server> \
  --docker-username=<your-name> \
  --docker-password=<your-password> \
  --docker-email=<your-email>

例如配置 docker.io 的 pull secret:

kubectl create secret docker-registry image-pull-secret-src \
        -n imagepullsecret-patcher \
        --docker-server=docker.io \
        --docker-username=caseycui \
        --docker-password=c874d654-xxxx-40c6-xxxx-xxxxxxxx89c2 \
        --docker-email=cuikaidong@foxmail.com

{% note info %} ?? 信息

如果 docker.io 啟用了「2 階段認(rèn)證」,可能需要?jiǎng)?chuàng)建 Access Token(對(duì)應(yīng)上面的 docker-password,創(chuàng)建鏈接在這里:賬號(hào) -> 安全 {% endnote %}

現(xiàn)在我們可以在一個(gè) pod 中使用這個(gè) secret 來(lái)下載 docker 鏡像:

apiVersion: v1
kind: Pod
metadata:
  name: busybox
  namespace: private-registry-test
spec:
  containers:
    - name: my-app
      image: my-private-registry.infra/busybox:v1
  imagePullSecrets:
    - name: image-pull-secret

另一種方法是將它添加到命名空間的默認(rèn) ServiceAccount 中:

kubectl patch serviceaccount default \
  -p "{\"imagePullSecrets\": [{\"name\": \"image-pull-secret\"}]}" \
  -n &lt;your-namespace&gt;

在 K8S 集群范圍使用 imagePullSecrets

我找到了一個(gè)叫做 imagepullsecret-patch 的工具,它可以在你所有的命名空間上做這個(gè):

wget https://raw.githubusercontent.com/titansoft-pte-ltd/imagepullsecret-patcher/185aec934bd01fa9b6ade2c44624e5f2023e2784/deploy-example/kubernetes-manifest/1_rbac.yaml
wget https://raw.githubusercontent.com/titansoft-pte-ltd/imagepullsecret-patcher/master/deploy-example/kubernetes-manifest/2_deployment.yaml
kubectl create ns imagepullsecret-patcher

編輯下載的文件,一般需要修改image-pull-secret-src的內(nèi)容,這個(gè) pull secret 就會(huì)應(yīng)用到 K8S 集群范圍。

nano 1_rbac.yaml
nano 2_deployment.yaml
kubectl apply -f 1_rbac.yaml
kubectl apply -f 2_deployment.yaml

這里背后創(chuàng)建的資源有:

NameSpace

RBAC 權(quán)限相關(guān):

imagepullsecret-patcher ServiceAccount

imagepullsecret-patcher ClusterRole,具有對(duì) service account 和 secret 的所有權(quán)限

imagepullsecret-patcher ClusterRoleBinding,為 imagepullsecret-patcher ServiceAccount 賦予 imagepullsecret-patcher ClusterRole 的權(quán)限。

  • 全局 pull secret image-pull-secret-src,里面是你的 K8S 全局包含的所有的鏡像庫(kù)地址和認(rèn)證信息。
  • Deployment imagepullsecret-patcher,指定 ServiceAccount 是 imagepullsecret-patcher 就有了操作 service account 和 secret 的所有權(quán)限,并將上面的 secret 掛載到 Deployment pod 內(nèi)。

可以包含多個(gè)鏡像庫(kù)地址和認(rèn)證信息,如:

{
    "auths": {
        "docker.io": {
            "username": "caseycui",
            "password": "c874xxxxxxxxxxxxxxxx1f89c2",
            "email": "cuikaidong@foxmail.com",
            "auth": "Y2FzxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxWMy"
        },
        "quay.io": {
            "auth": "ZWFzdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxlXWmpNPQ==",
            "email": ""
        }
    }
}

base64 編碼后寫(xiě)到 secret 的 .dockerconfigjson 字段即可:

apiVersion: v1
kind: Secret
metadata:
  name: image-pull-secret-src
  namespace: imagepullsecret-patcher
data:
  .dockerconfigjson: >-
    eyJhdXRocyI6eyJkb2NrZXIuaW8iOnsidXNlcm5hbWUiOiJjYXNleWN1aSIsInB.............................................IiwiZW1haWwiOiIifX19
type: kubernetes.io/dockerconfigjson

啟動(dòng)后的 pod 會(huì)在所有 NameSpace 下創(chuàng)建 image-pull-secret secret(內(nèi)容來(lái)自于image-pull-secret-src) 并把它 patch 到 default service account 及該 K8S 集群的所有 ServiceAccount 里,日志如下:

time="2022-01-12T16:07:30Z" level=info msg="Application started"
time="2022-01-12T16:07:30Z" level=info msg="[default] Created secret"
time="2022-01-12T16:07:30Z" level=info msg="[default] Patched imagePullSecrets to service account [default]"
time="2022-01-12T16:07:30Z" level=info msg="[kube-system] Created secret"
time="2022-01-12T16:07:31Z" level=info msg="[kube-system] Patched imagePullSecrets to service account [node-controller]"
...
time="2022-01-12T16:07:37Z" level=info msg="[kube-public] Created secret"
time="2022-01-12T16:07:37Z" level=info msg="[kube-public] Patched imagePullSecrets to service account [default]"
time="2022-01-12T16:07:38Z" level=info msg="[kube-node-lease] Created secret"
time="2022-01-12T16:07:38Z" level=info msg="[kube-node-lease] Patched imagePullSecrets to service account [default]"
time="2022-01-12T16:07:38Z" level=info msg="[prometheus] Created secret"
time="2022-01-12T16:07:39Z" level=info msg="[prometheus] Patched imagePullSecrets to service account [default]"
...
time="2022-01-12T16:07:41Z" level=info msg="[imagepullsecret-patcher] Created secret"
time="2022-01-12T16:07:41Z" level=info msg="[imagepullsecret-patcher] Patched imagePullSecrets to service account [default]"
time="2022-01-12T16:07:41Z" level=info msg="[imagepullsecret-patcher] Patched imagePullSecrets to service account [imagepullsecret-patcher]"

今后我們只需要更新 image-pull-secret-src 這一個(gè)即可了。?????????

Kyverno policy

Kyverno policy 可以實(shí)現(xiàn)同樣的效果:

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: sync-secret
spec:
  background: false
  rules:
  - name: sync-image-pull-secret
    match:
      resources:
        kinds:
        - Namespace
    generate:
      kind: Secret
      name: image-pull-secret
      namespace: "{{request.object.metadata.name}}"
      synchronize: true
      clone:
        namespace: default
        name: image-pull-secret
---
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: mutate-imagepullsecret
spec:
  rules:
    - name: mutate-imagepullsecret
      match:
        resources:
          kinds:
          - Pod
      mutate:
        patchStrategicMerge:
          spec:
            imagePullSecrets:
            - name: image-pull-secret  ## imagePullSecret that you created with docker hub pro account
            (containers):
            - (image): "*" ## match all container images

以上就是K8S集群范圍使用 imagePullSecret示例詳解的詳細(xì)內(nèi)容,更多關(guān)于K8S使用 imagePullSecret的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:

相關(guān)文章

  • K8S集群范圍使用imagePullSecret示例詳解

    K8S集群范圍使用imagePullSecret示例詳解

    在這篇文章中,我將向你展示如何在?Kubernetes?中使用?imagePullSecrets示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Kubernetes部署實(shí)例并配置Deployment、網(wǎng)絡(luò)映射、副本集

    Kubernetes部署實(shí)例并配置Deployment、網(wǎng)絡(luò)映射、副本集

    這篇文章介紹了Kubernetes部署實(shí)例并配置Deployment、網(wǎng)絡(luò)映射、副本集的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Kubernetes Informer數(shù)據(jù)存儲(chǔ)Index與Pod分配流程解析

    Kubernetes Informer數(shù)據(jù)存儲(chǔ)Index與Pod分配流程解析

    這篇文章主要為大家介紹了Kubernetes Informer數(shù)據(jù)存儲(chǔ)Index與Pod分配流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Docker與K8s關(guān)系介紹不會(huì)Docker也可以使用K8s

    Docker與K8s關(guān)系介紹不會(huì)Docker也可以使用K8s

    想學(xué)K8s,必須得先學(xué)會(huì)Docker嗎?這是很多網(wǎng)友在開(kāi)始有想法想要學(xué)?K8s的時(shí)候都會(huì)冒出來(lái)的想法,要回答這個(gè)問(wèn)題,我們需要先搞清楚?Docker?和?K8s?他們的角色是什么,相互之間是什么關(guān)系
    2022-06-06
  • Kubernetes控制節(jié)點(diǎn)的部署

    Kubernetes控制節(jié)點(diǎn)的部署

    這篇文章介紹了Kubernetes控制節(jié)點(diǎn)的部署,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 部署k8s集群的超詳細(xì)實(shí)踐步驟

    部署k8s集群的超詳細(xì)實(shí)踐步驟

    k8s是一個(gè)可移植的、可擴(kuò)展的開(kāi)源平臺(tái),用于管理容器化的工作負(fù)載和服務(wù),可以促進(jìn)聲明式配置和自動(dòng)化,下面這篇文章主要給大家介紹了關(guān)于部署k8s集群的實(shí)踐步驟,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Kubernetes中Deployment的升級(jí)與回滾

    Kubernetes中Deployment的升級(jí)與回滾

    這篇文章介紹了Kubernetes中Deployment的升級(jí)與回滾?,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • kubectl中g(shù)et命令及使用示例總結(jié)

    kubectl中g(shù)et命令及使用示例總結(jié)

    這篇文章主要為大家介紹了kubectl中g(shù)et命令及使用示例的總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • 配置Kubernetes外網(wǎng)訪問(wèn)集群

    配置Kubernetes外網(wǎng)訪問(wèn)集群

    這篇文章介紹了配置Kubernetes外網(wǎng)訪問(wèn)集群的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • CKAD認(rèn)證中部署k8s并配置Calico插件

    CKAD認(rèn)證中部署k8s并配置Calico插件

    這篇文章介紹了CKAD認(rèn)證中部署k8s并配置Calico插件的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03

最新評(píng)論