OKEへのVerrazzanoのデプロイメント (2021/10/28)
OKEへのVerrazzanoのデプロイメント (2021/10/28)
https://medium.com/oracledevs/deploying-verrazzano-on-oke-d506101f93e
投稿者:Ali Mukadam
オラクルは先日、"マルチクラウドやハイブリッド環境でクラウドネイティブおよび従来型のアプリケーションをデプロイするためのエンドツーエンドのコンテナプラットフォーム "であるVerrazzanoを発表しました。これが多くのことを含んでいるとすれば、それはVerrazzano(略してv8o)が多くのことを含んでいるからです。この記事では、OKE上でのVerrazzanoのデプロイについて探っていきます。
シングルクラスタのデプロイモデルは簡単です。
- Kubernetesクラスタの作成
- Verrazzanoプラットフォーム・オペレーターのインストール
- Verrazzanoインストール
この後、お好みのアプリケーションをデプロイします。
OKEクラスターの作成
まず、https://github.com/oracle-terraform-modules/terraform-oci-oke を使って OKE クラスタを作成します。今回はVerrazzanoを試してみるだけなので、最低限の機能しか必要ありません。クイックスタート・ガイドに従って、プロバイダーを作成し、terraform.tfvars.example のコピーを作成して、そのコピーの名前を terraform.tfvars に変更します。以下の機能/リソースが有効/作成されていることを確認します。
create_bastion_host = true
bastion_access = ["anywhere"]create_operator = true
enable_operator_instance_principal = true
node_pools = {
np1 = { shape = "VM.Standard.E4.Flex", ocpus = 2, memory = 32, node_pool_size = 2, boot_volume_size = 150}
}
クイックスタートの残りの部分に従って、terraform init と apply を実行します。
クラスタが作成されたら、便利な出力を使ってオペレータホストにsshするコマンドをコピーします。
ssh_to_operator = "ssh -i ~/.ssh/id_rsa -J opc@xyz.xyz.xyz.xyz opc@10.0.0.12"
これ以降、すべてのkubectlコマンドはオペレーターホスト上で実行されます。
Verrazzanoオペレータのインストール
それでは、Verrazzanoオペレータをインストールしてみましょう。
$ kubectl apply -f https://github.com/verrazzano/verrazzano/releases/download/v1.0.1/operator.yaml
をクリックし、デプロイが完了するのを待ちます。
$ kubectl -n verrazzano-install rollout status deployment/verrazzano-platform-operator Waiting for deployment “verrazzano-platform-operator” rollout to finish: 0 of 1 updated replicas are available…
数分待てば、それまでにオペレーターがデプロイされているはずです。オペレーターが起動していることを確認します。
$ kubectl -n verrazzano-install get pods
NAME READY STATUS RESTARTS AGE
verrazzano-platform-operator-5f788568fd-w8cz7 1/1 Running 0 80s
Verrazzanoインストール
それでは、Verrazzanoをインストールしましょう。この演習では、devプロファイルを使用します。
kubectl apply -f - <<EOF
apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
name: hello-verrazzano
spec:
profile: dev
EOF
あとは、Verrazzanoのインストールを待つだけです。
kubectl wait \
--timeout=20m \
--for=condition=InstallComplete \
verrazzano/
Verrazzanoへのアクセス
Verrazzanoにアクセスするためには、コンソールのURLを取得する必要があります。https://verrazzano.io/docs/operations/
$ kubectl get vz -o yaml
URLのリストが出力されます。例えば、私のVerrazzanoコンソールのURLは https://verrazzano.default.168.138.102.88.nip.io です。
このURLにブラウザでアクセスすると、ログインを促されます。
ユーザー名は「verrazzano」、パスワードは以下のコマンドで取得できます。
kubectl get secret \
--namespace verrazzano-system verrazzano \
-o jsonpath={.data.password} | base64 \
--decode; echo
これで、Verrazzanoのコンソールにアクセスできるようになります。
Verrazzanoにアプリケーションをデプロイ
ここでは、hello-helidonアプリケーションをデプロイします。名前空間を作成します。
kubectl create namespace hello-helidon
で、Verrazzanoで管理され、Istioで有効になっている名前空間を識別するためのラベルを追加します。
kubectl label namespace hello-helidon verrazzano-managed=true istio-injection=enabled
次に、Verrazzanoコンポーネントをデプロイします。
kubectl apply -f https://raw.githubusercontent.com/verrazzano/verrazzano/master/examples/hello-helidon/hello-helidon-comp.yaml
そして、Application Configurationを作成します。
kubectl apply -f https://raw.githubusercontent.com/verrazzano/verrazzano/master/examples/hello-helidon/hello-helidon-app.yaml
さて、あなたのポッドの名前を取得します。
$ kubectl get pods -n hello-helidon NAME READY STATUS RESTARTS AGEhello-helidon-deployment-54979d7d74-6c9nw 1/1 Running 0 2m18s
そして、アプリケーションの準備ができているかどうかを確認します。
$ kubectl wait — timeout=300s — for=condition=Ready -n hello-helidon pod/hello-helidon-deployment-54979d7d74–6c9nw pod/hello-helidon-deployment-54979d7d74-6c9nw condition met
ロードバランサーのホスト名を調べます。
HOST=$(kubectl get gateway hello-helidon-hello-helidon-appconf-gw \
-n hello-helidon \
-o jsonpath='{.spec.servers[0].hosts[0]}')
その後、アプリケーションのテストを行うことができます。
$ curl -sk \
-X GET \
"https://${HOST}/greet"
これで返ってくるはずです。
{"message":"Hello World!"}
Observability
さて、アプリケーションを実行してアクセスできるようになったら、そのログやメトリクスも見てみましょう。Verrazzanoでは、ログ収集のためのELKスタックと、メトリクスとパフォーマンスの監視のためのPrometheusとGrafanaの組み合わせでカバーしています。
まずはGrafanaを見てみよう。Verrazzanoのコンソールのメインページには、Grafanaへのリンクがあります。ユーザー名とパスワードの組み合わせは、Grafanaにログインしたときと同じものを使えばよい。ログインしたら「Home」をクリックし、「Helidon Monitoring Dashboard」を選択します。
Helidonモニタリングダッシュボード
同様に、Kibana ダッシュボードにアクセスし、左メニューの Visualize アイコンをクリックします。インデックスパターンを作成するように促されます。verrazzano*を選択し、ウィザードに従ってインデックスパターンを追加します。hello-helidonを検索すると、以下のように表示されるはずです。
Kibanaのダッシュボード
ここから、独自のビジュアライゼーションやダッシュボードを作成することができます。
もし、Kubernetesクラスタそのものを覗き見したいとしたら?ここでもVerrazzanoにお任せください。Verrazzanoのコンソールから、Rancherへのリンクを探してクリックします。ユーザー名は「admin」で、パスワードは以下のようにして取得できます。
kubectl get secret \
--namespace cattle-system rancher-admin-secret \
-o jsonpath={.data.password} | base64 \
--decode; echo
ログインすると、クラスタのページが表示され、Explorerボタンが表示されます。このボタンをクリックすると、Kubernetesクラスタを見ることができます。
Rancher Kubernetes ダッシュボード
まとめ
Verrazzanoには、Kubernetesの運用面を支援する優れた機能が搭載されています。モニタリング、ロギング、セキュリティなど、Kubernetesやアプリケーションの管理者が得られる生産性は多岐にわたります。
この記事がお役に立てれば幸いです。今後は、マルチクラスタ展開やネットワークセキュリティなど、Verrazzanoの他の機能についても紹介していきます。
コメント
コメントを投稿