OCI上のKubernetes(OKE) のカスタム作成方法

 2021.08.11  株式会社テリロジー 技術統括部

こんにちは!テリロジーのY.Tです。
今回はOCIのContainer Engine for Kubernetes(OKE)をカスタム作成し、CLIからkubectlコマンドで操作できるようにしていきます。
※OKEのクイック作成について、また、Kubernetesに関してのご紹介は「OCI上のKubernetes(OKE) を使ってみる」に記載がございます。

OKEのカスタム作成

OCI Webコンソールの「開発者サービス」>「Kubernatesクラスタ(OKE)」へ推移し、「カスタム作成」を選択し、「ワークフローの起動」をクリックします。

OKEのカスタム作成 画像01

クラスター名、クラスターを作成するコンパートメント、Kubernetesのバージョンを選択します。
拡張オプションでは、イメージ検証や暗号化、ポッド(Pod)のセキュリティポリシーを設定することができますが、今回は特に何も設定せず、次に進みます。

OKEのカスタム作成 画像02

次に利用するVCNを選択し、LBのサブネットとAPIのエンドポイントサブネットを選択し、必要に応じて、ネットワークセキュリティグループも指定します。
また、拡張オプションではKubernetesサービスとPodのCIDRブロックを、既存のVCNと重複しない範囲で指定することができます。

OKEのカスタム作成 画像03

最後に、ノード(インスタンス)の台数やシェイプなどを指定し、作成します。
現在はOracle LinuxのOSイメージのみサポートされています。

OKEのカスタム作成 画像04

Tips!

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のいずれかを指定>
Tips!

 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環境に ポッドを作成する方法をご紹介してきたいと思います。

最後までお読みいただき、ありがとうございました。🙇


RECENT POST「OCIサービス紹介」の最新記事


OCIサービス紹介

テリロジーが提供しているOCIの4つのサービス

OCIサービス紹介

Oracle FunctionsのスクリプトをAPIGW経由で確認 Part1

OCIサービス紹介

Oracle FunctionsのスクリプトをAPIGW経由で確認 Part2

OCIサービス紹介

OCIのDNSサービス

OCI上のKubernetes(OKE) のカスタム作成方法