-
-
Save yurifrl/2c10af9018f83658d6dabc7bd7b90a72 to your computer and use it in GitHub Desktop.
K8s NodeSelector usage
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# List running nodes | |
docker run -it --rm --volumes-from data levenson/kubectl get nodes | |
NAME LABELS STATUS | |
10.161.34.62 kubernetes.io/hostname=10.161.34.62 Ready | |
10.161.34.65 kubernetes.io/hostname=10.161.34.65 Ready | |
10.161.34.70 kubernetes.io/hostname=10.161.34.70 Ready | |
# Label nodes with name key | |
docker run -it --rm --volumes-from data levenson/kubectl label nodes 10.161.34.62 name=node-1 | |
docker run -it --rm --volumes-from data levenson/kubectl label nodes 10.161.34.65 name=node-2 | |
docker run -it --rm --volumes-from data levenson/kubectl label nodes 10.161.34.70 name=node-3 | |
# Confirm labels applied to nodes | |
docker run -it --rm --volumes-from data levenson/kubectl get nodes | |
NAME LABELS STATUS | |
10.161.34.62 kubernetes.io/hostname=10.161.34.62,name=node-1 Ready | |
10.161.34.65 kubernetes.io/hostname=10.161.34.65,name=node-2 Ready | |
10.161.34.70 kubernetes.io/hostname=10.161.34.70,name=node-3 Ready | |
# Create kafka-1 list,svc,pod. | |
docker run -it --rm --volumes-from data levenson/kubectl create -f /data/kafka-1.json | |
{ | |
"kind": "List", | |
"apiVersion": "v1", | |
"id": "kafka", | |
"items":[ | |
{ | |
"kind": "Service", | |
"apiVersion": "v1", | |
"metadata": { | |
"name": "kafka-1", | |
"namespace": "realtime", | |
"labels": { | |
"name": "kafa-1" | |
} | |
}, | |
"spec": { | |
"ports": [ | |
{ | |
"name": "service", | |
"port": 9092, | |
"targetPort": 9092 | |
}, | |
{ | |
"name": "jmx", | |
"port": 7203, | |
"targetPort": 7203 | |
} | |
], | |
"selector": { | |
"server-id": "1" | |
} | |
} | |
}, | |
{ | |
"kind": "Pod", | |
"apiVersion": "v1", | |
"metadata": { | |
"name": "kafka-1", | |
"namespace": "realtime", | |
"labels": { | |
"name": "kafka", | |
"server-id": "1" | |
} | |
}, | |
"spec": { | |
"containers": [ | |
{ | |
"name": "server", | |
"image": "levenson/k8s-kafka", | |
"env":[ | |
{ "name": "KAFKA_SERVER_ID", "value": "1" }, | |
{ "name": "KAFKA_CLIENT_1_SERVICE_HOST", "value": "kafka-1.realtime.svc.kubernetes.io" }, | |
{ "name": "KAFKA_CLIENT_1_SERVICE_PORT", "value": "9093" }, | |
{ "name": "ZK_CLIENT_1_SERVICE_HOST", "value": "zookeeper.realtime.svc.kubernetes.io" }, | |
{ "name": "ZK_CLIENT_1_SERVICE_PORT", "value": "2181" } | |
], | |
"volumeMounts": [ | |
{ | |
"name": "kafka-1-data", | |
"mountPath": "/data/" | |
} | |
], | |
"ports":[ | |
{ | |
"containerPort": 9092 | |
}, | |
{ | |
"containerPort": 7203 | |
} | |
] | |
} | |
], | |
"nodeSelector": { | |
"name": "node-1" | |
}, | |
"volumes": [ | |
{ | |
"name": "kafka-1-data", | |
"hostPath": { | |
"path": "/data/kafka-1/data" | |
} | |
} | |
] | |
} | |
} | |
] | |
} | |
# Confirm kafka-1 is running on node with label name=node-1 -- No it's running on node labelled name=node-2 | |
docker run -it --rm --volumes-from data levenson/kubectl get pods kafka-1 -o wide --namespace=realtime | |
NAME READY STATUS RESTARTS AGE NODE | |
kafka-1 1/1 Running 0 1h 10.161.34.65 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment