3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Oracle Cloud] OKE クラスタを 既存VCN に Custom Create してみた

3
Posted at

はじめに

Oracle Cloud では、Kubernetes マネージドサービスの Oracle Container Engine for Kubernetes (略してOKE) が提供されています。OKE の構成方法は、大きく分けて2種類あります。

  • Quick Create : VCN の含めた必要なコンポーネント一式を括作成。ネットワーク CIDR などは固定。変更できない。
  • Custom Create : 既に構成されている VCN を使って、OKE を構成。柔軟なネットワーク構成が可能。

OKE を軽く試してみよう、という用途だと Quick Create は一瞬で作成が出来て便利です。一方、本番環境を考えると、既存の VCN に OKE を構成したい事があります。そういう時には、Custom Create が使えます。Custom Create を使うためには、VCN 側で事前に設定が必要です。

今回の記事では、Custom Create の時に、VCN 側で事前に必要な設定を紹介します。細かな設定が多く、かつ、ドキュメントの記載が文章だけなので、出来るだけわかりやすく紹介していきます。

既存VCN環境

OKE を追加する前の、一般的な Compute Instance が稼働している VCN 環境を作ります。Public Subnet 1個に、Private Subnet 1個の一般的な環境です。構成図では、こんな感じです。この段階では、OKEは全く関係ありません。

1593438750042.png

OKE 用 VCN 設定

既存 VCN に OKE を追加する時は、OKE 用の Subnet を 新規に2個作成するのがお勧めです。既存の Subnet 上に OKE を構成するのも出来ますが、Worker Node のスケール数 や Sercurity List の管理が複雑になります。キレイに管理対象を分割するために 新規にSubnet を 2個追加するのが良いです。

2個の Subnet は、Service LoadBalaner 用と、Worker Node 用です。構成図では、こんな感じです。

1593441064791.png

OCI Console でみると、次のようになります。

  • Load Balancer 用 : oke_lb_subnet1 : 10.0.1.0/24
  • Worker Node 用: oke_wkr_subnet1 : 10.0.11.0/24

1593440993557.png

次に、OKE 用の 2個の Subnet に Route Tables をそれぞれ割り当てます。Route Table も新規で2個作成すると管理が楽なのでお勧めです。

  • Load Balancer 用 : Internet と通信するので、Internet Gateway を追加
  • Worker Node 用 : 内側から Internet へ通信する用途を考慮して、NAT Gateway、OCIR と通信するので Service Gateway を追加

1593441476689.png

OCI Console ではこんな感じです。Load Balancer 用 Route Table

1593441686131.png

Worker Node 用 Route Table

1593441727220.png

次に、一番複雑な Security List を設定します。これも新規に 2個の Security List を作成するのが管理が楽でお勧めです。

構成図で表すとこんな感じです。注意点があり、構成図には書いていないですが、ステートレス or ステートフル 指定が性能を左右するポイントです。ステートレスの方が性能は良いので、LB と Worker Node 間や、Worker Node 間の通信は全てステートレスにしています。

適宜必要な場合は、SSH や ICMP や NodePort の範囲(30000-32767) を追加で指定するのも良いです。

1593442307334.png

OCI Console ではこんな感じです。ステートレスの有無を確認しましょう。
Load Balancer 用 Ingress Security List。

1593442517402.png

Load Balancer 用 Egress Security List

1593442535193.png

Worker Node 用 Ingress Security List

1593442560459.png

Worker Node 用 Egress Security List

1593442583399.png

OKE 作成

ここまで設定すれば、あとは OKE を作るだけです。OKE の画面に移動して、Create Cluster を押します。

1593399984732.png

Custom Create を選び Launch

1593400015886.png

パラメーターを適当に入れます。

1593400089498.png

Kubernetes Service LB Subnets は、忘れずに事前作成した oke_lb_subnet1 を入れます。

1593400155470.png

Subnets は、忘れずに事前作成した oke_wkr_subnet1 を入れます。

1593400270913.png

内容を確認し Create

1593400302511.png

Close

1593400320485.png

OKE が Creating となります

1593400344574.png

Node Pool も作成中です

1593400368480.png

一定時間後、OKE Cluster が Active になります

1593400651991.png

NodePool の中の Node が作成されます。

1593400698268.png

一定時間後、Node が Ready となります。

1593402061792.png

動作確認

ここまでで、OKE クラスタの準備が完了しました。動作確認のために、適当に Deployment と Service LoadBalancer を作成します。

Deployment

$ kubectl apply -f https://raw.githubusercontent.com/Sugi275/oke-handson/master/deployment-cowweb.yaml
deployment.apps/cowweb created

Service LoadBalancer

$ kubectl apply -f https://raw.githubusercontent.com/Sugi275/oke-handson/master/service-cowweb.yaml
service/cowweb created

通信確認。牛が表れているので、正常に動作しています。

$ curl "http://158.101.70.40/cowsay/say?say=HOSTNAME"
 _________________________
< cowweb-7cb44c5768-dqvjc >
 -------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

参考URL

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?