Azure部署程序

发布于:2025-06-18 ⋅ 阅读:(16) ⋅ 点赞:(0)


项目地址

  • 教程作者:
  • 教程地址:
  • 代码仓库地址:
  • 所用到的框架和插件:
dbt 
airflow

一、程序部署微服务

  1. App Services(单体架构可自动伸缩)
  2. Container Apps
  3. Kubernetes services

1.1 App Services

在这里插入图片描述

1.2 Azure Container Registry

1. 创建Registry

在这里插入图片描述

2. 上传image

  1. 查看当前registry的所有images
az acr list --output table
  1. 登录ACR
az acr login --name harshacontainerregistry
  1. 创建docker image 指定docker file的路径,并创建到当前目录
docker build -t demowebapp:latest -f ./DemoWebaaplication/Dockerfile .
  1. 给image添加tag
docker tag demowebapp:latest harshacontinerregistry.azurecr.io/demowebapp:latest
  1. 由于已经登录过了ACR所以直接push image
dokcer push harshacontainerregistry.azurecr.io/demowebapp:latest
  1. 上传成功可以看到
    在这里插入图片描述

1.3 K8s

在这里插入图片描述

  • 流程

在这里插入图片描述

1.创建k8s

  1. 创建resource group
  2. 创建k8s所需的服务
    在这里插入图片描述
  3. 创建aks
    在这里插入图片描述
  4. 获取crendentials用于本地登录
    在这里插入图片描述
  5. 绑定container registry到k8s项目,这样他就会自动拉去images

在这里插入图片描述

2. 常用命令

  1. 获取当前所有的node
kubectl get nodes
  1. 获取namespace
kubectl get namespaces

二、程序部署

2.1 概念

1. Namespace

  • 同一个集群重的资源划分为项目隔离的组,同一命名空间的资源名称要唯一,它用来隔离资源而不是网络
  • 初始化会生成默认的4个namespace:①default;②kube-node-lease;③kube-public;③kube-system
  1. 使用yaml文件创建namespace,创建一个my-namespace.yaml文件
apiVersion: V1
king: Namespace
metadata:
	name: test-namespace
  1. 运行
kubectl apply -f my-namespace.yaml

2. pod

  • pod是k8s的最小单元,一个podl里可以有多个container或者一个,一个node下可以有多个pod
  • 同一个Pod内container共享同一个ip地址和端口,他们之间可以直接通过localhost通讯,也可以直接访问共享的volumes
    在这里插入图片描述

3. 创建Deployment

  • 用于管理应用程序副本,主要功能有:自动修复/滚动升级
apiVersion: apps/v1
kind: Deployment
metadata:
  # 部署名字
  name: test-k8s
spec:
  replicas: 2
  # 用来查找关联的 Pod,所有标签都匹配才行
  selector:
    matchLabels:
      app: test-k8s
  # 定义 Pod 相关数据
  template:
    metadata:
      labels:
        app: test-k8s
    spec:
      # 定义容器,可以多个
      containers:
      - name: test-k8s # 容器名字
        image: ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v1 # 镜像


网站公告

今日签到

点亮在社区的每一天
去签到