SlideShare a Scribd company logo
1 of 23
AKS と ACI を
組み合わせて使ってみた
青柳 英明
2018/06/23
JAZUG 熊本(くまあず)「九州JAZUG連動企画 Day2」
自己紹介
青柳 英明
職業: 福岡で インフラSE やってます
(オンプレOnly)
経歴: アプリケーション開発 … 3年
インフラエンジニア … 17年
Azure歴: 約2年?
(久々に触りました・・・)
コアメンバー:
Fukuoka.NET
(ふくてん)
JAWS-UG福岡
AKS (Azure Kubernetes Service) とは
→ Azure が提供する 「マネージド」 な Kubernetes サービス
【 アンマネージド 】
API サーバ
管理サービス
データベース
Master ノード
(管理プロセスを動かす)
Worker ノード
(コンテナ実行ホスト)
【 マネージド 】
API サーバ
管理サービス
データベース
サーバ構築不要
サーバ管理不要 Worker ノード
(コンテナ実行ホスト)
ACI (Azure Container Instance) とは
→ Azure が提供する 「サーバレス」 なコンテナ実行環境
【 通常のコンテナ実行環境 】
Docker
サーバ (物理/仮想) をホストとして利用
→ 構築や管理が必要
【 サーバレスなコンテナ実行環境 】
Docker
ホスト/Docker はサービスとして提供
→ 構築・管理は不要
AKS と ACI を組み合わせて使う
【 標準の AKS 環境 】
API サーバ
管理サービス
データベース
サーバ構築不要
サーバ管理不要 Worker ノード
(Azure VM)
【 AKS with ACI 】
API サーバ
管理サービス
データベース
サーバ構築不要
サーバ管理不要
ACI 上で実行
サーバ構築不要
サーバ管理不要
→ 管理ノード・コンテナ実行ノード ともに構築・管理が不要になる
「Virtual Kubelet」 ・・・ AKS with ACI を実現するためのソフトウェア
AKS
Kubelet Kubelet
Worker ノード
(Azure VM)
Virtual Kubelet
ACI ACI ACI
(実態の無いノード)
AKS 環境構築 (1/3)
使用するコマンドツールの準備
・ Azure CLI
・ Kubectl
・ Helm … Virtual Kubelet の導入で使用
Azure Cloud Shell を使う場合 → 上記は既に導入済み
PC / Mac を使う場合 → 適時導入
「Azure Cloud Shell」
→ Azure Portal の右上のアイコンから起動
AKS 環境構築 (2/3)
ASK クラスタの作成
・ リソースグループの作成
az group create –n myResourceGroup –l westus
AKS/ACI が利用できるリージョンに制限あり → 米国西部などを使用
・ AKS クラスタの作成
az aks create -n myAksCluster -g myResourceGroup
デフォルト (オプションを何もつけない) の場合
→ サイズ 「DS1v2」 のノードが 「3つ」 作成される (料金を確認しておきましょう)
AKS 環境構築 (3/3)
Kubectl コマンドツールの設定と確認
・ 作成した AKS クラスタへの接続情報 (資格情報) を取り込む
az aks get-credentials -n myAksCluster -g myResourceGroup
→ 「~/.kube/config」 へインポートされる
・ kubectl コマンドで接続できること (情報が取得できること) を確認
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
aks-nodepool1-38988403-0 Ready agent 22m v1.9.6
aks-nodepool1-38988403-1 Ready agent 22m v1.9.6
aks-nodepool1-38988403-2 Ready agent 22m v1.9.6
Virtual Kubelet 環境構築 (1/3)
Helm コマンドツールの設定と確認
・ helm の初期化
helm init
・ 正常に初期化されたことを確認
$ helm version
Client: &version.Version{SemVer:“v2.9.1”, GitCommit:・・・
Server: &version.Version{SemVer:“v2.9.1”, GitCommit:・・・
「Server」 が上手く表示されない場合 → ここまでの設定を見直し
Virtual Kubelet 環境構築 (2/3)
Virtual Kubelet の導入
・ 「ACI コネクター」 を使った Virtual Kubelet のインストール
az aks install-connector -n myAksCluster -g myResourceGroup
--connector-name myconnector
※ 実際は1行
README の手順にある
「Manual set-up」
「Deployment of the ACI provider in your cluster」
は実施する必要なし
Virtual Kubelet 環境構築 (3/3)
環境構築の結果確認
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
aks-nodepool1-38988403-0 Ready agent 1d v1.9.6
aks-nodepool1-38988403-1 Ready agent 1d v1.9.6
aks-nodepool1-38988403-2 Ready agent 1d v1.9.6
virtual-kubelet-myconnector-linux Ready agent 1d v1.8.3
$ kubectl get pods –o wide
NAME READY
myconnector-linux-virtual-kubelet-for-aks-68f6b94867-5z55f 1/1
STATUS RESTARTS AGE IP NODE
Running 0 1d 10.244.0.4 aks-nodepool1-38988403-0
動作確認 (その1)
README の手順に従い、サンプル Pod (コンテナ) をデプロイ
apiVersion: v1
kind: Pod
metadata:
name: helloworld
spec:
containers:
- image: microsoft/aci-helloworld
imagePullPolicy: Always
name: helloworld
・・・(略)・・・
nodeName: virtual-kubelet-myconnector-linux
tolerations:
- key: azure.com/aci
effect: NoSchedule
この記述が必要
動作確認 (その2)
自作のテストコンテナをデプロイ
・ 複数のPodを展開
・ ロードバランサによる負荷分散
TCP/80
Service
Load
Balancer
Pod
ACI
Pod
ACI
Pod
ACI
replicas:3
Deployment
ReplicaSet
・・・ Kubernetes Resouece
・・・ Azure Service
展開した 3 つの Pod が、
Virtual Kubelet が管理する仮想ノード上で稼働している
$ kubectl get pods -o wide
NAME READY STATUS
myconnector-linux-virtual-kubelet-for-aks-68f6b94867-5z55f 1/1 Running
webserver-aci-deploy-7475c87d6f-8s57w 1/1 Running
webserver-aci-deploy-7475c87d6f-d5lg6 1/1 Running
webserver-aci-deploy-7475c87d6f-xrbdb 1/1 Running
RESTARTS AGE IP NODE
0 1d 10.244.0.4 aks-nodepool1-38988403-0
0 4m 104.42.50.138 virtual-kubelet-myconnector-linux
0 4m 104.210.53.227 virtual-kubelet-myconnector-linux
0 4m 104.42.119.65 virtual-kubelet-myconnector-linux
ACI のインスタンス一覧を確認
→ 1つの Pod につき、1つのコンテナインスタンスが作成されている
$ az container list -o table
Name Image
--------------------------------------------- ---------------------------------------------
default-webserver-aci-deploy-7475c87d6f-8s57w kumaazu2018.azurecr.io/go-webserver-sample:v1
default-webserver-aci-deploy-7475c87d6f-d5lg6 kumaazu2018.azurecr.io/go-webserver-sample:v1
default-webserver-aci-deploy-7475c87d6f-xrbdb kumaazu2018.azurecr.io/go-webserver-sample:v1
ACR (Azure Container Registry) の使用
公式コンテナイメージ
の場合
(動作確認 その1)
自作コンテナイメージ
の場合
(動作確認 その2)
Docker Hub
pull
認証なし
Docker
push
ACR
pull
認証が必要
AKS/ACI
ACR の認証設定
AKS の場合
https://docs.microsoft.com/ja-jp/azure/container-registry/container-registry-auth-aks#grant-aks-access-to-acr
→ Virtual Kubelet (AKS with ACI) の場合、この方法ではダメ
ACI の場合
・ az container create の 「--registry-username」 「--registry-password」 オプション
→ ACI は Virtual Kubelet から暗黙的にデプロイされるため、この方法は使えない
・ 「サービスプリンシパル」 を使用して認証設定を行う
https://docs.microsoft.com/ja-jp/azure/container-registry/container-registry-auth-aks#access-with-kubernetes-secret
→ Virtual Kubelet (AKS with ACI) の場合は、この方法を使う必要がある
サービスプリンシパルを作成し、資格情報を抽出する
$ ACR_NAME=KumaAzu2018
$ SERVICE_PRINCIPAL_NAME=acr-service-principal
$ ACR_LOGIN_SERVER=$(az acr show --name $ACR_NAME --query loginServer --output tsv)
$ ACR_REGISTRY_ID=$(az acr show --name $ACR_NAME --query id --output tsv)
$ SP_PASSWD=$(az ad sp create-for-rbac --name $SERVICE_PRINCIPAL_NAME --role Reader --scopes $ACR_REGISTRY_ID
--query password --output tsv)
$ CLIENT_ID=$(az ad sp show --id http://$SERVICE_PRINCIPAL_NAME --query appId --output tsv)
$ echo $ACR_LOGIN_SERVER
$ echo $CLIENT_ID
$ echo $SP_PASSWD
資格情報を Kubenetes の 「シークレット」 に格納する
$ kubectl create secret docker-registry acr-auth --docker-server $ACR_LOGIN_SERVER --docker-username $CLIENT_ID
--docker-password $SP_PASSWD --docker-email "foo@example.com"
secret "acr-auth" created
$ kubectl get secrets -o wide
NAME TYPE DATA AGE
acr-auth kubernetes.io/dockerconfigjson 1 24s
default-token-58jjl kubernetes.io/service-account-token 3 18h
myconnector-linux-virtual-kubelet-for-aks Opaque 3 18h
Kubenetes マニフェストファイルの記述内容 (抜粋)
spec:
containers:
- name: go-webserver-sample
image: kumaazu2018.azurecr.io/go-webserver-sample:v1
imagePullSecrets:
- name: acr-auth
「imagePullSecrets」 を記述
→ イメージを ACR から pull する際、
シークレットから資格情報を取り出して認証を行う
まとめ (所感)
・ 現状 (プレビュー) では、複数のコマンドツール (Azure CLI、kubectl、Helm) を
組み合わせて設定する必要あり
・ ACR の認証設定や、Kubernetes マニフェストファイルの記述など、
面倒な部分が多い
正式リリース時には、Azure CLI コマンド (az aks) に統合されたり、
GUI (ポータル) でも設定できるようになる・・・のかな?(期待)
ご清聴ありがとうございました

More Related Content

What's hot

監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性Ohyama Masanori
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話Yuta Shimada
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介AdvancedTechNight
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
Azure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステストAzure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステストKuniteru Asami
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
運用視点でのAWSサポート利用Tips
運用視点でのAWSサポート利用Tips運用視点でのAWSサポート利用Tips
運用視点でのAWSサポート利用TipsNoritaka Sekiyama
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)NTT DATA Technology & Innovation
 
試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』健太 松浦
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...NTT DATA Technology & Innovation
 
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web ServiceアプリケーションAngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーションssuser070fa9
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法についてAzure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法についてShinya Yamaguchi
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTT DATA Technology & Innovation
 
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)NTT DATA Technology & Innovation
 
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践日本マイクロソフト株式会社
 
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 

What's hot (20)

監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
Azure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステストAzure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステスト
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
運用視点でのAWSサポート利用Tips
運用視点でのAWSサポート利用Tips運用視点でのAWSサポート利用Tips
運用視点でのAWSサポート利用Tips
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
 
試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
 
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web ServiceアプリケーションAngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法についてAzure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
 
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
 
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
 
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
 

Similar to AKS と ACI を組み合わせて使ってみた

これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門Yuto Takei
 
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsAKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsYoshio Terada
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコムTomoyaTakegoshi
 
OSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUGOSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUGHideki Saito
 
半日でわかる コンテナー技術 (応用編)
半日でわかる コンテナー技術 (応用編)半日でわかる コンテナー技術 (応用編)
半日でわかる コンテナー技術 (応用編)Toru Makabe
 
Osc fukuoka xAI Meetup
Osc fukuoka xAI MeetupOsc fukuoka xAI Meetup
Osc fukuoka xAI Meetupru pic
 
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーションMasahito Zembutsu
 
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...VirtualTech Japan Inc.
 
Java on Kubernetes on Azure
Java on Kubernetes on AzureJava on Kubernetes on Azure
Java on Kubernetes on AzureYoshio Terada
 
AWS Black Belt Techシリーズ AWS Elastic Beanstalk
AWS Black Belt Techシリーズ  AWS  Elastic  BeanstalkAWS Black Belt Techシリーズ  AWS  Elastic  Beanstalk
AWS Black Belt Techシリーズ AWS Elastic BeanstalkAmazon Web Services Japan
 
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11Masaya Aoyama
 
OCP Meetup Tokyo #05 ECK on OCP
OCP Meetup Tokyo #05 ECK on OCPOCP Meetup Tokyo #05 ECK on OCP
OCP Meetup Tokyo #05 ECK on OCPTetsuya Sodo
 
Virtual Kubelet and Virtual Node
Virtual Kubelet and Virtual NodeVirtual Kubelet and Virtual Node
Virtual Kubelet and Virtual NodeYoshio Terada
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)Daisuke Ikeda
 
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたKubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたAkihito Inoh
 
