zoukankan      html  css  js  c++  java
  • Kubernetes集群向指定节点上创建容器

    如果需要限制Pod到指定的Node上运行,则可以给Node打标签并给Pod配置NodeSelector。

    给节点添加标签

    首先查看节点信息

    [root@k8s-master ~]# kubectl get nodes
    NAME          STATUS    AGE
    k8s-slave01   Ready     4d
    k8s-slave02   Ready     4d

    选择一个节点,给这个节点添加一个标签

    [root@k8s-master ~]# kubectl label nodes k8s-slave01 disktype=abc
    node "k8s-slave01" labeled

    查看标签信息

    [root@k8s-master ~]# kubectl get nodes --show-labels
    NAME          STATUS    AGE       LABELS
    k8s-slave01   Ready     4d        beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,disktype=abc,kubernetes.io/hostname=k8s-slave01
    k8s-slave02   Ready     4d        beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=k8s-slave02

    向指定节点上创建pod

    mysql-rc-xxx.yaml文件示例

    kind: ReplicationController
    metadata:
      name: mysql-master
      namespace: default
      labels:
        name: mysql-master
        version: v1
    spec:
      replicas: 1
      selector:
        name: mysql-master-pod
        version: v1
      template:
        metadata:
          labels:
            name: mysql-master-pod
            version: v1
        spec:
          containers:
            - image: docker.io/mysql
              name: master
              ports:
                - containerPort: 3306
              nodeSelector:
                  disktype: abc
              env:
                - name: MYSQL_ROOT_PASSWORD
                  value: "123456"
              volumeMounts:
                - name: mysql-storage
                  mountPath: /var/lib/mysql
          volumes:
            - name: mysql-storage
              hostPath:
                path: /data/mysql_master

    创建pod

    [root@k8s-master k8s_yamls]# kubectl create -f  mysql-rc-master.yaml
    replicationcontroller "mysql-master" created

    mysql-svc-xxx.yaml示例

    apiVersion: v1
    kind: Service
    metadata:
      name: mysql-master-svc
      namespace: default
      labels:
        name: mysql-master-svc
    spec:
      externalIPs:
        - 192.168.44.61
      type: NodePort
      ports:
      - port: 3306
        protocol: TCP
        targetPort: 3306
        name: http
        nodePort: 30006 
      selector:
        name: mysql-master-pod

    创建svc

    [root@k8s-master k8s_yamls]# kubectl create -f  mysql-svc-master.yaml
    service "mysql-master-svc" created

    查看是否在slave01上

    [root@k8s-master ~]# kubectl get pods -o wide      
    NAME                 READY     STATUS    RESTARTS   AGE       IP            NODE
    mysql-master-5h2kg   1/1       Running   0          42m       172.17.25.2   k8s-slave01
  • 相关阅读:
    C#委托本质探索 四、方法变量内、外混合调用
    calibredrv 对layer做操作
    2021年11月工作笔记
    2022年1月工作资料
    2021年12月工作资料
    MySQL 5.7 MGR原理及部署
    在虚拟机上安装redis集群,redis使用版本为4.0.5,本机通过命令客户端可以连接访问,外部主机一直访问不了
    mongoDB中的的常用语法
    使用Nginx做图片服务器时候,配置之后图片访问一直是 404问题解决
    jquery.cookie() 方法的使用(读取、写入、删除)
  • 原文地址:https://www.cnblogs.com/blazeZzz/p/10297589.html
Copyright © 2011-2022 走看看