Kubernetes部署服务到集群中的指定节点

Kubernetes部署服务到集群中的指定节点

       昨天部署服务的时候为了避免服务都部署到主节点,于是打算手动指定某个节点,当然是找资源比较充足的节点,我们可以先查看集群节点名称,输入以下命令行

kubectl get node

效果如下

NAME         STATUS   ROLES    AGE   VERSION
k8s-master   Ready    master   25h   v1.17.3
k8s-node2    Ready    <none>   25h   v1.17.3

我的集群只有两个节点,这里我打算部署在k8s-node2节点上,我们先记下这个节点的名称。

       k8s编排文件中指定nodeName,只需这一行配置

nodeName: k8s-node2

       下面贴出部署ymal文件,配置如下

apiVersion: apps/v1
kind: Deployment
metadata:
  name: drone-project-go-deployment
  namespace: gin-api-project
spec:
  selector:
    matchLabels:
      app: drone-project-go
  replicas: 2
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  template:
    metadata:
      labels:
        app: drone-project-go
    spec:
      containers:
      - name: drone-project-go
        image: project-go-api
        imagePullPolicy: Always
        resources:
          requests:
            cpu: "50m"
            memory: 50Mi
          limits:
            cpu: "80m"
            memory: 80Mi
        ports:
        - containerPort: 9911
      nodeName: k8s-node2  #指定部署节点在k8s-node2
---
apiVersion: v1
kind: Service
metadata:
  name: drone-project-go-service
  namespace: gin-api-project
  labels:
    app: drone-project-go
spec:
  type: NodePort
  selector:
    app: drone-project-go
  ports:
  - port: 9911
    targetPort: 9911
    nodePort: 30091

以上这段配置我们部署了一个Go服务(我自己构建的镜像),指定节点在k8s-node2,并且限制了资源,同时暴露了一个30091外部访问端口,我们看看服务是不是部署在我们指定的节点

1.png

服务确实部署在k8s-node2节点上。

       这样就成功在Kubernetes部署服务到集群中的指定节点。

0条评论

发表评论