9 Oracle Cloud Infrastructureの構成ファイルを使用したHAのクイック・インストール
Kubernetesクラスタを含むOracle Cloud Native Environmentの基本的なデプロイメントをOracle Cloud Infrastructureにインストールします。 インストールする追加のモジュールを構成ファイルに追加できます。 このトピックの例では、Oracle Cloud Infrastructureで使用可能なすべてのモジュールをインストールします。
これにより、KubernetesクラスタおよびOracle Cloud Infrastructure Cloud Controller Managerモジュールを含むOracle Cloud InfrastructureへのOracle Cloud Native Environmentのデプロイメントが設定されます。
必要なノード: 高可用性に必要な数のノード。 (「Kubernetes高可用性要件」を参照)。
-
オペレータ・ノード: オペレータ・ノードとして使用する1つのノード。これは、Platform CLI (
olcnectl
)を使用してインストールを実行したり、Platform API Serverをホストしたりするために使用されます。 -
Kubernetesコントロール・プレーン: Kubernetesコントロール・プレーン・ノードとして使用する3つ以上のノード。
-
Kubernetesワーカー: Kubernetesワーカー・ノードとして使用する2つ以上のノード。
始める前に: 前提条件の設定を完了します。 「事前設定」を参照してください。
構成ファイルを使用してOracle Cloud InfrastructureにHAをすばやくインストールするには:
- Oracle Cloud Infrastructureロード・バランサを設定します。
-
Oracle Cloud Infrastructureにサインインします。
-
ロード・バランサを作成します。
-
重み付けラウンド・ロビンを使用して、バックエンド・セットをロード・バランサに追加します。 ヘルス・チェックをTCPポート6443に設定します。
-
コントロール・プレーン・ノードをバックエンド・セットに追加します。 コントロール・プレーン・ノードのポートをポート6443に設定します。
-
TCPポート6443を使用して、バックエンド・セットのリスナーを作成します。
-
-
オペレータ・ノードで、デプロイメント用のOracle Cloud Native Environment構成ファイルを作成します。 Oracle Cloud Native Environment構成ファイルの作成の詳細は、「プラットフォーム・コマンドライン・インタフェース」を参照してください。 この例では、構成ファイルに対してファイル名
myenvironment.yaml
を使用します。KubernetesモジュールおよびOracle Cloud Infrastructure Cloud Controller Managerモジュールをインストールする基本的な構成ファイルの例は、次のとおりです:
environments: - environment-name: myenvironment globals: api-server: operator.example.com:8091 selinux: enforcing modules: - module: kubernetes name: mycluster args: container-registry: container-registry.oracle.com/olcne load-balancer: lb.example.com:6443 control-plane-nodes: - control1.example.com:8090 - control2.example.com:8090 - control3.example.com:8090 worker-nodes: - worker1.example.com:8090 - worker2.example.com:8090 - worker3.example.com:8090 - module: oci-ccm name: myoci args: oci-ccm-kubernetes-module: mycluster oci-region: us-ashburn-1 oci-tenancy: ocid1.tenancy.oc1..unique_ID oci-compartment: ocid1.compartment.oc1..unique_ID oci-user: ocid1.user.oc1..unique_ID oci-fingerprint: b5:52:... oci-private-key-file: /home/opc/.oci/oci_api_key.pem oci-vcn: ocid1.vcn.oc1..unique_ID oci-lb-subnet1: ocid1.subnet.oc1..unique_ID
この構成ファイルの例では、デフォルト設定を使用して、3つのコントロール・プレーン・ノード(3つのワーカー・ノード)を持つKubernetesクラスタを作成し、Oracle Cloud Infrastructureにすでに設定されている外部ロード・バランサを使用します。 リストされているノードを環境内のノードを反映するように変更します。 また、URLをOracle Cloud Infrastructureロード・バランサのURLに変更する必要があります。 Oracle Cloud Infrastructure Cloud Controller Managerモジュールの設定には複数の値が必要で、このモジュールに指定する内容の詳細は、「Oracle Cloud Infrastructure Cloud Controller Managerモジュール」を参照してください。
ヒント:
プライベートCA証明書は、KubernetesノードとKubernetes
externalIPs
サービス間の通信用に自動的に生成されます。 CA証明書を使用するか、構成ファイルにモジュールをさらに追加するには、「構成ファイルを使用したクイック・インストール」でこれらのオプションに関する情報を参照してください。 -
オペレータ・ノードで、
--config-file
オプションを指定してolcnectl provision
コマンドを使用してインストールを開始します。 たとえば:olcnectl provision --config-file myenvironment.yaml
SSHログイン資格証明、プロキシ・サーバー情報、
--yes
オプションを使用してプロンプトを自動的に受け入れるオプションなど、他のいくつかのコマンド・オプションが必要になる場合があります。olcnectl provision
コマンドの構文オプションの詳細は、「プラットフォーム・コマンドライン・インタフェース」を参照してください。 -
各ノードで実行するステップのリストが表示され、続行するためのプロンプトが表示されます。 たとえば、コントロール・プレーン・ノードでは、変更は次のようになります:
? Apply control-plane configuration on control1.example.com: * Install oracle-olcne-release ... * Install and enable olcne-agent Proceed? yes/no(default) yes
yes
と入力して続行します。 ノードが設定されます。各ノードの変更に関する情報が表示されます。 各ノードの設定ステップを確認する必要があります。
ヒント:
各ノードでの変更の受け入れを回避するには、
olcnectl provision
コマンドで--yes
コマンド・オプションを使用します。 -
ノードはOracle Cloud Native Environmentプラットフォームで設定され、モジュールがインストールされます。 次の構文を使用して環境に関する情報を表示できます:
olcnectl module instances --api-server host_name:8091 --environment-name name
ヒント:
将来の
olcnectl
コマンドで--api-server
オプションを使用しないようにするには、--update-config
オプションを追加します。たとえば:
olcnectl module instances \ --api-server operator.example.com:8091 \ --environment-name myenvironment \ --update-config
出力は次のようになります:
INFO[...] Global flag configuration for myenvironment has been written to the local Platform config and you don't need to specify them for any future calls INSTANCE MODULE STATE control1.example.com:8090 node installed ... mycluster kubernetes installed
デプロイメントの詳細を表示するには、
olcnectl module report
コマンドを使用します。 たとえば:olcnectl module report \ --environment-name myenvironment \ --name mycluster \ --children
-
コントロール・プレーン・ノードでKubernetes CLI (
kubectl
)を設定します。kubectl
コマンドは、クラスタ内の各コントロール・プレーン・ノードにインストールされます。 これを使用してクラスタにアクセスするには、Kubernetes構成ファイルを使用して構成する必要があります。コントロール・プレーン・ノードにログインし、次のコマンドをコピーしてユーザーのホーム・ディレクトリのターミナルに貼り付けます:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config export KUBECONFIG=$HOME/.kube/config echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc
次のような
kubectl
コマンドを使用して、kubectl
コマンドを使用できることを確認します:kubectl get deployments --all-namespaces
出力は次のようになります:
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE externalip-validation-system externalip-validation-webhook 1/1 1 1 29m kube-system coredns 2/2 2 2 30m kubernetes-dashboard kubernetes-dashboard 1/1 1 1 29m ocne-modules ocne-module-operator 1/1 1 1 29m
ノート:
デプロイメント後、オペレータ・ノードのローカル・ディレクトリにKubernetes構成ファイルが作成されます。 このファイルには
kubeconfig.environment_name.cluster_name
という名前が付けられ、Kubernetesクラスタに関する情報が含まれます。 このファイルは便宜上作成され、コントロール・プレーン・ノードでkubectl
を設定する必要はありません。複数のクラスタがある場合は、このファイルを使用して、より大きなKubernetes構成ファイルに追加できます。 複数のクラスタへのアクセスの構成の詳細は、アップストリーム「Kubernetesドキュメント」を参照してください。
ヒント:
Kubernetesクラスタをスケーリングするノードの追加および削除
Kubernetesクラスタのノードを変更するには、更新されたコントロール・プレーンおよびワーカー・ノード・リストを使用して、olcnectl provision
コマンドを再度実行: 新しいノード・リストを省略したノードはクラスタから削除され、指定した新しいノードはクラスタに追加されます。
ノードを追加する場合、新しい証明書が自動的に生成され、新しいノードにインストールされ、Oracle Cloud Native Environmentソフトウェアがインストールされ、ノードがKubernetesクラスタに追加されます。 ただし、外部ロード・バランサを使用している場合は、必要な前提条件(「事前設定」を参照)ですべての新しいノードが設定されていること、および新しいコントロール・プレーン・ノードがロード・バランサに追加されていることを確認する必要があります。