クラウドアプリケーションの運用管理に不可欠なKubernetes。Kubernetesにはいくつかのマネージドサービスがあり、中でも高い稼働率を誇るのが、Oracle Container Engine for Kubernetes(OKE)です。
Oracle Container Engine for Kubernetesは、他社のマネージドKubernetesサービスと比べても優れているポイントが多数あります。そこでこの記事では、Oracle Container Engine for Kubernetesについて紹介しつつ、Kubernetesサービスの導入を検討している企業担当者様の疑問を解消していきます。
Oracle Container Engine for Kubernetes(OKE)とは?
Oracle Container Engine for Kubernetes(OKE)の説明をする前に、まずはKubernetesについて簡単に振り返っていきましょう。
Kubernetesとは、コンテナ化されたワークロードやサービスの管理、自動化するためのオープンソースのプラットフォームです。Kubernetesを活用することで、アプリの迅速なデプロイ、ハードウェアの利用率制限など、さまざまな要求に対して迅速かつ効率良く対応することができます。
Oracle Container Engine for Kubernetesは、OracleのマネージドKubernetesサービスのことです。オラクル社のパブリッククラウドサービスである、Oracle Cloud Infrastructure(OCI)の機能の一つとして提供されています。Dockerをはじめとした、企業のコンテナ運用をサポートします。
現在のアプリケーション運用に欠かせないKubernetesを、Oracle Cloudの幅広いサービス群と組み合わせることで、さまざまなユースケースに対応し得るようになります。
Oracle Container Engine for Kubernetesの機能
Oracle Container Engine for Kubernetesには、開発者のニーズに応えるさまざまな機能を備えています。
Kubernetesクラスターをワンクリック作成
Oracle Container Engine for Kubernetesでは、基盤となる仮想クラウドやネットワーク、ゲートウェイなどで構成するKubernetesクラスターをワンクリックで導入することができます。
運用を自動化・合理化
Oracle Visual Builder Studio、もしくはサードパーティのツールを使用して、クラウドアプリケーションの導入を自動化し、Oracle Cloud Infrastructureがこれらアプリケーションを管理。Kubernetesクラスターの開発と運用の合理化を同時に行います。
また、HTTPでの呼び出しインターフェースである「REST API」、「コマンドライン・インターフェイス(CLI)」を使用して、Kubernetes運用の自動化も行えます。
Oracle Container Engine for Kubernetes導入のメリット
Kubernetes単体でも十分な機能と実用性を備えていますが、Oracle Cloudと組み合わせることで、さらなる効果を発揮します。
では、Oracle Container Engine for Kubernetesを導入することで、実際にはどのようなメリットが得られるのでしょうか。
柔軟性の高さ
Oracle Container Engine for Kubernetesでは、Open Container Initiativeに準じた未変更のKubernetesを使用。そのためOracleのパートナーはもちろん、セキュリティやフェデレーションなど、さまざまなツールでKubernetesクラスターを管理できる柔軟性・移植性を備えています。
強固なセキュリティ
Oracle Container Engine for Kubernetesでは、ダウンタイムが発生することなく短時間でアップグレードを行い、Kubernetesを常時最新バージョンに維持します。ほかにもKey Managementサービスを使用した機密情報の暗号化、アクセス権限・制御といった堅牢なセキュリティ環境を提供してくれます。
優れたコストパフォーマンス
Oracle Container Engine for Kubernetesは基本無料で提供されており、Kubernetesクラスターで基盤となるコンピュート、ストレージなどのリソースに対してのみ料金が発生します。
Kubernetesクラスターを管理する製品は、昨今、Amazon Elastic Kubernetes Service(EKS)やGoogle Kubernetes Engine(GKE)など多数あります。しかし「クラスターの管理料金が発生しないコストパフォーマンスの高さ」という点は、Oracleならではの魅力と言えるでしょう。
Oracle Container Engine for Kubernetesの使い方
このセクションでは、Oracle Container Engine for Kubernetesを使ってKubernetesクラスターを作成するまでの大まかな流れを解説していきます。
なお、ここではあくまで基本的な流れのみを紹介していきます。作成には専門的な知識が必要になりますので、詳細はこちらをご参考ください。
Kubernetesクラスタの作成 | オラクル社・ヘルプセンター
1.事前準備
Oracle Cloud Infrastructure(OCI)へのアクセス
Oracle Container Engine for Kubernetes はOracle Cloud Infrastructure(OCI)の機能群になりますので、Kubernetesクラスターを作成する前に、クラウドアカウント(テナンシ)へのアクセス権が必要です。また、コンピュート・インスタンスやブロック・ボリューム、ロード・バランサなど、さまざまなタイプのリソースに対する十分な割当てが必要になりますので、ぜひ覚えておきましょう。
コンパートメント
存在しない場合、OCIのテナントの内部を仕切る区画となるコンパートメントを作成する必要があります。
- OCIのサービス・コンソールにアクセスし「Identity」をクリック
- 画面左のメニュー「Compartment」をクリック
- 「Create Compartment」ボタンをクリック
- 「Create Compartmentダイヤログ」の値を設置して「Create Compartment」をクリックして完了
このほかにも、テナンシの管理者グループやContainer Engine for Kubernetes権限を付与するグループ、Kubernetes操作を実行するための権限やKubernetesコマンドラインツール「kubectl」など、さまざまな事前準備が必要になります。
2.Kubernetesクラスターの作成
事前準備を終えたら、Oracle Container Engine for Kubernetesを使って新しいKubernetesクラスターを作成できるようになります。
まずはコンソールを使用して、新しいクラスター(クラスター名、コントロール・プレーン・ノードにインストールするKubernetesのバージョン)の基本詳細を指定。
その後、「クイック作成」と「カスタム作成」いずれかの方法でKubernetesクラスターを作成します。
クイック作成
クラスターを作成するもっとも速い方法です。すべてのデフォルト値をそのまま使用すれば、数回のクリックだけで、簡単に新しいクラスターを作成することができます。
カスタム作成
新しいクラスターのプロパティを明示的に定義できます。通常は、定義する際にノード・プールの定義も行いますが、その必要はありません。
次にワーカー・ノードに名前をつけます。自動生成された名前は変更しないようにしましょう。高可用性を確保するために、複数のOracle管理コントロール・プレーン・ノードにKubernetesコントロールプレーンを作成、可用性ドメイン内の各フォルト・ドメインにワーカー・ノードを作成します。
3.Kubernetesクラスターの管理
プロバティの変更
Oracle Container Engine for Kubernetesでは、既存のKubernetesクラスターのプロパティを変更することができます。
Kubernetesクラスターを変更する手順は以下の通りです。
- コンソールでナビゲーション・メニューを開き「開発者サービス」をクリック
- 「Kubernetesクラスター(OKE)」をクリック
- 権限のあるコンバートメントを選択
- 「クラスター・リスト」ページに行き、変更するクラスター名をクリック
- 「クラスターの編集」をクリックして変更を行ってください
変更可能なものは以下5点です。
- クラスターの名前
- 新しいノード・プールの追加、削除
- コントロール・プレーン・ノードで実行するKubernetesのバージョン
- Kubernetes APIエンドポイントの詳細
- ポッド・セキュリティ・ポリシーの実施
Kubernetesシークレットを暗号化
Kubernetesクラスター内のコントロール・プレーン・ノードでは、認証トークン、パスワードなどの機密構成データを、Kubernetesシークレットオブジェクトとしてetcdに格納しています。
ただし、etcdにあるKubernetesシークレットは、デフォルトで暗号化されていません。
セキュリティを強化するためには、Oracle Cloud Infrastructureボールト・サービスを使用して、etcdにあるKubernetesシークレットを暗号化するように指定しましょう。
クラスターを作成する前に、以下の3つのことを行ってください。
- マスター暗号化キーの名前・OCIDの認識
- 新しいクラスターを作成するコンパートメント内の動的グループの作成
- 動的グループを認可するポリシーを作成
上記を行ったらクラスターを作成し、Kubernetesシークレットを暗号化するように指定すると、暗号化は完了です。
Kubernetesクラスターの削除
Kubernetesクラスターを削除したい場合は、以下の手順で行います。
- コンソールでナビゲーション・メニューを開き「開発者サービス」をクリック
- 「Kubernetesクラスター(OKE)」をクリック
- 権限のあるコンバートメントを選択
- 「クラスター・リスト」ページで、「削除」ボタン→「確認」ボタンをクリックして完了
まとめ
今回は、Oracle Container Engine for Kubernetes の機能やメリットを解説しました。
Oracle Container Engine for Kubernetes を導入することでKubernetesの運用を効率化できるだけでなく、セキュリティの向上にもつながりますので、これから導入を検討しているという企業の方は、ぜひご相談ください。
- カテゴリ:
- OCI基礎知識