项目地址
dbt
airflow
一、程序部署微服务
- App Services(单体架构可自动伸缩)
- Container Apps
- Kubernetes services
1.1 App Services

1.2 Azure Container Registry
1. 创建Registry

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

1.3 K8s


1.创建k8s
- 创建resource group
- 创建k8s所需的服务

- 创建aks

- 获取crendentials用于本地登录

- 绑定container registry到k8s项目,这样他就会自动拉去images

2. 常用命令
- 获取当前所有的node
kubectl get nodes
- 获取namespace
kubectl get namespaces
二、程序部署
2.1 概念
1. Namespace
- 同一个集群重的资源划分为项目隔离的组,同一命名空间的资源名称要唯一,它用来隔离资源而不是网络
- 初始化会生成默认的4个namespace:①default;②kube-node-lease;③kube-public;③kube-system
- 使用yaml文件创建namespace,创建一个
my-namespace.yaml
文件
apiVersion: V1
king: Namespace
metadata:
name: test-namespace
- 运行
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 # 镜像