将pod 指定部署到特定节点(master)上的一种方法记录

简介: 将pod 指定部署到特定节点(master)上的一种方法记录 -nodeSelector需求是这样的,我要搭一个集群,这个集群要走 CI/CD 流程,还要管理 CI/CD 流程的产出物,将其保存在 Harbor 中,让后让产出物在另外两个节点上运行起来。

将pod 指定部署到特定节点(master)上的一种方法记录 -nodeSelector

需求是这样的,我要搭一个集群,这个集群要走 CI/CD 流程,还要管理 CI/CD 流程的产出物,将其保存在 Harbor 中,让后让产出物在另外两个节点上运行起来。咨询了我司 DevOps 大佬,大佬建议将 Jenkins 部署到 Master 节点,可以避免各种证书相关的问题。

那么问题来了, pod 部署一般都是 k8s 来分配,怎么将 Jenkins 部署到特定 master 节点呢?

接下来对我的操作做一个记录。

为master 节点打标签

[root@master ~]# kubectl label nodes master labelName=master

编写yaml

部署文档如下

apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins-deployment
  labels:
    app: jenkins
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      containers:
      - name: jenkins
        image: jenkins:latest
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080
          name: web
          protocol: TCP
        - containerPort: 50000
          name: agent
          protocol: TCP
        volumeMounts:
        - name: jenkins-home
          mountPath: /var/jenkins_home
      volumes:
      - name: jenkins-home
        hostPath:
          path: /root/jenkins-home
      nodeSelector:
        labelName: master
---
apiVersion: v1
kind: Service
metadata:
  name: jenkins-service
  labels:
    app: jenkins
spec:
  ports:
  - port: 8080
    targetPort: 8080
    name: web
    nodePort: 32019
  - port: 50000
    targetPort: 50000
    name: agent
  selector:
    app-name: jenkins
  type: NodePort

正是由于 Demployment 中spec 中制定了 nodeSelecter 的 label 为 labelName:master, Jenkins 会自动选在 master 节点进行部署。

目录
相关文章
|
Kubernetes Perl 容器
【kubernetes】修改集群节点中 Pod 数量限制
Kubernetes 默认每个节点只能启动 110 个 Pod,由于业务需要,将每个节点默认限制的 Pod 数量改为 200。
3201 0
|
5月前
|
Kubernetes 网络安全 Docker
在k8S中,Worker节点加入集群的过程是什么?
在k8S中,Worker节点加入集群的过程是什么?
|
5月前
|
Kubernetes 固态存储 调度
在K8S中,如何在指定节点上部署Pod呢?
在K8S中,如何在指定节点上部署Pod呢?
|
5月前
|
运维 Kubernetes Perl
在K8S中,节点故障pod驱逐pod过程,时间怎么定义的?
在K8S中,节点故障pod驱逐pod过程,时间怎么定义的?
|
5月前
|
Kubernetes 网络安全 API
在K8S中,集群内有个节点not ready,如何排查?
在K8S中,集群内有个节点not ready,如何排查?
|
5月前
|
Kubernetes 算法 调度
在K8S中,如何把Pod调度到某个节点,有哪些方法?
在K8S中,如何把Pod调度到某个节点,有哪些方法?
|
7月前
|
Kubernetes API 调度
Pod无法调度到可用的节点上(K8s)
完成k8s单节点部署后,创建了一个pod进行测试,后续该pod出现以下报错: Warning FailedScheduling 3h7m (x3 over 3h18m) default-scheduler 0/1 nodes are available: 1 node(s) had untolerated taint {node-role.kubernetes.io/control-plane: }. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling..
472 0
|
8月前
|
Kubernetes 算法 调度
k8s群集调度之 pod亲和 node亲和 标签指定
k8s群集调度之 pod亲和 node亲和 标签指定
|
Kubernetes 监控 Docker
深入解析 Kubernetes 架构:掌握主节点、工作节点和容器运行时
深入解析 Kubernetes 架构:掌握主节点、工作节点和容器运行时
472 0
|
8月前
|
Kubernetes Cloud Native 虚拟化
云原生|kubernetes|找回丢失的etcd集群节点---etcd节点重新添加,扩容和重新初始化k8s的master节点
云原生|kubernetes|找回丢失的etcd集群节点---etcd节点重新添加,扩容和重新初始化k8s的master节点
254 0

热门文章

最新文章