sh AKS,ACR,ACI

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh AKS,ACR,ACI相关的知识,希望对你有一定的参考价值。

# Kubernetes cluster architecture

A Kubernetes cluster is divided into two components:
- Cluster master nodes provide the core Kubernetes services and orchestration of application workloads.
- Nodes run your application workloads.

![arch](https://docs.microsoft.com/en-us/azure/aks/media/concepts-clusters-workloads/cluster-master-and-nodes.png)

# Nodes and node pools

To run your applications and supporting services, you need a Kubernetes node. 

An AKS cluster has one or more nodes, which is an Azure virtual machine (VM) 
that runs the Kubernetes node components and container runtime.

![nodes](https://docs.microsoft.com/en-us/azure/aks/media/concepts-clusters-workloads/aks-node-resource-interactions.png)
az group create --name myResourceGroup --location eastus

# create cluster
az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 1 \
    --enable-addons monitoring \
    --generate-ssh-keys

# install kubectl
az aks install-cli

# download credentials and configurs Kubernetes CLI to use them
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

# verify the connection
kubectl get nodes

# Deploy the application using the kubectl apply
kubectl apply -f app.yaml

# Delete cluser by deleting resource group
az group delete --name myResourceGroup --yes --no-wait
# Dockerfile:
FROM node:8.9.3-alpine
RUN mkdir -p /usr/src/app
COPY ./app/ /usr/src/app/
WORKDIR /usr/src/app
RUN npm install
CMD node /usr/src/app/index.js

# create the container image and tag it as aci-tutorial-app
docker build ./aci-helloworld -t aci-tutorial-app

# Use the docker images command to see the built image:
docker images

# Your newly built image should appear in the list
# REPOSITORY          TAG       IMAGE ID        CREATED           SIZE
# aci-tutorial-app    latest    5c745774dfa9    39 seconds ago    68.1 MB

# run locally
#   -d lets the container run in the background
#   -p maps port 8080 on your computer to port 80 in the container
docker run -d -p 8080:80 aci-tutorial-app
az group create --name myResourceGroup --location eastus

# create registry
az acr create --resource-group myResourceGroup --name <acrName> --sku Basic --admin-enabled true

# log in to registry before pushing images to it
az acr login --name <acrName>

# get the full login server name for ACR - required for tagging
az acr show --name <acrName> --query loginServer --output table
# e.g. <acrName>.azurecr.io

# tag image ready for push to ACR
docker tag aci-tutorial-app <acrName>.azurecr.io/aci-tutorial-app:v1

# Verify tagging
docker images
# REPOSITORY                              TAG       IMAGE ID        CREATED           SIZE
# aci-tutorial-app                        latest    5c745774dfa9    39 minutes ago    68.1 MB
# <acrName>.azurecr.io/aci-tutorial-app   v1        5c745774dfa9    7 minutes ago     68.1 MB

# push to ACR
docker push <acrName>.azurecr.io/aci-tutorial-app:v1

# list images in ACR
az acr repository list --name <acrName> --output table
# Result
# ----------------
# aci-tutorial-app

# To see the tags for a specific image, use the az acr repository show-tags command.
az acr repository show-tags --name <acrName> --repository aci-tutorial-app --output table
# Result
# --------
# v1
# use the az container create command to deploy the container
az container create --resource-group myResourceGroup \
    --name aci-tutorial-app \
    --image <acrName>.azurecr.io/aci-tutorial-app:v1 \
    --cpu 1 --memory 1 --registry-login-server <acrName>.azurecr.io \
    --registry-username <service-principal-ID> \
    --registry-password <service-principal-password> \
    --dns-name-label <aciDnsLabel> \
    --ports 80

# view the state of the deployment
az container show --resource-group myResourceGroup --name aci-tutorial-app --query instanceView.state
"Running"

# view app
az container show --resource-group myResourceGroup --name aci-tutorial-app --query ipAddress.fqdn
"aci-demo.eastus.azurecontainer.io"

# view logs
az container logs --resource-group myResourceGroup --name aci-tutorial-app

以上是关于sh AKS,ACR,ACI的主要内容,如果未能解决你的问题,请参考以下文章

如何将来自不同订阅的 ACR 附加到 AKS? [关闭]

如何授予 AKS 通过 terraform 访问 ACR 的权限?

尽管更改了progressDeadlineSeconds,但仍会遇到“超过进度期限”

sh 手动回收AKS节点

通过 Terraform Helm 提供程序和 Azure DevOps 部署 helm 图表,同时从 ACR 获取 helm 图表

ASP.NET Core在Azure Kubernetes Service中的部署和管理