k8s初使用 -1- 部署Dask集群案例

67 阅读1分钟

1:初始化k8s环境

参考: juejin.cn/post/740614…

2:准备K8s脚本

dask-scheduler-deployment

apiVersion: apps/v1  
kind: Deployment  
metadata:  
  name: dask-scheduler  
spec:  
  replicas: 1  
  selector:  
    matchLabels:  
      app: dask-scheduler  
  template:  
    metadata:  
      labels:  
        app: dask-scheduler  
    spec:  
      containers:  
      - name: dask-scheduler  
        image: daskdev/dask:latest  
        command: ["dask-scheduler"]  
        ports:  
        - containerPort: 8786
        - containerPort: 8787

dask-scheduler-service

apiVersion: v1  
kind: Service  
metadata:  
  name: dask-scheduler  
spec:  
  selector:  
    app: dask-scheduler  
  ports:  
  - port: 8786  
    targetPort: 8786  
    nodePort: 30086  # 自定义NodePort端口,对于type=NodePort是必须的  
    name: scheduler-port  
  - port: 8787  
    targetPort: 8787  
    nodePort: 30087  # 自定义NodePort端口,对于type=NodePort是必须的  
    name: web-ui  
  type: NodePort

dask-worker-deployment

apiVersion: apps/v1  
kind: Deployment  
metadata:  
  name: dask-worker  
spec:  
  replicas: 3  # 根据需要调整副本数  
  selector:  
    matchLabels:  
      app: dask-worker  
  template:  
    metadata:  
      labels:  
        app: dask-worker  
    spec:  
      containers:  
      - name: dask-worker  
        image: daskdev/dask:latest  
        command: ["dask-worker", "192.168.10.212:30086"]  
        # 确保dask-scheduler服务名正确,这里假设它与Deployment中定义的名称一致

3:启动集群

按顺序分别启动

# 启动
kubectl apply -f dask-scheduler-deployment.yaml
kubectl apply -f dask-scheduler-service.yaml
kubectl apply -f dask-worker-deployment.yaml

# 查询pod状态
kubectl get pod,svc

# 查询日志
kubectl logs pod名

#增加work
kubectl scale deployment dask-worker-deployment --replicas=6

# 删除集群
kubectl delete -f dask-worker-deployment.yaml

其他命令

yam文件的生成

#1 create 命令生成
kubectl create deployment web --image=nginx -o yaml --dry-run >my.yaml
#2 get 命令导出
 kubectl get deploy nginx  -o=yaml --export > my2.yaml

创建副本

# yaml文件定义的名称 replicas 副本数量
kubectl scale deployment web --replicas=3

查询pod 和 网络

kubectl get pod,svc

查询deployments

kubectl get deployments

service

#开发端口 一般都写yml文件
kubectl expose deployment web --port=80 --type=NodePort

# 查看信息
 kubectl describe service nginx
# 删除
 kubectl delete service nginx