Windows コンテナを AKS に追加する
Windows コンテナを AKS に追加するWindows コンテナを AKS に追加する
Windows コンテナを AKS に追加するYuto Takei
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShiftEtsuji Nakai
 

Similar to AKS と ACI を組み合わせて使ってみた (20)

これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門
 
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsAKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム
 
OSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUGOSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUG
 
半日でわかる コンテナー技術 (応用編)
半日でわかる コンテナー技術 (応用編)半日でわかる コンテナー技術 (応用編)
半日でわかる コンテナー技術 (応用編)
 
Open Source x AI
Open Source x AIOpen Source x AI
Open Source x AI
 
Osc fukuoka xAI Meetup
Osc fukuoka xAI MeetupOsc fukuoka xAI Meetup
Osc fukuoka xAI Meetup
 
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション
 
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
 
Java on Kubernetes on Azure
Java on Kubernetes on AzureJava on Kubernetes on Azure
Java on Kubernetes on Azure
 
AWS Black Belt Techシリーズ AWS Elastic Beanstalk
AWS Black Belt Techシリーズ  AWS  Elastic  BeanstalkAWS Black Belt Techシリーズ  AWS  Elastic  Beanstalk
AWS Black Belt Techシリーズ AWS Elastic Beanstalk
 
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
 
