1. ホーム
  2. docker

[解決済み] Kubernetesの秘密を解き明かす

2022-12-09 14:45:24

質問

Kubernetes/Dockerのセットアップを引き継いだのですが、DBパスワードに関連する何かを変更して誤ってPodをクラッシュさせてしまいました。

私はこれをトラブルシュートしようとしています。

KubernetesやDockerの経験があまりないので、まだ勉強中です。

値はdb-user-passのクレデンシャル内に含まれていると思いますが、これはOpaqueタイプのsecretです。

記述しています。

kubectl describe secrets/db-user-pass
Name:         db-user-pass
Namespace:    default
Labels:       <none>
Annotations:  <none>

Type:  Opaque

Data
====
password:  16 bytes
username:  13 bytes

となっていますが、このsecretからどのようにデータを取得するのか、全く手がかりがありません。Kubernetesのサイトにある例では、base64でエンコードされた文字列を想定しているようですが、それすらも取得できないようです。どうすればこの値を取得できるのでしょうか?

どのように解決するのですか?

この場合 kubectl get secrets/db-user-pass -o yaml または -o json ここで、base64 エンコードされた usernamepassword . そして、その値をコピーして、次のような方法でデコードすることができます。 echo <ENCODED_VALUE> | base64 -D (Mac OS X)のようになります。

これをよりコンパクトなワンライナーにしたもの。

kubectl get secrets/db-user-pass --template={{.data.password}} | base64 -D

で、同様にユーザー名も

kubectl get secrets/db-user-pass --template={{.data.username}} | base64 -D

注意:GNU/Linuxでは、base64フラグは -d であり -D .