8 構成ファイルを使用したクイック・インストール
構成ファイルを使用して、ベア・メタル・ホストまたは仮想マシン(Kubernetesクラスタを含む)にOracle Cloud Native Environmentをインストールします。
これにより、Kubernetesクラスタを含むベア・メタル・ホストにOracle Cloud Native Environmentの基本的なデプロイメントが設定されます。
必要なノード: 少なくとも3つのノード。
-
オペレータ・ノード: オペレータ・ノードとして使用する1つのノード。これは、Platform CLI (
olcnectl
)を使用してインストールを実行したり、Platform API Serverをホストしたりするために使用されます。 -
Kubernetesコントロール・プレーン: Kubernetesコントロール・プレーン・ノードとして使用する1つ以上のノード。
-
Kubernetesワーカー: Kubernetesワーカー・ノードとして使用する1つ以上のノード。
始める前に: 前提条件の設定を完了します。 「事前設定」を参照してください。
構成ファイルを使用してクイック・インストールを実行するには:
-
オペレータ・ノードで、デプロイメント用のOracle Cloud Native Environment構成ファイルを作成します。 Oracle Cloud Native Environment構成ファイルの作成の詳細は、「プラットフォーム・コマンドライン・インタフェース」を参照してください。 この例では、構成ファイルに対してファイル名
myenvironment.yaml
を使用します。基本的な構成ファイルの例は次のとおりです:
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 control-plane-nodes: - control1.example.com:8090 worker-nodes: - worker1.example.com:8090 - worker2.example.com:8090
この構成ファイルの例では、デフォルト設定を使用して、単一のコントロール・プレーン・ノードと2つのワーカー・ノードを持つKubernetesクラスタを作成します。 リストされているノードを環境内のノードを反映するように変更します。
プライベートCA証明書(デフォルト設定を使用)が自動的に作成され、通信を保護するために各ノードに配布されます。 CA証明書を使用するには、olcne-ca-path
、olcne-node-cert-path
、およびolcne-node-key-path
オプションを使用して証明書のロケーションを指定します。 構成ファイルを使用して証明書をプロビジョニングする前に、その証明書がノードに配置されている必要があります。 たとえば、globals
セクションは次のようになります:globals: api-server: operator.example.com:8091 selinux: enforcing olcne-ca-path: /etc/olcne/certificates/ca.cert olcne-node-cert-path: /etc/olcne/certificates/node.cert olcne-node-key-path: /etc/olcne/certificates/node.key
ヒント:
olcnectl certificates distribute
コマンドを使用して、証明書を生成し、ノードにコピーできます。olcnectl certificates generate
およびolcnectl certificates copy
コマンドも参照してください。デフォルトでは、KubernetesサービスのexternalIPs
へのアクセスを制御するKubernetesサービスがデプロイされます。 プライベートCA証明書も、デフォルト値を使用してこの目的のために自動的に生成されます。 CA証明書を使用するには、Kubernetesモジュールのargs
セクションに、restrict-service-externalip-ca-cert
、restrict-service-externalip-tls-cert
およびrestrict-service-externalip-tls-key
オプションを使用してロケーションを含めます。restrict-service-externalip-cidrs
オプションを使用して、KubernetesサービスからアクセスできるIPアドレスを設定することもできます。 たとえば、args
セクションは次のようになります:args: container-registry: container-registry.oracle.com/olcne control-plane-nodes: - control1.example.com:8090 worker-nodes: - worker1.example.com:8090 - worker2.example.com:8090 restrict-service-externalip-ca-cert: /etc/olcne/certificates/restrict_external_ip/ca.cert restrict-service-externalip-tls-cert: /etc/olcne/certificates/restrict_external_ip/node.cert restrict-service-externalip-tls-key: /etc/olcne/certificates/restrict_external_ip/node.key restrict-service-externalip-cidrs: 192.0.2.0/24,198.51.100.0/24
このサービスをデプロイしない場合は、構成ファイルでrestrict-service-externalip: false
オプションを使用します。 たとえば、args
セクションは次のようになります:args: container-registry: container-registry.oracle.com/olcne control-plane-nodes: - control1.example.com:8090 worker-nodes: - worker1.example.com:8090 - worker2.example.com:8090 restrict-service-externalip: false
Kubernetesサービスでの
externalIPs
へのアクセスの設定の詳細は、「Kubernetesモジュール」を参照してください。Kubernetesモジュールとともにデプロイする他のモジュールを含めるには、それらを構成ファイルに追加します。 外部ロード・バランサを含み、他のモジュールをインストールする構成ファイルのより複雑な例を次に示します:
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: operator-lifecycle-manager name: myolm args: olm-kubernetes-module: mycluster - module: istio name: myistio args: istio-kubernetes-module: mycluster
-
オペレータ・ノードで、
--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 pods --all-namespaces
出力は次のようになります:
NAMESPACE NAME READY STATUS RESTARTS AGE externalip-validat... externalip-validation-... 1/1 Running 0 1h kube-system coredns-... 1/1 Running 0 1h kube-system coredns-... 1/1 Running 0 1h kube-system etcd-... 1/1 Running 2 1h kube-system etcd-... 1/1 Running 2 1h kube-system kube-apiserver-... 1/1 Running 2 1h kube-system kube-apiserver-... 1/1 Running 2 1h kube-system kube-controller-manager-... 1/1 Running 5 (1h ago) 1h kube-system kube-controller-manager-... 1/1 Running 2 1h kube-system kube-flannel-... 1/1 Running 0 1h kube-system kube-flannel-... 1/1 Running 0 1h kube-system kube-flannel-... 1/1 Running 0 1h kube-system kube-proxy-... 1/1 Running 0 1h kube-system kube-proxy-... 1/1 Running 0 1h kube-system kube-proxy-... 1/1 Running 0 1h kube-system kube-scheduler-... 1/1 Running 5 (1h ago) 1h kube-system kube-scheduler-... 1/1 Running 2 1h kubernetes-dashboard kubernetes-dashboard-... 1/1 Running 0 1h
ノート:
デプロイメント後、オペレータ・ノードのローカル・ディレクトリにKubernetes構成ファイルが作成されます。 このファイルには
kubeconfig.environment_name.cluster_name
という名前が付けられ、Kubernetesクラスタに関する情報が含まれます。 このファイルは便宜上作成され、コントロール・プレーン・ノードでkubectl
を設定する必要はありません。複数のクラスタがある場合は、このファイルを使用して、より大きなKubernetes構成ファイルに追加できます。 複数のクラスタへのアクセスの構成の詳細は、アップストリーム「Kubernetesドキュメント」を参照してください。
ヒント:
Kubernetesクラスタをスケーリングするノードの追加および削除
Kubernetesクラスタのノードを変更するには、更新されたコントロール・プレーンおよびワーカー・ノード・リストを使用して、olcnectl provision
コマンドを再度実行: 新しいノード・リストを省略したノードはクラスタから削除され、指定した新しいノードはクラスタに追加されます。
ノードを追加する場合、新しい証明書が自動的に生成され、新しいノードにインストールされ、Oracle Cloud Native Environmentソフトウェアがインストールされ、ノードがKubernetesクラスタに追加されます。 ただし、外部ロード・バランサを使用している場合は、必要な前提条件(「事前設定」を参照)ですべての新しいノードが設定されていること、および新しいコントロール・プレーン・ノードがロード・バランサに追加されていることを確認する必要があります。