OCP Meetup Tokyo #05 ECK on OCP
OCP Meetup Tokyo #05 ECK on OCPOCP Meetup Tokyo #05 ECK on OCP
OCP Meetup Tokyo #05 ECK on OCP
 
AlibabaCloudではじめるKubernetes
AlibabaCloudではじめるKubernetesAlibabaCloudではじめるKubernetes
AlibabaCloudではじめるKubernetes
 
Virtual Kubelet and Virtual Node
Virtual Kubelet and Virtual NodeVirtual Kubelet and Virtual Node
Virtual Kubelet and Virtual Node
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたKubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
 
Windows コンテナを AKS に追加する
Windows コンテナを AKS に追加するWindows コンテナを AKS に追加する
Windows コンテナを AKS に追加する
 
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
 

More from Hideaki Aoyagi

re:Invent 2021のS3アップデート紹介 & Glacier Instant Retrieval試してみた
re:Invent 2021のS3アップデート紹介 & Glacier Instant Retrieval試してみたre:Invent 2021のS3アップデート紹介 & Glacier Instant Retrieval試してみた
re:Invent 2021のS3アップデート紹介 & Glacier Instant Retrieval試してみたHideaki Aoyagi
 
Amazon EKS への道 ~ EKS 再入門 ~
Amazon EKS への道 ~ EKS 再入門 ~Amazon EKS への道 ~ EKS 再入門 ~
Amazon EKS への道 ~ EKS 再入門 ~Hideaki Aoyagi
 
