文章目录
- 项目地址
- 英语
- 一、部署一个简单服务
- 1.1 Pod和Serivce
- 1. 部署地图服务
- 2. Port/TargetPort/NodePort
- 1.2 服务秒切换
- 1. 创建新的pod
- 2. 切换为新Pod
- 1.3 添加一个队列服务
- 1. 添加队列服务的Pod
- 2. 添加队列的service
- 1.4 ReplicaSet
- 1. 创建
- 2. 删除
- 1.4 Deployments
- 1. 通过Deployment部署
- 2. rollout
- 二、数据持久化
- 2.1 创建MongoDB的Pod
- 2.2 创建持久化规则
- 三、HPA
- 3.1 开启Metric
- 3.2 设置hpa
- 四、ingress
- 4.1 灰度发布
- 1. 按照Header 染色
- 2. 通过权重染色
- 4.2 业务领域拆分
- 六、.net部署
- 2.1 .net配置
- 1. 配置注入顺序
- 2. .net程序的options类
- 3. 程序里注入opitons
- 4. 配置K8S部署文件
- 5. Secret用于敏感数据
- 6. ConfigMap用于非敏感配置
- 2.2 多环境appsetting.json
- 1. 通用settings
- 2. 开发环境
- 3. Docker环境
项目地址
- 教程作者:
- 教程地址:
- 代码仓库地址:
- 所用到的框架和插件:
dbt
airflow
英语
一、部署一个简单服务
1.1 Pod和Serivce
1. 部署地图服务
- 创建yaml文件

- 部署pod和service
kubectl apply -f .\first-pod.yaml
kubectl apply -f .\webapp-service.yaml
- 查看当前所有的服务和pod
kubectl get all

4. 访问服务

2. Port/TargetPort/NodePort
| 属性 | 含义 |
|---|---|
targetPort: 5000 | docker image内 Flask 应用监听在 5000 端口 |
port: 80 | Service 对k8s内部 Pod 显示为 80 端口,其他k8s通过该接口访问呢 |
nodePort: 30080 | 外部用户访问 http://NodeIP:30080 |
1.2 服务秒切换
1. 创建新的pod
- 创建一个使用release 0-5的container的服务的Pod

- 应用该yaml
kubectl apply -f .\first-pod.yaml

- 查看当前服务的pods和labels

2. 切换为新Pod
- 将服务里的labels.name切换到新的release-0-5的服务

- 重新应用服务后,新的服务上线
kubectl apply -f .\webapp-service.yaml
1.3 添加一个队列服务
1. 添加队列服务的Pod
- 创建queque的pod
---
apiVersion: v1
kind: Pod
metadata:name: queuelabels:app: quequespec:containers:- name: quequeimage: richardchesterwood/k8s-fleetman-queue:release1
- 应用pod
kubectl apply -f .\first-pod.yaml
2. 添加队列的service
- 创建服务
apiVersion: v1
kind: Service
metadata:name: fleetman-queue
spec:selector:app: quequeports:- name: httpport: 8161nodePort: 30010type: NodePort
- 应用服务
kubectl apply -f .\webapp-service.yaml
- 查看,可以看到所服务已经上线

1.4 ReplicaSet
1. 创建
- 创建RelicaSet

- 删除当前所有的pods和服务
kubectl delete all --all
- 重新应用新的Pods和服务,pod后会有随机的id
