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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM