
Kubernetes サービスやポッドを構築・デプロイする際には、パスワード、API キー、サードパーティのアクセストークンといったシークレットを使用しなければならない場合があります。こうした機密情報をマニフェストに保存することは、セキュリティ上の問題につながる可能性があるため、絶対に避けるべきです。Kubernetes デプロイメントは多くの可動部分で構成されているため、攻撃範囲をさらに拡張することは避けるべきです。
参照: 採用キット: バックエンド開発者 (TechRepublic Premium)
Kubernetes Secretsを作成・管理するにはどうすればいいでしょうか?Kubernetes管理プラットフォームとしてPortainerをご利用なら、非常に強力なSecrets機能が搭載されているので安心です。このチュートリアルでは、PortainerのKubernetes Secretsツールがどのように作業の負担を軽減してくれるかをご紹介します。
ジャンプ先:
- Portainerでシークレットを作成するために必要なもの
- Portainer で最初の Kubernetes シークレットを作成する方法
- 新しいキーの使い方
- Kubernetes Secretsを簡単に
Portainerでシークレットを作成するために必要なもの
この手順を実行するには、Portainer の実行中のインスタンスと、デプロイメント権限を持つユーザーが必要です。また、保存するためのシークレットも必要です。
Portainer で最初の Kubernetes シークレットを作成する方法
まず最初に、Portainerインスタンスにログインする必要があります。ログインしたら、Kubernetes環境を選択します。おそらく「Local」と表示されているはずです。左側のナビゲーションから「ConfigMaps & Secrets」(図A)をクリックします。
図A

表示されたページ (図 B ) で、右上隅の近くにある [フォームで追加] をクリックします。
図B

次のウィンドウ (図 C ) で、ページの中央近くにある [Secret] タブをクリックします。
図C

新しいシークレットに含める必要がある情報は次のとおりです。
- 名前: 人間が判読できるシークレットの名前。
- 名前空間: シークレットが使用される名前空間。
- キー: ユーザー名などの最初の値を定義するキー ペアの部分。
- 値: パスワードやアクセス トークンなどの 2 番目の値を定義するキー ペアの部分。たとえば、資格情報が admin/@dm1n の場合、admin がキーで、@dm1n が値になります。
次のいずれかのタイプを選択することもできます。
- 不透明。
- サービス アカウント トークン。
- Dockercfg。
- Dockerconfigjson。
- 基本認証。
- SSH 認証。
- TLS。
- ブートストラップ トークン。
- カスタム。
分かりやすくするために、SSH認証を選択しましょう。ここで重要な点として、一部のTypeオプションを選択すると、Keyの部分が自動入力されます。例えば、SSH認証を選択した場合、Keyの部分に が自動的に入力されますssh-privatekey
。
次に、新しい鍵に名前を付け、鍵の種類としてSSH認証を選択し、追加したいSSH公開鍵を取得します。この鍵は で始まりssh-rsa
、ランダムな文字列が長く続き、USERNAME@HOSTNAMEで終わります。USERNAMEはローカルユーザー名、hostnameは作業中のマシンのホスト名です。
別のマシンにあるSSHキーを使用している場合は、そのキーを見つける必要があります。SSH公開キーをコピーしたら、「値」フィールドに貼り付けます。必要な情報をすべて入力したら、「シークレットを作成」をクリックして新しいキーを保存できます。
新しいキーの使い方
デプロイメント用の新しいアプリケーションを作成するとします。その場合は、「アプリケーション」をクリックし、「フォームで追加」をクリックします。アプリケーションフォームに「構成」セクションが表示されます(図D)。
図D

「構成を追加」をクリックします。表示されるセクションにドロップダウンが表示され、新しく作成したシークレットを選択できます(図E)。
図E

Portainer はエントリをキーに自動的にマッピングするため、シークレットに特別な情報を追加する必要はありません。この手順により、マニフェストにシークレットを追加する必要がなくなります。
Kubernetes Secretsを簡単に
シークレットは必須です。特に、アプリケーションをAPIやサードパーティのサービスに接続する場合は必須です。Portainerを使えば、Kubernetesデプロイメント用のシークレットの作成と使用が驚くほど簡単になります。
参照: 採用キット: プラットフォーム エンジニア (TechRepublic Premium)
ただし、Portainerシステム上で適切な権限を持つユーザーなら誰でもシークレットを閲覧できる点に留意してください。これらの環境へのユーザーアクセスは慎重に行ってください。
次に読む: プログラミングに最適な IDE 12 選 (TechRepublic)
Kubernetes での開発について詳しくは、TechRepublic Academy の以下のリソースをご覧ください。
- Docker および Kubernetes 認定トレーニングバンドル
- Kubernetesとクラウド認定資格の究極のトレーニングバンドル
- 2022年DevOpsクラウドエンジニアリング準備バンドル