Knative Lambda Runtimeを試してみた
Knative Lambda Runtimeを試してみたKnative Lambda Runtimeを試してみた
Knative Lambda Runtimeを試してみたHideaki Aoyagi
 
コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?
コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?
コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?Hideaki Aoyagi
 
AWSのセキュリティ関連サービスについてザっと整理してみた
AWSのセキュリティ関連サービスについてザっと整理してみたAWSのセキュリティ関連サービスについてザっと整理してみた
AWSのセキュリティ関連サービスについてザっと整理してみたHideaki Aoyagi
 
Amazon EKS への道 ~入門編~
Amazon EKS への道 ~入門編~Amazon EKS への道 ~入門編~
Amazon EKS への道 ~入門編~Hideaki Aoyagi
 
「ふくてん」に来てんね
「ふくてん」に来てんね「ふくてん」に来てんね
「ふくてん」に来てんねHideaki Aoyagi
 
完全オンプレエンジニアがJAWS-UGへ参加してみて
完全オンプレエンジニアがJAWS-UGへ参加してみて完全オンプレエンジニアがJAWS-UGへ参加してみて
完全オンプレエンジニアがJAWS-UGへ参加してみてHideaki Aoyagi
 
「豆の話」の続きのお話
「豆の話」の続きのお話「豆の話」の続きのお話
「豆の話」の続きのお話Hideaki Aoyagi
 
