OpenSSL を使用した Kubernetes 証明書の生成の概要

OpenSSL を使用した Kubernetes 証明書の生成の概要

Kubernetes は、基本認証、トークン認証、CA 認証の 3 種類の認証をサポートしています。この記事では、CA 認証に必要な最も簡単なコマンドを記録します。

Kubernetesの構成

テスト対象バージョンは1.10ですが、このバージョンに限定されるものではありません。OpenSSL証明書では一般的な方法です。

必要な証明書

必要な証明書関連書類は以下の通りです。

CA証明書

CA証明書の秘密鍵

コマンド: openssl genrsa -out ca.key 2048

[root@host121 k8scert]# openssl genrsa -out ca.key 2048
RSA秘密鍵の生成、2048ビット長の係数
.............................................................+++
...............+++
eは65537(0x10001)
[root@host121 k8scert]#

CA証明書

コマンド: openssl genrsa -out ca.key 2048

[root@host121 k8scert]# openssl req -x509 -new -nodes -key ca.key -subj "/CN=host121" -days 5000 -out ca.crt
[root@host121 k8scert]# ls
アーカイブ ca.crt ca.key
[root@host121 k8scert]#

XXX 証明書

apiserver/ControllerManager/kubletに必要な証明書は次のように作成できます。

証明書の秘密鍵

コマンド: openssl genrsa -out server.key 2048

[root@host121 k8scert]# openssl genrsa -out server.key 2048
RSA秘密鍵の生成、2048ビット長の係数
..............................+++
..............................................................................+++
eは65537(0x10001)
[root@host121 k8scert]#

証明書署名要求ファイル

コマンド: openssl req -new -key server.key -subj "/CN=host121" -out server.csr

[root@host121 k8scert]# openssl req -new -key server.key -subj "/CN=host121" -out server.csr
[root@host121 k8scert]#

subj に設定されるサブジェクト情報は、ユーザー自身のデータです。一般的に、CN はドメイン名/マシン名/IP 名のいずれかに設定されます。たとえば、kubelet であれば、それが配置されているノードの IP になります。

証明書

コマンド: openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5000

[root@host121 k8scert]# openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5000
署名OK
件名=/CN=host121
CA秘密鍵の取得
[root@host121 k8scert]#

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • Kubernetes オブジェクトボリュームの詳細な使用方法
  • CentOS で Rancher2 をインストールし、Kubernetes クラスターを構成するためのグラフィック チュートリアル
  • Rancher で Kubernetes 用の標準化された VMware イメージを構築する方法
  • kubernetes1.5.2 から kubernetes1.10 にアップグレードする際の主要な設定変更記録
  • Kubernetes (k8s) 入門
  • Kubernetes の応用分野の概要

<<:  MYSQL5.6.33 データベース マスター/スレーブ (マスター/スレーブ) 同期のインストールと構成の詳細 (マスター-Linux スレーブ-windows7)

>>:  React antd タブの切り替えによりサブコンポーネントが繰り返し更新される

推薦する

スライドドアを実装するための CSS サンプルコード

いわゆるスライディングドアテクノロジーとは、さまざまな長さのテキストに合わせてボックスの背景を自動的...

Vueは適切なスライドアウトレイヤーアニメーションを実装します

この記事では、適切なスライドアウトレイヤーアニメーションを実装するためのVueの具体的なコードを例と...

Docker を使用して MySQL 5.7 および 8.0 マスター スレーブ クラスターをデプロイする方法

> MySQL 5.7 クラスタ マスターとスレーブをデプロイする (テストのみ)イメージバー...

awk でのループの使用

同じコマンドを複数回実行するさまざまな種類のループについて学習しましょう。 awk スクリプトには、...

DOCTYPE HTMLを使用する理由

これがないと、ブラウザはページをレンダリングするときに Quirks モードを使用することがわかって...

mysql バッチで大量のデータを削除する

mysql バッチで大量のデータを削除する1000万件のレコードを持つテーブル(syslogs)があ...

Telnet は Alpine イメージの busybox-extras に移動されました

Alpine イメージの telnet はバージョン 3.7 以降、busybox-extras パ...

iOS、Android、ミニプログラムアプリの敷居の低い開発のためのフロントエンドフレームワークを詳しく解説

現在、クロスプラットフォーム開発技術はもはや新しい話題ではありません。市場にはいくつかのオープンソー...

Docker で MySQL 接続と設定ファイルの最大数を変更する

1. MySQLイメージを見つける ドッカーps 2. ミラーmysqlイメージを入力する dock...

MySQL Order By 複数フィールドのソートルールのコード例

事前に言っておく気まぐれですが、MySQL の order by sorting にどのようなルール...

JavaScript ドキュメント オブジェクト モデル DOM

目次1. JavaScriptはページ内のすべてのHTML要素を変更できる1. IDでHTML要素を...

Linux でパスワードを入力せずに sudo コマンドを実行する方法

sudo コマンドを使用すると、信頼できるユーザーは別のユーザー (デフォルトでは root ユーザ...

MySQLインデックスが使用されない状況のまとめ

MySQL のインデックスの種類一般的に、次の 4 つのカテゴリに分類できます。通常のインデックス:...

21 の MySQL 標準化および最適化のベスト プラクティス!

序文良い習慣はすべて宝物です。この記事は、SQL の後悔の治療法、SQL パフォーマンスの最適化、S...

Linux MySQL ルートパスワードを忘れた場合の解決方法

MySQL データベースを使用する際、何らかの理由で長期間 MySQL にログインしていない場合、ま...