K8S服务部署

文章目录

  • 项目地址
  • 英语
  • 一、部署一个简单服务
    • 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. 部署地图服务

  1. 创建yaml文件
    在这里插入图片描述
  2. 部署pod和service
kubectl apply -f .\first-pod.yaml     
kubectl apply -f .\webapp-service.yaml
  1. 查看当前所有的服务和pod
kubectl get all

在这里插入图片描述
4. 访问服务
在这里插入图片描述

2. Port/TargetPort/NodePort

属性含义
targetPort: 5000docker image内 Flask 应用监听在 5000 端口
port: 80Service 对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

  1. 创建queque的pod
---
apiVersion: v1
kind: Pod
metadata:name: queuelabels:app: quequespec:containers:- name: quequeimage: richardchesterwood/k8s-fleetman-queue:release1
  1. 应用pod
kubectl apply -f .\first-pod.yaml

2. 添加队列的service

  1. 创建服务
apiVersion: v1
kind: Service
metadata:name: fleetman-queue
spec:selector:app: quequeports:- name: httpport: 8161nodePort: 30010type: NodePort
  1. 应用服务
kubectl apply -f .\webapp-service.yaml
  1. 查看,可以看到所服务已经上线

在这里插入图片描述

1.4 ReplicaSet

1. 创建

  1. 创建RelicaSet
    在这里插入图片描述
  2. 删除当前所有的pods和服务
kubectl delete all --all
  1. 重新应用新的Pods和服务,pod后会有随机的id
    在这里插入图片描述