SSHを使用した管理対象ノードへの接続
SSHを使用して、Kubernetes Engine (OKE)を使用して作成したクラスタのノード・プール内のワーカー・ノードに接続する方法を確認します。
クラスタに管理対象ノード・プールを作成する際にSSH公開キーを指定した場合は、ノード・プールのすべてのワーカー・ノードに公開キーがインストールされます。UNIXおよびUNIXに類似したプラットフォーム(SolarisおよびLinuxを含む)では、SSHユーティリティ(SSHクライアント)を使用してワーカー・ノードにSSHを介して接続し、管理タスクを実行できます。SSHを使用して仮想ノードに接続することはできません。
後述の手順では、ワーカー・ノードへの接続に使用するUNIXマシンは、次のことを想定しています:
- SSHユーティリティがインストールされている。
- クラスタの作成時に指定されたSSH公開キーとペアのSSH秘密キー・ファイルへのアクセス権を持っている。
SSHを使用してワーカー・ノードに接続する方法は、クラスタ内のノード・プールを定義するときに、ワーカー・ノードにパブリック・サブネットとプライベート・サブネットのどちらを指定したかによって異なります。
SSHを使用したパブリック・サブネットの管理対象ノードへの接続
SSHを使用してパブリック・サブネットの管理対象ノードに接続する前に、SSHアクセスを許可する適用可能なネットワーク・セキュリティ・グループ(推奨)またはサブネット・セキュリティ・リストにイングレス・ルールを定義する必要があります。イングレス・ルールでは、次のように、ソース0.0.0.0/0および任意のソース・ポートからワーカー・ノードのポート22へのアクセスを許可する必要があります:
タイプ | ソースCIDR | IPプロトコル | ソース・ポート範囲 | 宛先ポート範囲 | タイプおよびコード | 許可: および説明: |
---|---|---|---|---|---|---|
ステートフル | 0.0.0.0/0 | TCP | すべて | 22 | n/a |
許可: 次のポートのTCPトラフィック: 22 SSHリモート・ログイン・プロトコル 説明: SSHアクセスを有効にします。 |
SSHユーティリティを使用してUNIXマシンからSSHを介してパブリック・サブネット内の管理対象ノードに接続するには:
-
接続先のワーカー・ノードのIPアドレスを検索します。これはいくつかの方法で実行できます:
- kubectlの使用。まだ実行していない場合は、ステップに従って、クラスタのkubeconfig構成ファイルを設定し、(必要に応じて)そのファイルを指すようにKUBECONFIG環境変数を設定します。自分のkubeconfigファイルを設定する必要があります。別のユーザーが設定したkubeconfigファイルを使用してクラスタにアクセスすることはできません。クラスタ・アクセスの設定を参照してください。次に、ターミナル・ウィンドウで
kubectl get nodes
と入力して、クラスタ内のノード・プールにあるワーカー・ノードのパブリックIPアドレスを表示します。 - コンソールの使用コンソールで、「クラスタ・リスト」ページを表示し、ワーカー・ノードが属するクラスタを選択します。「ノード・プール」タブで、ワーカー・ノードが属するノード・プールの名前をクリックします。「ノード」タブに、ノード・プール内のすべてのワーカー・ノードのパブリックIPアドレスが表示されます。
- REST APIの使用。ListNodePools操作を使用して、ノード・プールにあるワーカー・ノードのパブリックIPアドレスを表示します。
- kubectlの使用。まだ実行していない場合は、ステップに従って、クラスタのkubeconfig構成ファイルを設定し、(必要に応じて)そのファイルを指すようにKUBECONFIG環境変数を設定します。自分のkubeconfigファイルを設定する必要があります。別のユーザーが設定したkubeconfigファイルを使用してクラスタにアクセスすることはできません。クラスタ・アクセスの設定を参照してください。次に、ターミナル・ウィンドウで
-
ターミナル・ウィンドウで、
ssh opc@<node_ip_address>
と入力してワーカー・ノードに接続します。<node_ip_address>
は、以前にノートにとっておいたワーカー・ノードのIPアドレスです。たとえば、ssh opc@192.0.2.254
と入力します。SSH秘密キーがファイルまたはSSHユーティリティが予期するパスに保存されていない場合(たとえば、SSHユーティリティが秘密キーを~/.ssh/id_rsaに格納することを想定している場合)、次の2つのうちいずれかの方法で秘密キーのファイル名と場所を明示的に指定する必要があります:
-i
オプションを使用して、秘密キーのファイル名と場所を指定します。たとえば、ssh -i ~/.ssh/my_keys/my_host_key_filename opc@192.0.2.254
です-
秘密キーのファイル名と場所を、SSH構成ファイル、クライアント構成ファイル(~/.ssh/config) (存在する場合)またはシステム全体のクライアント構成ファイル(/etc/ssh/ssh_config)に追加します。たとえば、次のように追加できます:
Host 192.0.2.254 IdentityFile ~/.ssh/my_keys/my_host_key_filename
SSHユーティリティの構成ファイルの詳細は、
man ssh_config
と入力します秘密キー・ファイルに対する権限では、読取り/書込み/実行アクセスを許可する必要がありますが、他のユーザーがファイルにアクセスできないようにする必要があります。たとえば、適切な権限を設定するには、
chmod 600 ~/.ssh/my_keys/my_host_key_filename
と入力します。権限が正しく設定されておらず、秘密キー・ファイルが他のユーザーからアクセス可能な場合、SSHユーティリティは秘密キー・ファイルを単に無視します。
SSHを使用したプライベート・サブネットの管理対象ノードへの接続 🔗
プライベート・サブネットの管理対象ワーカー・ノードには、プライベートIPアドレスのみがあります(パブリックIPアドレスはありません)。VCN内の他のリソースからのみアクセスできます。
クラウド・シェルのプライベート・アクセスを使用して、プライベート・サブネットのワーカー・ノードへのSSHアクセスを取得できます(クラウド・シェルのプライベート・ネットワーキングを参照)。
Oracleでは、Oracle Cloud Infrastructure Bastionサービスを使用して、プライベート・サブネットのワーカー・ノードへの外部SSHアクセスを有効にすることをお薦めします。要塞の詳細は、「クラスタ・アクセスの要塞の設定」を参照してください。