こんにちは!テリロジーのY.Tです。
今回はOCIのContainer Engine for Kubernetes(OKE)をカスタム作成し、CLIからkubectlコマンドで操作できるようにしていきます。
※OKEのクイック作成について、また、Kubernetesに関してのご紹介は「OCI上のKubernetes(OKE) を使ってみる」に記載がございます。
OKEのカスタム作成
OCI Webコンソールの「開発者サービス」>「Kubernatesクラスタ(OKE)」へ推移し、「カスタム作成」を選択し、「ワークフローの起動」をクリックします。
クラスター名、クラスターを作成するコンパートメント、Kubernetesのバージョンを選択します。
拡張オプションでは、イメージ検証や暗号化、ポッド(Pod)のセキュリティポリシーを設定することができますが、今回は特に何も設定せず、次に進みます。
次に利用するVCNを選択し、LBのサブネットとAPIのエンドポイントサブネットを選択し、必要に応じて、ネットワークセキュリティグループも指定します。
また、拡張オプションではKubernetesサービスとPodのCIDRブロックを、既存のVCNと重複しない範囲で指定することができます。
最後に、ノード(インスタンス)の台数やシェイプなどを指定し、作成します。
現在はOracle LinuxのOSイメージのみサポートされています。
Kubernetes環境に接続するためのAPIエンドポイントおよび、ワーカー・ノードについては、セキュリティリストもしくはセキュリティグループにて特定の通信を許可する必要があります。
詳しくは、OCIドキュメント セキュリティ・リストの構成をご参照ください。
OKEクラスタへの接続
作成したOKEクラスタにCLI経由で接続します。
接続方法は以下の2種類です。
- OCI Webコンソール上から利用可能なCloud Shellを利用する方法
- ローカル環境からアクセスする方法
どちらの方法もOCI Webコンソールの「開発者サービス」>「Kubernetesクラスタ(OKE)」へ推移し、 クラスタを選択後、「クラスタへの接続」をクリックすると、kubeconfigの作成手順が紹介されています。
ここではローカル環境からアクセスする手順を確認していきたいと思います。
1.OCI CLIのインストール
OCI環境と接続可能な任意の端末にOCI CLIをインストールします。
インストール方法は「OCIにCLI経由でアクセスする方法」をご参考にしてください。
2.kubeconfigファイルの作成
はじめに、OCI上に構築したKubernetesの環境を操作するためにはkubectlコマンドを利用します。
kubectlコマンド実行時に接続するKubernetesの環境を指定する設定ファイルが、kubeconfigです。
以下のコマンドで端末にkubeconfigを格納するディレクトリを作成します。
$ mkdir -p $HOME/.kube
次に、以下のコマンドで/.kubeディレクトリ内に「config」という名前でkubeconfigを作成します。
$ oci ce cluster create-kubeconfig --cluster-id <クラスタID> --file $HOME/.kube/config --region <リージョン名>\
--token-version 2.0.0\
--kube-endpoint <LEGACY_KUBERNETES, PRIVATE_ENDPOINT, PUBLIC_ENDPOINTのいずれかを指定>
ociコマンドリファレンス内で、OKEの操作に利用可能なコマンドが確認できます。
最後に、以下のコマンドでKUBECONFIG環境変数を先ほど作成したkubeconfigに設定します。
$ export KUBECONFIG=$HOME/.kube/config
以上でkubeconfigの作成は完了です。次に、kubectlコマンドをインストールしていきます。
3.kubectlコマンドのインストール
Linux端末へインストールする場合は、以下のコマンドでインストールすることが出来ます。
※Kubernates公式「kubectlのインストールおよびセットアップ」参照
3-1.インストール
$ curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s
https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
3-2.実行権限の付与
$ chmod +x ./kubectl
3-3.バイナリへ移動
$ sudo mv ./kubectl /usr/local/bin/kubectl
3-4.kubectlコマンドバージョン確認
$ kubectl version --client
4.OKEクラスタへの接続確認
以下のコマンドでOKE環境のノード(インスタンス)の情報を取得できることを確認します。
$ kubectl get nodes
まとめ
今回はOKEクラスタの作成と、作成したOKEクラスタにCLIから接続する方法をご紹介していきました。
次回以降、OCIのコンテナレジストリサービス(OCIR)からイメージをpullし、今回構築したKubernetes環境に ポッドを作成する方法をご紹介してきたいと思います。
最後までお読みいただき、ありがとうございました。🙇
- カテゴリ:
- OCIサービス紹介
- タグ:
- コンテナ
- Kubernetes
- OKE
- コンテナ管理