Azure/GCP使いの人にも知って欲しい(?) AWS Elastic Beanstalk
Azure/GCP使いの人にも知って欲しい(?)  AWS Elastic BeanstalkAzure/GCP使いの人にも知って欲しい(?)  AWS Elastic Beanstalk
Azure/GCP使いの人にも知って欲しい(?) AWS Elastic BeanstalkHideaki Aoyagi
 
Visual Studio 2017 事はじめ
Visual Studio 2017 事はじめVisual Studio 2017 事はじめ
Visual Studio 2017 事はじめHideaki Aoyagi
 
「さくらのIoT」でやってみたいこと
「さくらのIoT」でやってみたいこと「さくらのIoT」でやってみたいこと
「さくらのIoT」でやってみたいことHideaki Aoyagi
 
とある初老インフラエンジニアの憂鬱
とある初老インフラエンジニアの憂鬱とある初老インフラエンジニアの憂鬱
とある初老インフラエンジニアの憂鬱Hideaki Aoyagi
 
はじめませんか? Bash on Windows
はじめませんか? Bash on Windowsはじめませんか? Bash on Windows
はじめませんか? Bash on WindowsHideaki Aoyagi
 
AWS で VDI / DaaS っぽいものを作ってみた
AWS で VDI / DaaS っぽいものを作ってみたAWS で VDI / DaaS っぽいものを作ってみた
AWS で VDI / DaaS っぽいものを作ってみたHideaki Aoyagi
 
「Azureの動くしくみ」の片鱗を見て
「Azureの動くしくみ」の片鱗を見て「Azureの動くしくみ」の片鱗を見て
「Azureの動くしくみ」の片鱗を見てHideaki Aoyagi
 
ネットワーク構成から考える AWS IaaS 管理
ネットワーク構成から考える AWS IaaS 管理ネットワーク構成から考える AWS IaaS 管理
ネットワーク構成から考える AWS IaaS 管理Hideaki Aoyagi
 

More from Hideaki Aoyagi (18)

re:Invent 2021のS3アップデート紹介 & Glacier Instant Retrieval試してみた
re:Invent 2021のS3アップデート紹介 & Glacier Instant Retrieval試してみたre:Invent 2021のS3アップデート紹介 & Glacier Instant Retrieval試してみた
re:Invent 2021のS3アップデート紹介 & Glacier Instant Retrieval試してみた
 
AWS Amplify 入門
AWS Amplify 入門AWS Amplify 入門
AWS Amplify 入門
 
Amazon EKS への道 ~ EKS 再入門 ~
Amazon EKS への道 ~ EKS 再入門 ~Amazon EKS への道 ~ EKS 再入門 ~
Amazon EKS への道 ~ EKS 再入門 ~
 
Knative Lambda Runtimeを試してみた
Knative Lambda Runtimeを試してみたKnative Lambda Runtimeを試してみた
Knative Lambda Runtimeを試してみた
 
コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?
コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?
コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?
 
AWSのセキュリティ関連サービスについてザっと整理してみた
AWSのセキュリティ関連サービスについてザっと整理してみたAWSのセキュリティ関連サービスについてザっと整理してみた
AWSのセキュリティ関連サービスについてザっと整理してみた
 
Amazon EKS への道 ~入門編~
Amazon EKS への道 ~入門編~Amazon EKS への道 ~入門編~
Amazon EKS への道 ~入門編~
 
「ふくてん」に来てんね
「ふくてん」に来てんね「ふくてん」に来てんね
「ふくてん」に来てんね
 
