Azure

Azure Kubernetes Service (AKS)でknativeを動作させる方法

はじめに

AKSでknativeを動作させるためには、公式ドキュメントに加えひと手間が必要となるのでその方法を解説します。
全体の流れは、AKSを起動し、istioのインストール、knativeのインストールというドキュメントと同様ですが途中ドキュメントにない設定が必要となります。
では解説していきます。

knative自体の説明は省きます。
また、検証したバージョンなどに依存関係がある可能もあるので完全に動作する保証はありません。
Azure CLIおよびkubectlがすでに利用できる状態であることを前提にしています。

ドキュメント
https://www.knative.dev/docs/install/knative-with-aks/

AKSの起動

基本的にドキュメントと同様です。

環境の名前を指定します。

リソースグループを作成します。

AKSを起動します。
バージョンは1.11.8です。たぶん1.12系でも大丈夫かと・・・

kubectlで操作できるように設定します。(–overwrite-existing は既存の設定の上書き)

問題なく起動していることを確認します。

istioのインストール

ドキュメント通り進めます。

ラベルを付けます。

起動されているPodを確認します。

RunningもしくはCompletedになるのを待ちます。

knativeのインストール

ドキュメント通り進めます。

以下をApplyしますがそれぞれPodの起動を確認しながら進めます。
そして途中別途servingをApply後作業が発生します。

適用中にエラーが発生した場合は再度同じものを走らせます。

serving を適用します。

Podの起動を確認します。

activatorとautoscalerがエラーになります。これを解消する必要があります。

以下で問題が報告されています。解決方法も記載されています。
詳しくは書かれていませんがistio側に問題があるようです。

Cannot install Knative serving
https://github.com/knative/serving/issues/2878
Requests don’t make it through the activator on AKS
https://github.com/knative/serving/issues/3026
Internal Kubernetes API Calls Blocked by Istio
https://github.com/istio/istio/issues/8696

最初にクラスターのFQDNを取得します。

次にFQDNをもとに以下のマニフェストを作成します。
それぞれ自分の環境に合わせて変更します。

istioの設定が完了したらPodを再度確認します。

すべてRunningしたことを確認します。

buildを展開します。

Podを確認します。

eventingを展開します。

Podを確認します。

eventing-sourcesを展開します。

Podを確認します。

monitoringを展開します。

Podを確認します。

clusterroleを展開します。

以上で全てインストールが完了です。

動作確認

動作確認をドキュメント通り進めます。
https://www.knative.dev/docs/install/getting-started-knative-app/

以下を展開します。

INGRESSGATEWAYを指定します。

Gatewayを指定しSVCを確認します。

IPを取得します。

URLを確認します。

「Hello Go Sample v1!」が帰ってくることを確認します。

以上で動作確認は完了です。

まとめ

Azureでもknativeが動作するようになりました。
今後、knativeを利用したアプリケーションも増えてくることでしょう。
また、Knative Lambda Runtime を利用すると Lambda on Azureなんてことも出来るようになると思います。
楽しみですね。

関連記事

  1. Azure

    Azure Cloud Shell のユーザーを確認してみる。それでもrootが欲しい。

    rootにはなれません。アカウントのパスワードを入力しても無駄でし…

  2. AWS

    AzureとAWSを接続してみようと思うけどどうやるの?

    はじめにくどうです。2015年初投稿です。クラウド間で接続して…

  3. Azure

    Azure Load Balancerと Azure Application Gateway のアク…

    はじめにくどうです。Azureにはアクセスを負荷分散す…

  4. Azure

    ルートテーブルもPowerShellではなくポータルで設定できます。

    はじめにくどうです。本日2本目です。以前はルートテーブ…

  5. Azure

    Azure のiPhoneアプリがリリースされた。

    BUILDBUILD をみながらiPhoneアプリがリリー…

  6. Kubernetes

    kubernetesに展開するfluentd-daemonset-elasticsearchのcon…

    はじめにAKSなどkubernetesで、fluentdを利用して…

  1. AWS

    Deep Security as a Service (DSaaS)でProxy…
  2. Linux

    超メモ:一発rubyインストールなスクリプト
  3. Azure

    de:code 2016に参加した!
  4. Azure

    AzureにKubernetesを展開する5つの方法
  5. Azure

    リリース前にリソースはLockしようぜ。間違って削除したらおバカです。
PAGE TOP