지정된 노드에 할당 된 포드는 Kubernetes

간략한 소개

이 문서는 포드에 지정된 노드의 노드에 할당하는 방법에 초점을 맞추고

참고 :이 문서는 공식 문서를 참조하여 이해되어야합니다. 오해의 소지가있는 경우, 비판을하시기 바랍니다.

노드에 태그 추가

(1)는, 현재의 중앙 집중화, 모든 노드 레이블을 볼 수

# kubectl get nodes --show-labels

출력 :

NAME           STATUS   ROLES    AGE   VERSION   LABELS
k8s-master01   Ready    master   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master01,kubernetes.io/os=linux,node-role.kubernetes.io/master=
k8s-master02   Ready    master   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master02,kubernetes.io/os=linux,node-role.kubernetes.io/master=
k8s-master03   Ready    master   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master03,kubernetes.io/os=linux,node-role.kubernetes.io/master=
k8s-node01     Ready    <none>   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node01,kubernetes.io/os=linux
k8s-node02     Ready    <none>   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node02,kubernetes.io/os=linux
k8s-node03     Ready    <none>   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node03,kubernetes.io/os=linux
k8s-node04     Ready    <none>   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node04,kubernetes.io/os=linux

노드 노드를 선택합니다, 표시labels

# kubectl label nodes k8s-node04 disktype=ssd

3,보기 노드의 레이블

# kubectl get nodes k8s-node04 --show-labels

다음과 같이 출력은 다음과 같습니다

NAME         STATUS   ROLES    AGE   VERSION   LABELS
k8s-node04   Ready    <none>   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,disktype=ssd,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node04,kubernetes.io/os=linux

출력 결과에서 보면, k8s-node04노드는 labels표시 disktype=ssd라벨

지정된 노드 포드에 일정 만들기

이 문서는 노드 선택 (디스크 형 SSD)를 갖는 포드 포드 구성을 설명한다. 이 수단은있을 것이다 disktype = ssd스케줄링 포드 노드 레이블을. 파일 :pod-nginx.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: test
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  nodeSelector:
    disktype: ssd

포드 만들기

# kubectl apply -f /root/k8s-example/pods/pod-nginx.yaml

보기 포드의 자세한 사항

# kubectl get pods -o wide

포드에 예약 지정되어 출력 결과로부터,k8s-node04

NAME                                READY   STATUS             RESTARTS   AGE    IP                NODE         NOMINATED NODE   READINESS GATES
nginx                               1/1     Running            0          107s   100.88.217.86     k8s-node04   <none>           <none>

지정된 노드 포드에 일정 만들기

또한 사용할 수있는 nodeName노드 노드를 지정하는 일정을 선택할 수 있습니다.

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  nodeName: k8s-node1
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent

개요

지정된 노드에 1 개의 포드 스케줄링 방법 :

  • 노드에 의해 표시된 라벨 nodeSelect스케줄링에 지정된 함유 lables노드
  • 으로 nodeName지정된 노드의 이름입니다.

추천

출처www.cnblogs.com/mcsiberiawolf/p/12220871.html