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を介してパブリック・サブネット内の管理対象ノードに接続するには:

  1. 接続先のワーカー・ノードのIPアドレスを検索します。これはいくつかの方法で実行できます:

    • kubectlの使用。まだ実行していない場合は、ステップに従って、クラスタのkubeconfig構成ファイルを設定し、(必要に応じて)そのファイルを指すようにKUBECONFIG環境変数を設定します。自分のkubeconfigファイルを設定する必要があります。別のユーザーが設定したkubeconfigファイルを使用してクラスタにアクセスすることはできません。クラスタ・アクセスの設定を参照してください。次に、ターミナル・ウィンドウでkubectl get nodesと入力して、クラスタ内のノード・プールにあるワーカー・ノードのパブリックIPアドレスを表示します。
    • コンソールの使用コンソールで、「クラスタ・リスト」ページを表示し、ワーカー・ノードが属するクラスタを選択します。「ノード・プール」タブで、ワーカー・ノードが属するノード・プールの名前をクリックします。「ノード」タブに、ノード・プール内のすべてのワーカー・ノードのパブリックIPアドレスが表示されます。
    • REST APIの使用。ListNodePools操作を使用して、ノード・プールにあるワーカー・ノードのパブリックIPアドレスを表示します。
  2. ターミナル・ウィンドウで、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アクセスを有効にすることをお薦めします。要塞の詳細は、クラスタ・アクセス用の要塞の設定を参照してください。