MS_AKSSecureReference - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
- æ»ã
- Azure Kubernetes Service (AKS)
-
Azure Subscriptionã®ç®¡ç@ãšã³ãã©
-
FgCF (Financial-grade Cloud Fundamentals)
ã»AppServiceéåæ§æãã¯ãã«ã«ãªãã¡ã¬ã³ã¹
ã»AKSãã»ãã¥ã¢ã«å©çšããããã®ãã¯ãã«ã«ãªãã¡ã¬ã³ã¹
-
FgCF (Financial-grade Cloud Fundamentals)
-
ãªãããå ¬éãããŠããã®ã§èããŠã¿ãããšã«ããã
-
ã¯ã©ãŠãïŒAzureïŒã®å©çšãã³ã³ããæè¡ïŒDockerïŒãçšããéçºã
Open PaaS ã«ã€ããŠã®ç¥èãå¿ èŠã«ãªã£ãŠããã®ã§ãå 容ã¯ãé£ããã§ãã
-
K8s ã¯é£ããã
-
以äžã®ç®çã«ãŠåèŽããŠãããïŒ
-
坿¬æ§
- K8s æ¡çšã®ç®çã¯äž»ã«å¯æ¬æ§
- ãã ã坿¬æ§ã®å€§éšåã¯ã³ã³ããã§æ ä¿
-
ãã€ã¯ããµãŒãã¹
- ã¢ãŒããã¯ãã£ãæ§æãæãã
- Ingress - Service - Pod æ§æ
-
è£è¶³ïŒãã®ãæ¡çšãç¯ã®éèŠæ§ïŒ: ãK8s æ¡çšã®ç®çã¯äž»ã«å¯æ¬æ§ã
ãã ã坿¬æ§ã®å€§éšåã¯ã³ã³ããã§æ ä¿ããšããææã¯éãã
ã€ãŸã ã坿¬æ§ã欲ãããã ããªã K8s ã¯èŠããªãïŒã³ã³ããã§è¶³ããïŒãK8s ãæ¬åœã«å¿ èŠã«ãªãã®ã¯ã
- 倿°ã®ãµãŒãã¹ã宣èšçã«éçšãããïŒèªå·±ä¿®åŸ©ãããŒãªã³ã°æŽæ°ïŒã
- ãµãŒãã¹éã®éä¿¡ã»ã¹ã±ãŒã«ã现ããå¶åŸ¡ãããã
ãšããå Žåã§ããããã以å€ã§ã¯ã
Azure Container Apps ã
App Service ã®æ¹ãéçšã³ã¹ããäœãã
æ¬ããŒãžå šäœããAKS ã¯é£ããããšããåæã§æžãããŠããç¹ã«çæã
-
å¶åŸ¡ãã¬ãŒã³
- Master API ãæã£ãŠãã
- Kubernetes CLIïŒkubectlïŒããæäœããã
- AKS ã§ã®å€æŽç¹ã¯ã³ãã©
-
å®è¡ããŒã
-
VMSS : VM Scale Set
-
Ingress - Service - Pod æ§æ
â» Ingress - Service ã®è©³çްã¯ã³ãã©ã-
Pod
ã»Docker ã³ã³ãã
ã»1 pod ã«è€æ°ã³ã³ãããé 眮å¯èœ -
Service
ã»L4 ããŒããã©ã³ãµ
ã»ãµãŒãã¹ã»ã¡ãã·ã¥ãæ§æ -
Ingress
ã»L7 ããŒããã©ã³ãµ
ã»å¿ é ã§ã¯ãªãïŒãªãã·ã§ãã«ïŒ
-
-
AKS ã§ã®å€æŽç¹ã¯ã³ãã©
-
è£è¶³ïŒææ°åïŒ: DockerïŒdockershimïŒã¯ Kubernetes 1.24 ã§åé€ããã
çŸåšã® AKS ã®ã³ã³ãã ã©ã³ã¿ã€ã 㯠containerd ã§ããã
ãã ããã€ã¡ãŒãžã®åœ¢åŒïŒOCIïŒã¯äºæãªã®ã§ã
docker buildããã€ã¡ãŒãžã¯ãã®ãŸãŸåäœããã
ãPod ïŒ Docker ã³ã³ãããã¯
ãPod ïŒ OCI ã³ã³ããããšèªã¿æ¿ãããšããã
-
Deployment ã§ã©ããã³ã°ãããŠããã
-
Pod ãç©çããŒãã«é 眮ããæ¹åŒ
-
ReplicaSet æ¹åŒ
éåžžã¯ã空ããŠããç©çããŒãã«åçã«å²ãåœãŠãã -
DaemonSet æ¹åŒ
ãã¹ãŠã®ããŸãã¯ç¹å®ã®ç©çããŒãã« 1 ã€ã ãé 眮ãã
-
ç§»è¡ã¡ã¢ïŒèª€åïŒ: åæã®ãDemonSetãã¯
DaemonSetïŒããŒã¢ã³ã»ããïŒã®èª€èšãšå€æãä¿®æ£ããã
-
*.yamlã§åå空éãå®çŸ©ãããšã - Kubernetes CLIïŒkubectlïŒããæå®ãå¿ èŠã«ãªãã
- äžäœã«ã¯ãServiceãš Deploymentãããã
-
ããã¯ãMaster API ã«ã¢ã¯ã»ã¹ããããã®ã¯ã¬ãã³ã·ã£ã«æ å ±ã
-
AKS ã§ã¯ãaz aks get-credentialsãã«ãã£ãŠååŸããã
ã--adminããªãã·ã§ã³ãä»äž- ããå ŽåãAKS ã¯ã©ã¹ã¿ 管çè æš©éã®ã¯ã¬ãã³ã·ã£ã«ãååŸ
- ããªãå ŽåãAKS ã¯ã©ã¹ã¿ ãŠãŒã¶æš©éã®ã¯ã¬ãã³ã·ã£ã«ãååŸ
â» K8s ã®æš©éã«ã€ããŠã¯ãKubernetesãåç §ã
â» ã--adminããªãã·ã§ã³ãä»äžããã«ã¯ãAzure RBAC ããŒã«ã®èŠä»¶ãããã
-
以äžã®æé ã§ãç»å ŽããŠããã
-
kube config ãã¡ã€ã«ã®äžè¬çãªè©±ã¯ Kubernetesã
è£è¶³ïŒ
--adminãéååã®æã穎ã«ãªãïŒ:--adminã§ååŸã§ãã
ã¯ã¬ãã³ã·ã£ã«ã¯ãAzure AD ã®èªèšŒãçµãã« Master API ãæäœã§ãã
ãããŒã«ã« ã¢ã«ãŠã³ããã®èšŒææžã§ããã
ã€ãŸããæ¡ä»¶ä»ãã¢ã¯ã»ã¹ã PIM ãæ§æããŠãã
ãããååŸã§ããã°è¿åãããŠããŸããçŸåšã¯
--disable-local-accountsãªãã·ã§ã³ã§
ãã®ããŒã«ã« ã¢ã«ãŠã³ãèªäœãç¡å¹åã§ããã
Azure AD çµ±åïŒAKS Master APIã«AzADèªèšŒãçµ±åãããïŒãš
䜵çšããã®ããéåæ§æã§ã®å®ç³ã§ããã
ããã·ã¥ããŒãã远å ããŠå©çšå¯èœ
è£è¶³ïŒææ°åïŒ: Kubernetes ããã·ã¥ããŒã ã¢ããªã³ã¯ AKS ã§å»æ¢ããã
ïŒKubernetes 1.19+ ã§ã¯é察å¿ïŒã
çŸåšã¯æ¬¡ã®ããããã䜿ãã
- Azure ããŒã¿ã«ã®ãKubernetes ãªãœãŒã¹ããã¥ãŒïŒæšå¥šãRBAC ãå¹ãïŒ
kubectlïŒ Container Insights- èªåã§ããã·ã¥ããŒããå°å ¥ããïŒãã ãããŒã¯ã³ç®¡çã®ãªã¹ã¯ãè² ãïŒ
以äžã®ãããã·ã¥ããŒãã«ããç¶æ 確èªãã¯åœæã®æé ã®èšé²ã§ããã
AKS : Azure Kubernetes Service
- æ§ç¯äžèŠ â ãããŒãžã
- az ã³ãã³ãã§æ§ç¯å¯èœ
- ïŒã€ã®ãªãœãŒã¹ã»ã°ã«ãŒããšããŠãŸãšããŠäœæãããã
- ããŒãããŒã«ã®æ©èœãæ¡åŒµãããŠããã
- æ§ç¯äžèŠ â ãããŒãžã
- az ã³ãã³ãã§æ§ç¯å¯èœ
- ïŒã€ã®ãªãœãŒã¹ã»ã°ã«ãŒããšããŠãŸãšããŠäœæãããã
- ããŒãããŒã«ããå®è¡ããŒããå²ãåœãŠãããã
-
åè¿°ã®ãã€ã³ãéšåã®èª¬æ
-
åºæ¬çã«
- Azure Cloud Shell ã䜿çš
- åå空éãå©çš
-
ãã¥ãŒããªã¢ã«ã® voting-app ã®ãšããã³ã¹ãšã»ãŒåã¬ãã«ã
- äžèЧååŸ
kubectl get <ãªãœãŒã¹çš®å¥> --namespace <åå空é>- 詳现ååŸ
kubectl describe <ãªãœãŒã¹çš®å¥> <ID> --namespace <åå空é>- 察象åé€
kubectl delete <ãªãœãŒã¹çš®å¥> <ID> --namespace <åå空é>-
以äžã®ã³ãã³ãã䜿çšããã
-
cluster-admin ããŒã«ã«å¯Ÿã㊠k8s ããã·ã¥ããŒããžã®ã¢ã¯ã»ã¹æš©éã
- ä»äž
-
kubectl create clusterrolebinding kubernetes-dashboard -n kube-system --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard- ïŒåé€ïŒ
kubectl delete clusterrolebinding kubernetes-dashboard -n kube-system- ããã·ã¥ããŒããéãã
az aks browse --name $AKS_CLUSTER_NAME --resource-group $RG_AKS-
ããã·ã¥ããŒããèµ·åããã kube config ãã¡ã€ã«ã®ããŒã¯ã³ãå ¥åããã
-
ãããã·ãäžãã£ã±ãªãã«ããå¿ èŠãããã®ã§ã
- Azure Cloud Shell ã䜿çšãããšãã©ãŠã¶ã»ãŠã£ã³ããŠãå°æããã
- CTRL+C ãå®è¡ããŠåæ¢ããªããšãå床ããã·ã¥ããŒããèµ·åã§ããªããªããšã...ã
-
ã³ã³ã®ãã¥ãŒããªã¢ã«ã§ã¯ãåå空éã䜿çšããŠããã®ã§ã
ããã·ã¥ããŒãå·Šã®ãã€ã³ããåå空éãéžæããŠå©çšããã -
ãããã·ã忢ãããšãã¯ä»¥äžãè¡ãã
- ã·ã§ã«ã䜿çšããŠããå ŽåãCTRL+C ãå®è¡ããŠåæ¢ããã
- Azure Cloud Shell ã®ãŠã£ã³ããŠãéããŠããŸã£ãå Žåãªã©ã
ps -efl | grep 8001
kill <pid>- åè
- Web ããã·ã¥ããŒãã§ AKS ã¯ã©ã¹ã¿ãŒã管çãã
https://learn.microsoft.com/ja-jp/azure/aks/kubernetes-dashboard
- Web ããã·ã¥ããŒãã§ AKS ã¯ã©ã¹ã¿ãŒã管çãã
è£è¶³ïŒã»ãã¥ãªãã£äžã®æ³šæïŒ: äžèšã®
clusterrolebinding ... --clusterrole=cluster-adminã¯ã
ããã·ã¥ããŒãã®ãµãŒãã¹ ã¢ã«ãŠã³ãã«ã¯ã©ã¹ã¿å šæš©ãäžããèšå®ã§ããã
æ€èšŒçšéã«éãã¹ãã§ãæ¬çªã¯ã©ã¹ã¿ã§å®æœããŠã¯ãªããªãã
åè¿°ã®ãšãããçŸåšã¯ Azure ããŒã¿ã«ã® Kubernetes ãªãœãŒã¹ ãã¥ãŒã䜿ãã
- Service ãèµ·åããªã
- External IP (Public IP) ãé©åã«ä»äžã§ããŠãããã確èª
kubectl get services --namespace <åå空é>- ãµãŒãã¹ã®äœæãæ£ããè¡ãããã©ããã®ãã°ã確èª
kubectl describe services <ãµãŒãã¹å> --namespace <åå空é>-
Pod ãæ£ããåäœããŠãããã確èªããã
- Pod ã®ãã°ã確èª
kubectl logs <Podå> --namespace nmssample- Pod äžã§ã³ãã³ããå®è¡
kubectl exec <Podå> --namespace nmssample ls- ããŒãã»ãã©ã¯ãŒãã㊠Pod å
éšåäœã確èª
äŸ) localhost:8000 â ã³ã³ããäžã® ããŒã 80
kubectl port-forward <Podå> --namespace nmssample 8000:80- Pod ãæ£ããåäœããŠããã®ã« Service ã® L4LB çµç±ã§ã¢ããªãåŒã³åºããªã
- YAML ãã¡ã€ã«ã®
selectorã®èšè¿°ãæ£ãããã確èª
â»selectorã¯èšè¿°ãééã£ãŠããŠããšã©ãŒãåºããªã
- YAML ãã¡ã€ã«ã®
è£è¶³ïŒ
selectorã®èœãšã穎ïŒ: ãã®ææã¯æ¥µããŠå®è·µçã§ããã
Kubernetes ã® Service ã¯ãselectorã®ã©ãã«ã«äžèŽãã Pod ãæ¢ãã ãã§ã
äžèŽãã Pod ã 0 åã§ããšã©ãŒã«ãªããªãïŒæ£åžžã«äœæãããïŒã
çµæãšããŠãService ã¯ããã®ã«å¿çãè¿ããªããç¶æ ã«ãªããç¢ºèªæ¹æ³ã¯
kubectl get endpoints <ãµãŒãã¹å>ã
Endpoints ã空ãªã selector ãåã£ãŠããªãã
-
Helmããã±ãŒãžãããŒãžã£
- Pod, Service, Ingress ãªã©ã®æ§æãäžæ¬ã§è¡ãããšãã§ããããã±ãŒãžãããŒãžã£
- K8s ãªãœãŒã¹ã®ã€ã³ã¹ããŒã« / ã¢ã³ã€ã³ã¹ããŒã«ã容æåã§ããã®ãã¡ãªãã
-
- OSS ã®è»œé Web ãµãŒãã§ããªããŒã¹ãããã·ãšããŠããå©çšããã
- K8s ã§ã¯ãç°¡æãª Ingress ãšããŠå©çšãããããšãå€ã
-
Istio ãµãŒãã¹ã»ã¡ãã·ã¥
- ãã€ã¯ããµãŒãã¹ã®å ±éåŠçãæ ããµãŒãã¹ã»ã¡ãã·ã¥ã®å®çª
- æ¥åçšã®ã³ã³ãã + Istio ã®ã³ã³ããã§å Pod ãæ§æããŠå±éãã圢ã§å©çš
-
Prometheus
- K8s ç£èŠããŒã«ã®å®çª
- ä»ã®ç£èŠããŒã«ïŒã¯ã©ã¹ã¿åºç€ã®ç£èŠããŒã«ïŒãš
çµã¿åãããŠå©çšãããããšãå€ã
-
Grafana
- ã°ã©ãã£ã«ã«ãªããã·ã¥ããŒãã®è¡šç€ºããŒã«ã®å®çª
- Prometheus ãªã©ãšçµã¿åãããŠå©çšããã
-
ãã®ä»
- Useful Tool for k8s managing and monitoring
https://github.com/yoshioterada/k8s-Azure-Container-Service-AKS--on-Azure/blob/master/Kubernetes-Workshop8.md
- Useful Tool for k8s managing and monitoring
è£è¶³ïŒææ°åïŒ: çŸåšã¯ããããã®å€ãã AKS ã®ãããŒãžã ã¢ããªã³ãšããŠ
æäŸãããŠãããèªåã§æ§ç¯ããå¿ èŠãèããŠããã
OSS AKS ã®ãããŒãžãç nginx Ingress ã¢ããªã±ãŒã·ã§ã³ ã«ãŒãã£ã³ã° ã¢ããªã³ãApplication Gateway Ingress Controller Istio Istio ããŒã¹ã®ãµãŒãã¹ ã¡ãã·ã¥ ã¢ããªã³ Prometheus Azure Monitor ãããŒãžã Prometheus Grafana Azure Managed Grafana ãããŒãžãçã¯ããŒãžã§ã³è¿œéãšãµããŒããåŸãããããã
ãã»ãã¥ã¢ã«å©çšããããšããæ¬ããŒãžã®è¶£æšããã¯ã
å¯èœãªéããããŒãžãçãéžã¶ã®ãçŸåšã®æšå¥šã§ããã
âãã©ã€ããŒãåã®ãã€ã³ã
ïŒåç»ã 3 æéåãšé·ããå
å®¹ãæ¿ãã®ã§ã
Azure åŽãçè§£ããªããã ãšãäžæ°é貫㫠1 é±éäœãããïŒ
-
å®éã®ç©çã€ã³ãã©ã¯ã
-
Azure
AKS ã®ãã€ã³ã
ã«åãããã
-
ãã«ã³ã³ããå
çŸæç¹ã§ã¯é£ããã- ç¹ã«ãDB ãµãŒããé£ãã
- ç£èŠãµãŒãã¯åºç€å€ãè¯ãã±ãŒã¹ãå€ãã
-
Kubernetes CLIïŒkubectlïŒããAzure CLI ãã
-
Kubernetes CLIïŒkubectlïŒ
- Ingress - Service - Pod æ§æ
- ããã·ã¥ããŒã
-
- ã³ã³ããã»ã¬ãžã¹ããª
- ãããŒãžãã»ãµãŒãã¹ïŒPaaSïŒçã® DB
- ãã®ä»
ã»ç£èŠãµãŒã
ã»æ©å¯æ å ±ä¿ç®¡åº«ïŒKey VaultïŒ
-
è£è¶³ïŒãã®å¢çãéçšèšèšã®åããç®ïŒ: ãkubectl ã®äžçããš
ãAzure CLI ã®äžçããåãããããšããæŽçã¯éèŠã§ããããAzure ã®äžçãRBAC / Policy / 蚺æèšå® ã§çµ±å¶ â AKS ã¯ã©ã¹ã¿ãã®ãã®ãããŒãããŒã« â ACRãKey VaultãSQL Database â VNETãFirewallãPrivate Endpoint â å¢çïŒããã§æš©éäœç³»ãåãæ¿ããïŒ ãK8s ã®äžçãK8s RBAC / NetworkPolicy ã§çµ±å¶ â NamespaceãDeploymentãServiceãIngress â SecretãConfigMap2 ã€ã®æš©éäœç³»ã䞊åããã®ã AKS ã®é£ããã§ã
AKS Master APIã«AzADèªèšŒãçµ±åããã ã¯
ãã® 2 ã€ãæ©æž¡ããã話ã«ãããã
-
ãããã¯ãŒã¯åé¢
-
CNI æ¹åŒ
âPod ã® IP ã¢ãã¬ã¹ã®ä»äžã®æ¹åŒ-
kubenet æ¹åŒ
ä»®æ³ IP ã䜿çšããŠãNAT 倿ããã -
Azure CNI æ¹åŒïŒæšå¥šïŒ
Pod ã® IP ã« VNET ã® IP ã䜿çšããããã
Azure ã®ä»®æ³ããŒãããµãŒãã¹ãå©çšå¯èœã
-
-
å éšèšçœ®
-
VDC å éšã«é 眮
倧éã®ãã©ã€ããŒã IP ã¢ãã¬ã¹ã䜿çšããŠããŸãã -
VNET åé¢ïŒæšå¥šïŒ
Azure Private Link ã§ãªã³ãã¬æ¥ç¶ããã
ã»ãããšããã©ã€ããŒã IP ã¢ãã¬ã¹ãæ¶è²»ããªãã
ã»ãŸãããã¹ãé¢ã®æ§ç¯ãªã©ã®å Žåã«ã䟿å©ã
ã»VNET ãããªã³ãã¬ã«å ¥ããªãã®ã§ã»ãã¥ã¢
-
-
è£è¶³ïŒææ°å / CNI ã®éžæè¢ïŒ: kubenet ã¯éæšå¥šãšãªãã
çŸåšã¯æ¬¡ã® 3 ã€ããéžã¶ã
æ¹åŒ Pod ã® IP ç¹åŸŽ Azure CNIïŒåŸæ¥ïŒ VNET ã® IP ããŒãæ° Ã æå€§ Pod æ°ã® IP ãäºå確ä¿ãæ¯æžãããã Azure CNI OverlayïŒçŸåšã®æ¢å®ã»æšå¥šïŒ VNET ãšã¯å¥ã® CIDR VNET ã® IP ãæ¶è²»ããªããå€§èŠæš¡ã§ãã¹ã±ãŒã«ãã Azure CNIïŒåç IP å²ãåœãŠïŒ VNET ã® IPïŒå¥ãµããããïŒ Pod çšãµãããããåããŠå¿ èŠåã ãç¢ºä¿ åæãææããã倧éã®ãã©ã€ããŒã IP ãæ¶è²»ãããåé¡ã¯ã
Azure CNI Overlay ã«ãã£ãŠè§£æ¶ãããŠããã
æ°èŠæ§ç¯ã§ã¯ Overlay ãéžã¶ã®ãæšæºã
-
å¶åŸ¡ãã¬ãŒã³ã®ãã©ã€ããŒãå
-
Master API ã®ãã©ã€ããŒãå
-
ãã©ã€ããŒã AKS ã¯ã©ã¹ã¿ãšããæ©èœã䜿çšããŠã
ãMaster API ã VNET ã«åŒã蟌ã¿ã
ãVNET ããããã¢ã¯ã»ã¹ã§ããªãã§ããã -
ãããã
ã»ããŒãããŒã«ã VNET å ã«é 眮ãããšãã話ã§ã¯ãªãã
ãïŒãã ãããã¢ã§ã¯æ¢åã® VNET ã«é 眮ããŠããïŒ
ã»ãŸããARM API ããããªãã¯ãªã®ã§ã
ãMaster API ã ããã©ã€ããŒãã§ã¯ã¢ã³ãã©ã³ã¹ã
-
-
æ¢åã®ã¢ã¯ã»ã¹å¶éæ©èœã䜿çšïŒæšå¥šïŒ
-
è£è¶³ïŒãMaster API ã ããã©ã€ããŒãã§ã¯ã¢ã³ãã©ã³ã¹ãïŒ: ãã®ææã¯æ¬è³ªçã§ããã
AKS ã¯ã©ã¹ã¿ã¯ ARM API çµç±ã§ãæäœã§ããïŒããŒãããŒã«ã®åé€ã
ã¯ã¬ãã³ã·ã£ã«ã®ååŸãªã©ïŒããã
Master API ã ãéååããŠã ARM API ãéããŠããã°æå³ãèããâ ARM APIïŒç®¡çæäœïŒ â æ¡ä»¶ä»ãã¢ã¯ã»ã¹ã§å®ã â ⌠AKS ã¯ã©ã¹ã¿ â² â¡ Master APIïŒkubectl æäœïŒ â ãã©ã€ããŒãå or æ¿èªæžã¿ IP ã§å®ãäž¡æ¹ãå¡ãã§åããŠéåã«ãªãããšããã®ãåæã®äž»åŒµã§ããã
ã ãããããæ¢åã®ã¢ã¯ã»ã¹å¶éæ©èœïŒæ¡ä»¶ä»ãã¢ã¯ã»ã¹ïŒããæšå¥šãããŠããã
-
ããŒãããŒã«ã®çµè·¯å¶é
-
å ¥åçµè·¯ã®å¶éïŒIngress LockdownïŒ
ã»å¶åŸ¡ãã¬ãŒã³ããããŒãããŒã«
ãäžèŠïŒåºåæ¹åã§éä¿¡ããããïŒ
ã»ä¿å®ç«¯æ«ããããŒãããŒã«
ãã»ã€ã³ã¿ãŒãããïŒAzure Bastion
ãã»ãªã³ãã¬ïŒAzure Private Link
ã»ãšã³ããŠãŒã¶ãŒããã¢ããªã±ãŒã·ã§ã³
ãã³ãã©ã¯é·ããªãã®ã§ãã³ãã©ãåç §ã -
åºåçµè·¯ã®å¶éïŒEgress LockdownïŒ
ã»ãããã·çãªã¢ãã§å¶éã
ãã»åºæ¬çã«ãAzure Firewall ãå©çšããã
ãã»ä»¥äžã®ã³ãã³ãã§ããã©ã²ïŒELBïŒãäœæããªãã
-
az aks create ... --outbound-type userDefinedRoutingã»å¿
èŠãªéä¿¡ã¯ä»¥äžã\
ãã»Master API\
ãã»ã»ãã¥ãªãã£æŽæ°\
ãã»[MCR](MS_MicrosoftContainerRegistry)ïŒãµãŒãã¹å
šäœãåºæ¬çã«å®å
š\
ãã»[ACRïŒãŠãŒã¶ã»ããã³ãæ¯ã®å¶éãå¿
èŠã](MS_AKSPrivateACR)\
ãã»åçš®ãµãŒãã¹ïŒ[Azure SQL Database ã®å¶é](MS_AzureSQLDatabasePrivate)ãªã©ïŒ
ç§»è¡ã¡ã¢ïŒèª€èšïŒ: åæã®ã³ãã³ãã¯
--outbound-type userDefinedRoutiongãš
ãªã£ãŠããããæ£ããã¯userDefinedRoutingã§ããããä¿®æ£ããã
- åè
-
ãªã³ãã¬å»¶äŒžç°å¢
-
Service CIDRãDocker Bridge CIDR
- Service CIDR
- Docker Bridge CIDR
-
Docker ãš Kubernetes ã® Pod ã®ãããã¯ãŒãã³ã°ã«ã€ããŠãŸãšããŸãã - baron tech blog
https://foobaron.hatenablog.com/entry/k8s-pod-networking -
Microsoft Learn
Azure Kubernetes Service (AKS) ã®ããã¥ã¡ã³ã- æŠå¿µ - Azure Kubernetes ãµãŒãã¹ (AKS) ã«ããããããã¯ãŒã¯
https://learn.microsoft.com/ja-jp/azure/aks/concepts-network - æäœæ¹æ³ã¬ã€ã > ãããã¯ãŒã¯ãæ§æãã
https://learn.microsoft.com/ja-jp/azure/aks/
- æŠå¿µ - Azure Kubernetes ãµãŒãã¹ (AKS) ã«ããããããã¯ãŒã¯
-
-
ã€ã³ãã©
-
Azure ããŒã¿ã«, Azure CLI (ARM API) ã®èªèšŒã»èªå¯
- æ¢å®ã§ãAzure Active Directory ã®èªèšŒãèŠããã
- 远å ã§ãåè¿°ã®ã
ã»Azure Active Directory ã«ããæ¡ä»¶ä»ãã¢ã¯ã»ã¹æ©èœãæ§æããã
ã»è¥ããã¯ãIP ã¢ãã¬ã¹å¶é / ãã©ã€ããŒãåãæ§æããã
-
å¶åŸ¡ãã¬ãŒã³ã®å®è¡ã¢ã«ãŠã³ã
-
ã³ã³ããã»ã¬ãžã¹ããªããã®ã€ã¡ãŒãžååŸæš©é
- ACR çµ±å â ã³ãã©
- 3RD ããŒãã£ã®ã³ã³ããã»ã¬ãžã¹ããª
https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
-
-
äžéïŒå¢çç·ãåŒãé£ãïŒ
- K8s ããã·ã¥ããŒã, Kubernetes CLIïŒkubectlïŒ
- ãaz aks get-credentialsãã§ kube config ãã¡ã€ã«ãååŸ
- å¿
èŠã«å¿ããŠã以äžã®æã¡åºã察çãè¡ãã
ã»Azure Active Directory èªèšŒãšçµ±åãããâ ã³ãã©
ã»åè¿°ã® Master API ã® IP ã¢ãã¬ã¹å¶é / ãã©ã€ããŒãå
â» IP ã¢ãã¬ã¹å¶é / ãã©ã€ããŒãåã§ååãšãã説ãããã
- K8s ããã·ã¥ããŒã, Kubernetes CLIïŒkubectlïŒ
-
ã¢ããª
-
AKS ã®æŽæ°
-
AKS åºç€ã¯èªå
ïŒãããŒãžãã»ãµãŒãã¹ïŒ -
K8s ã®ããŒãžã§ã³ã¢ããã¯æå
ïŒAKS ãš K8s ã®ããŒãžã§ã³ã®é¢ä¿ãéèŠïŒ
-
-
ããŒãã®æŽæ°
- å®è¡ããŒãïŒLinux ããŒããWindows ããŒãïŒã«å¯ŸããŠè¡ãã
- OS ã®ã»ãã¥ãªãã£ã»ã¢ããããŒãïŒUbuntuïŒã¯æ¥æ¬¡ã§èªåæŽæ°ãããã
- Kured ãšèšã OSS ã K8s ã«ã€ã³ã¹ããŒã«ãããšãåèµ·åãããŠãããã
- ããŒãããŒã«ïŒVMSSïŒã®ããŒãªã³ã°ã»ã¢ããããŒãæ©èœã¯ AKS ã§ã¯éãµããŒãã
-
Pod ã®æŽæ°
- ã³ã³ããã»ã¬ãžã¹ããªå ã®ã€ã¡ãŒãž
- ã€ã¡ãŒãžå
ã®ã¢ããª
- ã¢ããªèªäœ
- ã©ã€ãã©ãª
⻠詳现ã¯ã³ãã©
è£è¶³ïŒææ°åïŒ: çŸåšã¯ èªåã¢ããã°ã¬ãŒã ãã£ãã«
ïŒ--auto-upgrade-channelïŒã§ K8s æ¬äœã®ããŒãžã§ã³ã¢ãããèªååã§ãã
èšç»ã¡ã³ããã³ã¹æéïŒPlanned MaintenanceïŒã§
é©çšããæé垯ãæå®ã§ããã
ããŒãã®åèµ·åã«ã€ããŠã¯ã
Kured ã®ä»£ããã« ããŒã OS èªåã¢ããã°ã¬ãŒã ãã£ãã«
ïŒ--node-os-upgrade-channel NodeImageãªã©ïŒãå©çšã§ããã
- äžè¬ç㪠DevOps ã¯ãŒã¯ãããŒ
- éèç³»çã§ã¯ãPoC â éçº â æ¬çªãç°å¢åé¢ïŒã»ãã¥ãªãã£å¢çïŒãèæ ®
⻠詳现ã¯ã³ãã©
- æ§æã®ãã€ã³ããåååŒãã€ã€ããã¢ã®å 容ãçè§£ããæãã
- æ§æã®ãã€ã³ãã®çè§£ãèããšãäœããŠãã®ãè§£ããªããªãïœã
- æŠå¿µ - Azure Kubernetes Service (AKS) ã«ãããã»ãã¥ãªãã£
https://learn.microsoft.com/ja-jp/azure/aks/concepts-security
-
Azure Kubernetes Service (AKS) ã«é¢ãããã¹ã ãã©ã¯ãã£ã¹
https://learn.microsoft.com/ja-jp/azure/aks/best-practices-
ãããã¯ãŒã¯ãšã¹ãã¬ãŒãž
- ãããã¯ãŒã¯ ãªãœãŒã¹ã®ãã¹ã ãã©ã¯ãã£ã¹
https://learn.microsoft.com/ja-jp/azure/aks/operator-best-practices-network - ã¹ãã¬ãŒãžãšããã¯ã¢ããã«é¢ãããã¹ã ãã©ã¯ãã£ã¹
https://learn.microsoft.com/ja-jp/azure/aks/operator-best-practices-storage
- ãããã¯ãŒã¯ ãªãœãŒã¹ã®ãã¹ã ãã©ã¯ãã£ã¹
-
ãã«ãããã³ã
- ã¯ã©ã¹ã¿ãŒåé¢ã«é¢ãããã¹ã ãã©ã¯ãã£ã¹
https://learn.microsoft.com/ja-jp/azure/aks/operator-best-practices-cluster-isolation - ID 管çã®ãã¹ã ãã©ã¯ãã£ã¹
https://learn.microsoft.com/ja-jp/azure/aks/operator-best-practices-identity
- ã¯ã©ã¹ã¿ãŒåé¢ã«é¢ãããã¹ã ãã©ã¯ãã£ã¹
-
ã»ãã¥ãªãã£
- ã¯ã©ã¹ã¿ãŒ ã»ãã¥ãªãã£ã«é¢ãããã¹ã ãã©ã¯ãã£ã¹
https://learn.microsoft.com/ja-jp/azure/aks/operator-best-practices-cluster-security - ã³ã³ãã㌠ã€ã¡ãŒãžç®¡çã®ãã¹ã ãã©ã¯ãã£ã¹
https://learn.microsoft.com/ja-jp/azure/aks/operator-best-practices-container-image-management
- ã¯ã©ã¹ã¿ãŒ ã»ãã¥ãªãã£ã«é¢ãããã¹ã ãã©ã¯ãã£ã¹
-
BCPãBCM
- AKS ã§ã®äºæ¥ç¶ç¶ãšãã£ã¶ã¹ã¿ãŒ ãªã«ããªãŒã«é¢ãããã¹ã ãã©ã¯ãã£ã¹
https://learn.microsoft.com/ja-jp/azure/aks/operator-best-practices-multi-region
- AKS ã§ã®äºæ¥ç¶ç¶ãšãã£ã¶ã¹ã¿ãŒ ãªã«ããªãŒã«é¢ãããã¹ã ãã©ã¯ãã£ã¹
-
éçºè åã
- ãªãœãŒã¹ç®¡çã®ãã¹ããã©ã¯ãã£ã¹
https://learn.microsoft.com/ja-jp/azure/aks/developer-best-practices-resource-management - ããã ã»ãã¥ãªãã£ã®ãã¹ã ãã©ã¯ãã£ã¹
https://learn.microsoft.com/ja-jp/azure/aks/developer-best-practices-pod-security
- ãªãœãŒã¹ç®¡çã®ãã¹ããã©ã¯ãã£ã¹
-
â» YouTube ã§éå®å ¬éãšããã±ããFacebook ã§å ¬éãªã®ã£ãŠãå®è³ªãå ¬éãã£ãŠäºã§è¯ããã ããïŒ
- YouTube
https://www.youtube.com/watch?v=PrE3c1ZvL4s - video
https://nakama.blob.core.windows.net/mskk/2020_04_25_AKS_TechnicalReference_v0.14(video1).zip - ppt
https://nakama.blob.core.windows.net/mskk/2020_04_25_AKS_TechnicalReference_v0.14(ppt).zip
- YouTube
https://www.youtube.com/watch?v=PL5MtSVzdI4 - video
https://nakama.blob.core.windows.net/mskk/2020_04_25_AKS_TechnicalReference_v0.14(video2).zip
- YouTube
https://www.youtube.com/watch?v=-Mawv15LhQc - video
https://nakama.blob.core.windows.net/mskk/2020_04_25_AKS_TechnicalReference_v0.14(video3).zip
Tags: ç§»è¡, ã¯ã©ãŠã, ã³ã³ãã, Azure, AKS, IaC, ã»ãã¥ãªãã£, éä¿¡æè¡, èªèšŒåºç€