完全オンプレエンジニアがJAWS-UGへ参加してみて
完全オンプレエンジニアがJAWS-UGへ参加してみて完全オンプレエンジニアがJAWS-UGへ参加してみて
完全オンプレエンジニアがJAWS-UGへ参加してみて
 
「豆の話」の続きのお話
「豆の話」の続きのお話「豆の話」の続きのお話
「豆の話」の続きのお話
 
Azure/GCP使いの人にも知って欲しい(?) AWS Elastic Beanstalk
Azure/GCP使いの人にも知って欲しい(?)  AWS Elastic BeanstalkAzure/GCP使いの人にも知って欲しい(?)  AWS Elastic Beanstalk
Azure/GCP使いの人にも知って欲しい(?) AWS Elastic Beanstalk
 
Visual Studio 2017 事はじめ
Visual Studio 2017 事はじめVisual Studio 2017 事はじめ
Visual Studio 2017 事はじめ
 
「さくらのIoT」でやってみたいこと
「さくらのIoT」でやってみたいこと「さくらのIoT」でやってみたいこと
「さくらのIoT」でやってみたいこと
 
とある初老インフラエンジニアの憂鬱
とある初老インフラエンジニアの憂鬱とある初老インフラエンジニアの憂鬱
とある初老インフラエンジニアの憂鬱
 
はじめませんか? Bash on Windows
はじめませんか? Bash on Windowsはじめませんか? Bash on Windows
はじめませんか? Bash on Windows
 
AWS で VDI / DaaS っぽいものを作ってみた
AWS で VDI / DaaS っぽいものを作ってみたAWS で VDI / DaaS っぽいものを作ってみた
AWS で VDI / DaaS っぽいものを作ってみた
 
「Azureの動くしくみ」の片鱗を見て
「Azureの動くしくみ」の片鱗を見て「Azureの動くしくみ」の片鱗を見て
「Azureの動くしくみ」の片鱗を見て
 
ネットワーク構成から考える AWS IaaS 管理
ネットワーク構成から考える AWS IaaS 管理ネットワーク構成から考える AWS IaaS 管理
ネットワーク構成から考える AWS IaaS 管理
 

Recently uploaded

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Recently uploaded (9)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

