Azure Kubernetes Service (AKS)とは
AKSを使うと、ホストされている Kubernetes 環境を管理できます。
これにより、コンテナーオーケストレーションの知識がなくてもコンテナー化されたアプリケーションを迅速かつ簡単にデプロイおよび管理できるようになります。
Azure Kubernetes Service の概要 | Microsoft Docs
Azure Kubernetes Service (AKS) を使用すると、マネージド Kubernetes クラスターを Azure 内に簡単にデプロイできます。
責任の多くを Azure にオフロードすることで、Kubernetes の管理の複雑さと運用上のオーバーヘッドを軽減します。
Kubernetes マスターは、Azure によって管理されます。 ユーザーは、エージェント ノードの管理とメンテナンスだけを行います。
AKSの機能
アクセス、セキュリティ、および監視
AKS では、Azure Active Directory と統合して、Kubernetes のロールベースのアクセス制御を使用することができます。
また、クラスターとリソースの正常性を監視することもできます。
- ID とセキュリティ管理
- ログ記録と監視の統合
クラスターとノード
AKS ノードは Azure 仮想マシンで実行されます。 サービスを実行するクラスターノードやポッドの数を自動的にスケールアップ、ダウンすることができます。
開発ツールの統合
Kubernetes には、Helm、Draft、Visual Studio Code 用の Kubernetes 拡張機能など、
これらのツールは、AKS でシームレスに動作します。
Docker イメージのサポートとプライベート コンテナー レジストリ
AKS は Docker イメージ形式をサポートしています。
最初のセットアップ
AzureCloudShell を使うか、WindowsマシンからAzure CLIを実行するかどちらかを選択します。 今回はAzureCLIをAzureCloud Shellから実行してみました。
Azure CloudShell
Azure CLIのインストール
下記ページを参照
docs.microsoft.com
Azure Kubernetes Service (AKS)クラスターを作成する
リソースグループの作成
まず、AKSをデプロイするリソースグループを作成します。
az group create --name myAKSCluster --location eastus
2.AKSクラスターの作成
AKSクラスターを作成します。
次の例は"myAKSCluster"という名前のクラスターを 1 つのノードで作成する例です。
az aks create --resource-group myAKSCluster --name myAKSCluster --node-count 1 --enable-addons monitoring --generate-ssh-keys
3.Kubernetes のコマンドライン クライアントである kubectlのインストール
Azure Cloud Shellの場合は、既にインストールされているので実行しなくて大丈夫です。
az aks install-cli
4.資格情報をダウンロードし、Kubernetes CLI を構成してそれらの資格情報を使用する
az aks get-credentials --resource-group myAKSCluster --name myAKSCluster
5.接続確認として、クラスター ノードの一覧を取得する
kubectl get nodes
6. アプリケーションを定義するyamlファイルを作成する
"azure-vote.yaml"という名前のyamlファイルを下記コードをそのままコピペして作成します。
apiVersion: apps/v1 kind: Deployment metadata: name: azure-vote-back spec: replicas: 1 selector: matchLabels: app: azure-vote-back template: metadata: labels: app: azure-vote-back spec: containers: - name: azure-vote-back image: redis resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi ports: - containerPort: 6379 name: redis --- apiVersion: v1 kind: Service metadata: name: azure-vote-back spec: ports: - port: 6379 selector: app: azure-vote-back --- apiVersion: apps/v1 kind: Deployment metadata: name: azure-vote-front spec: replicas: 1 selector: matchLabels: app: azure-vote-front template: metadata: labels: app: azure-vote-front spec: containers: - name: azure-vote-front image: microsoft/azure-vote-front:v1 resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi ports: - containerPort: 80 env: - name: REDIS value: "azure-vote-back" --- apiVersion: v1 kind: Service metadata: name: azure-vote-front spec: type: LoadBalancer ports: - port: 80 selector: app: azure-vote-front
7.CloudShell上で実行できるように作成したyamlファイル(azure-vote.yaml)をアップロードする
ファイルのアップロードボタンを使用してyamlファイルをアップロードします。
8.アプリケーションを実行する
アプリケーションが実行されると、アプリケーション フロントエンドをインターネットに公開する Kubernetes サービスが作成されます。
kubectl apply -f azure-vote.yaml
9.アプリケーションをテストする
Kubernetes サービス作成の進行状況を監視するには下記のコマンドを実行します。
kubectl get service azure-vote-front --watch
azure-vote-front サービスの EXTERNAL-IPが"保留中"から"IPアドレス"に変わったらCtrl + C
で監視を停止します。
取得したEXTERNAL-IPでブラウザにアクセスをすると、下記画像のようなAzure Vote Appが表示されます。
10.クラスターを削除する
クラスタが不要になったら下記コマンドを実行して削除します。
az aks delete --resource-group myResourceGroup --name myAKSCluster --no-wait