Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yurifrl/2c10af9018f83658d6dabc7bd7b90a72 to your computer and use it in GitHub Desktop.
Save yurifrl/2c10af9018f83658d6dabc7bd7b90a72 to your computer and use it in GitHub Desktop.
K8s NodeSelector usage
# 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