AKS と ACI を組み合わせて使ってみた

  • 1. AKS と ACI を 組み合わせて使ってみた 青柳 英明 2018/06/23 JAZUG 熊本(くまあず)「九州JAZUG連動企画 Day2」
  • 2. 自己紹介 青柳 英明 職業: 福岡で インフラSE やってます (オンプレOnly) 経歴: アプリケーション開発 … 3年 インフラエンジニア … 17年 Azure歴: 約2年? (久々に触りました・・・) コアメンバー: Fukuoka.NET (ふくてん) JAWS-UG福岡
  • 3. AKS (Azure Kubernetes Service) とは → Azure が提供する 「マネージド」 な Kubernetes サービス 【 アンマネージド 】 API サーバ 管理サービス データベース Master ノード (管理プロセスを動かす) Worker ノード (コンテナ実行ホスト) 【 マネージド 】 API サーバ 管理サービス データベース サーバ構築不要 サーバ管理不要 Worker ノード (コンテナ実行ホスト)
  • 4. ACI (Azure Container Instance) とは → Azure が提供する 「サーバレス」 なコンテナ実行環境 【 通常のコンテナ実行環境 】 Docker サーバ (物理/仮想) をホストとして利用 → 構築や管理が必要 【 サーバレスなコンテナ実行環境 】 Docker ホスト/Docker はサービスとして提供 → 構築・管理は不要
  • 5. AKS と ACI を組み合わせて使う 【 標準の AKS 環境 】 API サーバ 管理サービス データベース サーバ構築不要 サーバ管理不要 Worker ノード (Azure VM) 【 AKS with ACI 】 API サーバ 管理サービス データベース サーバ構築不要 サーバ管理不要 ACI 上で実行 サーバ構築不要 サーバ管理不要 → 管理ノード・コンテナ実行ノード ともに構築・管理が不要になる
  • 6. 「Virtual Kubelet」 ・・・ AKS with ACI を実現するためのソフトウェア AKS Kubelet Kubelet Worker ノード (Azure VM) Virtual Kubelet ACI ACI ACI (実態の無いノード)
  • 7. AKS 環境構築 (1/3) 使用するコマンドツールの準備 ・ Azure CLI ・ Kubectl ・ Helm … Virtual Kubelet の導入で使用 Azure Cloud Shell を使う場合 → 上記は既に導入済み PC / Mac を使う場合 → 適時導入 「Azure Cloud Shell」 → Azure Portal の右上のアイコンから起動
  • 8. AKS 環境構築 (2/3) ASK クラスタの作成 ・ リソースグループの作成 az group create –n myResourceGroup –l westus AKS/ACI が利用できるリージョンに制限あり → 米国西部などを使用 ・ AKS クラスタの作成 az aks create -n myAksCluster -g myResourceGroup デフォルト (オプションを何もつけない) の場合 → サイズ 「DS1v2」 のノードが 「3つ」 作成される (料金を確認しておきましょう)
  • 9. AKS 環境構築 (3/3) Kubectl コマンドツールの設定と確認 ・ 作成した AKS クラスタへの接続情報 (資格情報) を取り込む az aks get-credentials -n myAksCluster -g myResourceGroup → 「~/.kube/config」 へインポートされる ・ kubectl コマンドで接続できること (情報が取得できること) を確認 $ kubectl get nodes NAME STATUS ROLES AGE VERSION aks-nodepool1-38988403-0 Ready agent 22m v1.9.6 aks-nodepool1-38988403-1 Ready agent 22m v1.9.6 aks-nodepool1-38988403-2 Ready agent 22m v1.9.6
  • 10. Virtual Kubelet 環境構築 (1/3) Helm コマンドツールの設定と確認 ・ helm の初期化 helm init ・ 正常に初期化されたことを確認 $ helm version Client: &version.Version{SemVer:“v2.9.1”, GitCommit:・・・ Server: &version.Version{SemVer:“v2.9.1”, GitCommit:・・・ 「Server」 が上手く表示されない場合 → ここまでの設定を見直し
  • 11. Virtual Kubelet 環境構築 (2/3) Virtual Kubelet の導入 ・ 「ACI コネクター」 を使った Virtual Kubelet のインストール az aks install-connector -n myAksCluster -g myResourceGroup --connector-name myconnector ※ 実際は1行 README の手順にある 「Manual set-up」 「Deployment of the ACI provider in your cluster」 は実施する必要なし
  • 12. Virtual Kubelet 環境構築 (3/3) 環境構築の結果確認 $ kubectl get nodes NAME STATUS ROLES AGE VERSION aks-nodepool1-38988403-0 Ready agent 1d v1.9.6 aks-nodepool1-38988403-1 Ready agent 1d v1.9.6 aks-nodepool1-38988403-2 Ready agent 1d v1.9.6 virtual-kubelet-myconnector-linux Ready agent 1d v1.8.3 $ kubectl get pods –o wide NAME READY myconnector-linux-virtual-kubelet-for-aks-68f6b94867-5z55f 1/1 STATUS RESTARTS AGE IP NODE Running 0 1d 10.244.0.4 aks-nodepool1-38988403-0
  • 13. 動作確認 (その1) README の手順に従い、サンプル Pod (コンテナ) をデプロイ apiVersion: v1 kind: Pod metadata: name: helloworld spec: containers: - image: microsoft/aci-helloworld imagePullPolicy: Always name: helloworld ・・・(略)・・・ nodeName: virtual-kubelet-myconnector-linux tolerations: - key: azure.com/aci effect: NoSchedule この記述が必要
  • 14. 動作確認 (その2) 自作のテストコンテナをデプロイ ・ 複数のPodを展開 ・ ロードバランサによる負荷分散 TCP/80 Service Load Balancer Pod ACI Pod ACI Pod ACI replicas:3 Deployment ReplicaSet ・・・ Kubernetes Resouece ・・・ Azure Service
  • 15. 展開した 3 つの Pod が、 Virtual Kubelet が管理する仮想ノード上で稼働している $ kubectl get pods -o wide NAME READY STATUS myconnector-linux-virtual-kubelet-for-aks-68f6b94867-5z55f 1/1 Running webserver-aci-deploy-7475c87d6f-8s57w 1/1 Running webserver-aci-deploy-7475c87d6f-d5lg6 1/1 Running webserver-aci-deploy-7475c87d6f-xrbdb 1/1 Running RESTARTS AGE IP NODE 0 1d 10.244.0.4 aks-nodepool1-38988403-0 0 4m 104.42.50.138 virtual-kubelet-myconnector-linux 0 4m 104.210.53.227 virtual-kubelet-myconnector-linux 0 4m 104.42.119.65 virtual-kubelet-myconnector-linux
  • 16. ACI のインスタンス一覧を確認 → 1つの Pod につき、1つのコンテナインスタンスが作成されている $ az container list -o table Name Image --------------------------------------------- --------------------------------------------- default-webserver-aci-deploy-7475c87d6f-8s57w kumaazu2018.azurecr.io/go-webserver-sample:v1 default-webserver-aci-deploy-7475c87d6f-d5lg6 kumaazu2018.azurecr.io/go-webserver-sample:v1 default-webserver-aci-deploy-7475c87d6f-xrbdb kumaazu2018.azurecr.io/go-webserver-sample:v1
  • 17.
  • 18. ACR (Azure Container Registry) の使用 公式コンテナイメージ の場合 (動作確認 その1) 自作コンテナイメージ の場合 (動作確認 その2) Docker Hub pull 認証なし Docker push ACR pull 認証が必要 AKS/ACI
  • 19. ACR の認証設定 AKS の場合 https://docs.microsoft.com/ja-jp/azure/container-registry/container-registry-auth-aks#grant-aks-access-to-acr → Virtual Kubelet (AKS with ACI) の場合、この方法ではダメ ACI の場合 ・ az container create の 「--registry-username」 「--registry-password」 オプション → ACI は Virtual Kubelet から暗黙的にデプロイされるため、この方法は使えない ・ 「サービスプリンシパル」 を使用して認証設定を行う https://docs.microsoft.com/ja-jp/azure/container-registry/container-registry-auth-aks#access-with-kubernetes-secret → Virtual Kubelet (AKS with ACI) の場合は、この方法を使う必要がある
  • 20. サービスプリンシパルを作成し、資格情報を抽出する $ ACR_NAME=KumaAzu2018 $ SERVICE_PRINCIPAL_NAME=acr-service-principal $ ACR_LOGIN_SERVER=$(az acr show --name $ACR_NAME --query loginServer --output tsv) $ ACR_REGISTRY_ID=$(az acr show --name $ACR_NAME --query id --output tsv) $ SP_PASSWD=$(az ad sp create-for-rbac --name $SERVICE_PRINCIPAL_NAME --role Reader --scopes $ACR_REGISTRY_ID --query password --output tsv) $ CLIENT_ID=$(az ad sp show --id http://$SERVICE_PRINCIPAL_NAME --query appId --output tsv) $ echo $ACR_LOGIN_SERVER $ echo $CLIENT_ID $ echo $SP_PASSWD
  • 21. 資格情報を Kubenetes の 「シークレット」 に格納する $ kubectl create secret docker-registry acr-auth --docker-server $ACR_LOGIN_SERVER --docker-username $CLIENT_ID --docker-password $SP_PASSWD --docker-email "foo@example.com" secret "acr-auth" created $ kubectl get secrets -o wide NAME TYPE DATA AGE acr-auth kubernetes.io/dockerconfigjson 1 24s default-token-58jjl kubernetes.io/service-account-token 3 18h myconnector-linux-virtual-kubelet-for-aks Opaque 3 18h
  • 22. Kubenetes マニフェストファイルの記述内容 (抜粋) spec: containers: - name: go-webserver-sample image: kumaazu2018.azurecr.io/go-webserver-sample:v1 imagePullSecrets: - name: acr-auth 「imagePullSecrets」 を記述 → イメージを ACR から pull する際、 シークレットから資格情報を取り出して認証を行う
  • 23. まとめ (所感) ・ 現状 (プレビュー) では、複数のコマンドツール (Azure CLI、kubectl、Helm) を 組み合わせて設定する必要あり ・ ACR の認証設定や、Kubernetes マニフェストファイルの記述など、 面倒な部分が多い 正式リリース時には、Azure CLI コマンド (az aks) に統合されたり、 GUI (ポータル) でも設定できるようになる・・・のかな?(期待) ご清聴ありがとうございました