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
  • 相关阅读:
    Titanium环境搭建for mac
    MongoDB学习(二)MongoDB Java增删查改
    Titanium 列表显示TableView
    MongoDB学习(一)安装配置
    MongoDB学习(三)MongoDB shell 命令行的使用
    jsoup解析html
    C#中方法的参数四种类型(值参数、ref、out、params)详解
    ORM JPA 介绍及其使用
    Git Add提示LF would be replaced by CRLF的解决方法
    Spring Data JPA 介绍及使用
  • 原文地址:https://www.cnblogs.com/blazeZzz/p/10297589.html
Copyright © 2011-2022 走看看