<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 1. 作用 > k8s secret用于存儲密碼、秘鑰等敏感信息,將加密信息存儲到etcd中,有三種實現形式 **1. Opaque** base64 編碼格式的 Secret,用來存儲密碼、密鑰等;但數據也可以通過base64 –decode解碼得到原始數據,所有加密性很弱。Opaque 類型的數據是一個 map 類型,要求value是base64編碼。 > 手動創建base64加密 ``` $ echo -n 'admin' | base64 YWRtaW4= ``` ``` $ echo -n '1f2d1e2e67df' | base64 MWYyZDFlMmU2N2Rm ``` 解密 ``` $ echo 'MWYyZDFlMmU2N2Rm' | base64 --decode 1f2d1e2e67df ``` 這里需要注意的是,像這樣創建的 Secret 對象,它里面的內容僅僅是經過了轉碼,而并沒有被加密。在真正的生產環境中,你需要在 Kubernetes 中開啟 Secret 的加密插件,增強數據的安全性。 **2. Service Account** > 用來訪問Kubernetes API,由Kubernetes自動創建,并且會自動掛載到Pod的 **/run/secrets/kubernetes.io/serviceaccount** 目錄中。 > Service Account是k8s的一種賬戶,用于訪問Api server時候進行登錄和鑒權 **3. kubernetes.io/dockerconfigjson** 用來存儲私有docker registry的認證信息。如果想要訪問私有鏡像倉庫 `kubectl create secret docker-registry myregistry --docker-server=DOCKER_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL` ``` apiVersion: v1 kind: Pod metadata: name: foo spec: containers: - name: foo image: 192.168.1.100:5000/test:v1 imagePullSecrets: - name: myregistry ``` # 2. 創建 ## 2.1 通過命令創建 `kubectl create secret` **1. 本地文件** user.txt和password.txt文件內容如下: ``` [root@master secretDir]# echo 'admin' > user.txt [root@master secretDir]# echo 'admin' > password.txt [root@master secretDir]# kubectl create secret generic user --from-file=./user.txt secret/user created [root@master secretDir]# kubectl create secret generic pass --from-file=./password.txt secret/pass created [root@master secretDir]# kubectl get secret NAME TYPE DATA AGE default-token-fb8rp kubernetes.io/service-account-token 3 8d pass Opaque 1 33s user Opaque 1 54s [root@master secretDir]# ``` **2. literal(鍵值對)** ``` $ kubectl create secret generic user --from-literal=username=admin $ kubectl create secret generic pass --from-literal=password=1f2d1e2e67df ``` **3. 通過yaml文件創建** #secret.yaml ``` apiVersion: v1 kind: Secret metadata: name: mysecret type: Opaque data: user: YWRtaW4= pass: MWYyZDFlMmU2N2Rm ``` > 注:通過yaml創建Opaque類型的Secret值需要base64編碼 創建secret `kubectl create -f secret.yaml` # 3. 使用 ## 3.1 通過Volume掛載的方式 ``` #test-projected-volume.yaml apiVersion: v1 kind: Pod metadata: name: test-projected-volume spec: containers: - name: test-secret-volume image: busybox args: - sleep - "86400" volumeMounts: - name: mysql-cred mountPath: "/projected-volume" readOnly: true volumes: - name: mysql-cred projected: sources: - secret: name: user - secret: name: pass ``` 創建pod對象 `$ kubectl create -f test-projected-volume.yaml` 當 Pod 變成 Running 狀態之后,我們再驗證一下這些 Secret 對象是不是已經在容器里了: ``` $ kubectl exec -it test-projected-volume -- /bin/sh $ ls /projected-volume/ user pass $ cat /projected-volume/user admin $ cat /projected-volume/pass 1f2d1e2e67df ``` ## 3.2 通過環境變量 ``` #pod-secret-env.yaml apiVersion: v1 kind: Pod metadata: name: pod-secret-env spec: containers: - name: myapp image: busybox args: - sleep - "86400" env: - name: SECRET_USERNAME valueFrom: secretKeyRef: name: mysecret key: user - name: SECRET_PASSWORD valueFrom: secretKeyRef: name: mysecret key: pass restartPolicy: Never ``` 創建pod $kubectl create -f pod-secret-env.yaml pod運行成功后: $ kubectl exec -it pod-secret-env -- /bin/sh 進入容器中查看環境變量 不同點: Secret 可以被 ServerAccount 關聯 Secret 可以存儲 docker register 的鑒權信息,用在 ImagePullSecret 參數中,用于拉取私有倉庫的鏡像 Secret 支持 Base64 加密 Secret 分為 kubernetes.io/service-account-token、kubernetes.io/dockerconfigjson、Opaque 三種類型,而 Configmap 不區分類型
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看