0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenShift - oc command Tips - node

Last updated at Posted at 2024-10-24

OpenShift の様々な操作で使用する oc コマンドにおいて、node 関連で思いのほか面倒と思われるものを、使用例としてご紹介します。

Sort

Sort by node-role

$ oc get node --sort-by='.metadata.labels.node-role\.kubernetes\.io/worker'
NAME                                               STATUS   ROLES                  AGE     VERSION
ip-99-888-77-45.us-eastwest-10.machine.external    Ready    control-plane,master   5d19h   v1.29.8+f10c92d
ip-99-888-77-82.us-eastwest-10.machine.external    Ready    control-plane,master   5d19h   v1.29.8+f10c92d
ip-99-888-77-40.us-eastwest-10.machine.external    Ready    control-plane,master   5d19h   v1.29.8+f10c92d
ip-99-888-77-16.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-50.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-102.us-eastwest-10.machine.external   Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-19.us-eastwest-10.machine.external    Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-118.us-eastwest-10.machine.external   Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-41.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-42.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-116.us-eastwest-10.machine.external   Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-49.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-122.us-eastwest-10.machine.external   Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-55.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-71.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-72.us-eastwest-10.machine.external    Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-78.us-eastwest-10.machine.external    Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-113.us-eastwest-10.machine.external   Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-93.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-94.us-eastwest-10.machine.external    Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-99.us-eastwest-10.machine.external    Ready    infra,worker           20h     v1.29.8+f10c92d

$ oc get node --sort-by='.metadata.labels.node-role\.kubernetes\.io/control-plane'
NAME                                               STATUS   ROLES                  AGE     VERSION
ip-99-888-77-49.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-94.us-eastwest-10.machine.external    Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-19.us-eastwest-10.machine.external    Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-78.us-eastwest-10.machine.external    Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-93.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-55.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-72.us-eastwest-10.machine.external    Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-122.us-eastwest-10.machine.external   Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-113.us-eastwest-10.machine.external   Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-116.us-eastwest-10.machine.external   Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-99.us-eastwest-10.machine.external    Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-50.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-71.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-42.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-102.us-eastwest-10.machine.external   Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-118.us-eastwest-10.machine.external   Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-41.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-16.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-82.us-eastwest-10.machine.external    Ready    control-plane,master   5d19h   v1.29.8+f10c92d
ip-99-888-77-45.us-eastwest-10.machine.external    Ready    control-plane,master   5d19h   v1.29.8+f10c92d
ip-99-888-77-40.us-eastwest-10.machine.external    Ready    control-plane,master   5d19h   v1.29.8+f10c92d

Sort by node IP address

$ oc get node --sort-by=.status.addresses[0].address
NAME                                               STATUS   ROLES                  AGE     VERSION
ip-99-888-77-16.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-19.us-eastwest-10.machine.external    Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-40.us-eastwest-10.machine.external    Ready    control-plane,master   5d19h   v1.29.8+f10c92d
ip-99-888-77-41.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-42.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-45.us-eastwest-10.machine.external    Ready    control-plane,master   5d19h   v1.29.8+f10c92d
ip-99-888-77-49.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-50.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-55.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-71.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-72.us-eastwest-10.machine.external    Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-78.us-eastwest-10.machine.external    Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-82.us-eastwest-10.machine.external    Ready    control-plane,master   5d19h   v1.29.8+f10c92d
ip-99-888-77-93.us-eastwest-10.machine.external    Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-94.us-eastwest-10.machine.external    Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-99.us-eastwest-10.machine.external    Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-102.us-eastwest-10.machine.external   Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-113.us-eastwest-10.machine.external   Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-116.us-eastwest-10.machine.external   Ready    worker                 5d19h   v1.29.8+f10c92d
ip-99-888-77-118.us-eastwest-10.machine.external   Ready    infra,worker           20h     v1.29.8+f10c92d
ip-99-888-77-122.us-eastwest-10.machine.external   Ready    worker                 5d19h   v1.29.8+f10c92d

Label

Add node label

$ oc label node ip-99-888-77-122.us-eastwest-10.machine.external my-label.private/label1="true"
node/ip-99-888-77-122.us-eastwest-10.machine.external labeled

Show labeled nodes

$ oc get node -l my-label.private/label1
NAME                                               STATUS   ROLES    AGE     VERSION
ip-99-888-77-122.us-eastwest-10.machine.external   Ready    worker   5d19h   v1.29.8+f10c92d

$ oc get node -l my-label.private/label1="true"
NAME                                               STATUS   ROLES    AGE     VERSION
ip-99-888-77-122.us-eastwest-10.machine.external   Ready    worker   5d19h   v1.29.8+f10c92d

$ oc get node -l my-label.private/label1=true
NAME                                               STATUS   ROLES    AGE     VERSION
ip-99-888-77-122.us-eastwest-10.machine.external   Ready    worker   5d19h   v1.29.8+f10c92d

$ oc get node -l my-label.private/label1=false
No resources found

Show all node labels

$ oc -o json get node | jq -r '.items[].metadata.labels | keys[]' | sort | uniq
beta.kubernetes.io/arch
beta.kubernetes.io/instance-type
beta.kubernetes.io/os
failure-domain.beta.kubernetes.io/region
failure-domain.beta.kubernetes.io/zone
kubernetes.io/arch
kubernetes.io/hostname
kubernetes.io/os
node.kubernetes.io/instance-type
node.openshift.io/os_id
node-role.kubernetes.io/control-plane
node-role.kubernetes.io/master
node-role.kubernetes.io/worker
topology.abc.123.xyz.com/zone
topology.kubernetes.io/region
topology.kubernetes.io/zone

$ for V in $(oc -o json get node | jq -r '.items[].metadata.labels | keys[]' | sort | uniq)
do
  O=$O" -L $V "
done

$ oc get node $O
NAME                                               STATUS   ROLES                  AGE     VERSION           ARCH    INSTANCE-TYPE   OS      REGION           ZONE              ARCH    HOSTNAME                                           OS      INSTANCE-TYPE   OS_ID   CONTROL-PLANE   MASTER   WORKER   ZONE              REGION           ZONE
ip-99-888-77-102.us-eastwest-10.machine.external   Ready    worker                 4d22h   v1.29.8+f10c92d   amd64   r5.16xyzbig     linux   us-eastwest-10   us-eastwest-10z   amd64   ip-99-888-77-102.us-eastwest-10.machine.external   linux   r5.16xyzbig     rhcos                                     us-eastwest-10z   us-eastwest-10   us-eastwest-10z
ip-99-888-77-113.us-eastwest-10.machine.external   Ready    worker                 4d22h   v1.29.8+f10c92d   amd64   r5.16xyzbig     linux   us-eastwest-10   us-eastwest-10z   amd64   ip-99-888-77-113.us-eastwest-10.machine.external   linux   r5.16xyzbig     rhcos                                     us-eastwest-10z   us-eastwest-10   us-eastwest-10z
ip-99-888-77-116.us-eastwest-10.machine.external   Ready    worker                 4d22h   v1.29.8+f10c92d   amd64   r5.16xyzbig     linux   us-eastwest-10   us-eastwest-10z   amd64   ip-99-888-77-116.us-eastwest-10.machine.external   linux   r5.16xyzbig     rhcos                                     us-eastwest-10z   us-eastwest-10   us-eastwest-10z
ip-99-888-77-122.us-eastwest-10.machine.external   Ready    worker                 4d22h   v1.29.8+f10c92d   amd64   r5.16xyzbig     linux   us-eastwest-10   us-eastwest-10z   amd64   ip-99-888-77-122.us-eastwest-10.machine.external   linux   r5.16xyzbig     rhcos                                     us-eastwest-10z   us-eastwest-10   us-eastwest-10z
ip-99-888-77-16.us-eastwest-10.machine.external    Ready    worker                 4d22h   v1.29.8+f10c92d   amd64   r5.16xyzbig     linux   us-eastwest-10   us-eastwest-10z   amd64   ip-99-888-77-16.us-eastwest-10.machine.external    linux   r5.16xyzbig     rhcos                                     us-eastwest-10z   us-eastwest-10   us-eastwest-10z
ip-99-888-77-40.us-eastwest-10.machine.external    Ready    control-plane,master   4d22h   v1.29.8+f10c92d   amd64   c6i.8xyzbig     linux   us-eastwest-10   us-eastwest-10z   amd64   ip-99-888-77-40.us-eastwest-10.machine.external    linux   c6i.8xyzbig     rhcos                                     us-eastwest-10z   us-eastwest-10   us-eastwest-10z
ip-99-888-77-41.us-eastwest-10.machine.external    Ready    worker                 4d22h   v1.29.8+f10c92d   amd64   r5.16xyzbig     linux   us-eastwest-10   us-eastwest-10z   amd64   ip-99-888-77-41.us-eastwest-10.machine.external    linux   r5.16xyzbig     rhcos                                     us-eastwest-10z   us-eastwest-10   us-eastwest-10z
ip-99-888-77-42.us-eastwest-10.machine.external    Ready    worker                 4d22h   v1.29.8+f10c92d   amd64   r5.16xyzbig     linux   us-eastwest-10   us-eastwest-10z   amd64   ip-99-888-77-42.us-eastwest-10.machine.external    linux   r5.16xyzbig     rhcos                                     us-eastwest-10z   us-eastwest-10   us-eastwest-10z
ip-99-888-77-45.us-eastwest-10.machine.external    Ready    control-plane,master   4d22h   v1.29.8+f10c92d   amd64   c6i.8xyzbig     linux   us-eastwest-10   us-eastwest-10z   amd64   ip-99-888-77-45.us-eastwest-10.machine.external    linux   c6i.8xyzbig     rhcos                                     us-eastwest-10z   us-eastwest-10   us-eastwest-10z
ip-99-888-77-49.us-eastwest-10.machine.external    Ready    worker                 4d22h   v1.29.8+f10c92d   amd64   r5.16xyzbig     linux   us-eastwest-10   us-eastwest-10z   amd64   ip-99-888-77-49.us-eastwest-10.machine.external    linux   r5.16xyzbig     rhcos                                     us-eastwest-10z   us-eastwest-10   us-eastwest-10z
ip-99-888-77-50.us-eastwest-10.machine.external    Ready    worker                 4d22h   v1.29.8+f10c92d   amd64   r5.16xyzbig     linux   us-eastwest-10   us-eastwest-10z   amd64   ip-99-888-77-50.us-eastwest-10.machine.external    linux   r5.16xyzbig     rhcos                                     us-eastwest-10z   us-eastwest-10   us-eastwest-10z
ip-99-888-77-55.us-eastwest-10.machine.external    Ready    worker                 4d22h   v1.29.8+f10c92d   amd64   r5.16xyzbig     linux   us-eastwest-10   us-eastwest-10z   amd64   ip-99-888-77-55.us-eastwest-10.machine.external    linux   r5.16xyzbig     rhcos                                     us-eastwest-10z   us-eastwest-10   us-eastwest-10z
ip-99-888-77-71.us-eastwest-10.machine.external    Ready    worker                 4d22h   v1.29.8+f10c92d   amd64   r5.16xyzbig     linux   us-eastwest-10   us-eastwest-10z   amd64   ip-99-888-77-71.us-eastwest-10.machine.external    linux   r5.16xyzbig     rhcos                                     us-eastwest-10z   us-eastwest-10   us-eastwest-10z
ip-99-888-77-82.us-eastwest-10.machine.external    Ready    control-plane,master   4d22h   v1.29.8+f10c92d   amd64   c6i.8xyzbig     linux   us-eastwest-10   us-eastwest-10z   amd64   ip-99-888-77-82.us-eastwest-10.machine.external    linux   c6i.8xyzbig     rhcos                                     us-eastwest-10z   us-eastwest-10   us-eastwest-10z
ip-99-888-77-93.us-eastwest-10.machine.external    Ready    worker                 4d22h   v1.29.8+f10c92d   amd64   r5.16xyzbig     linux   us-eastwest-10   us-eastwest-10z   amd64   ip-99-888-77-93.us-eastwest-10.machine.external    linux   r5.16xyzbig     rhcos                                     us-eastwest-10z   us-eastwest-10   us-eastwest-10z

Remove node label

$ oc label node ip-99-888-77-122.us-eastwest-10.machine.external my-label.private/label1-
node/ip-99-888-77-122.us-eastwest-10.machine.external unlabeled

$ oc get node -l my-label.private/label1
No resources found

Taint

Add node taint

$ oc adm taint node ip-99-888-77-122.us-eastwest-10.machine.external my-taint.private/taint1="true":NoSchedule
node/ip-99-888-77-122.us-eastwest-10.machine.external tainted

Show node taints

$ oc get node ip-99-888-77-122.us-eastwest-10.machine.external -o jsonpath='{.spec.taints[]}{"\n"}'
[{"effect":"NoSchedule","key":"my-taint.private/taint1","value":"true"}]

Show all node taints

$ oc get node -o jsonpath='{range @.items[*]}{.metadata.name}{.spec.taints[*]}{"\n"}'
ip-99-888-77-102.us-eastwest-10.machine.external
ip-99-888-77-113.us-eastwest-10.machine.external
ip-99-888-77-116.us-eastwest-10.machine.external
ip-99-888-77-118.us-eastwest-10.machine.external
ip-99-888-77-122.us-eastwest-10.machine.external{"effect":"NoSchedule","key":"my-taint.private/taint1","value":"true"}
ip-99-888-77-16.us-eastwest-10.machine.external
ip-99-888-77-19.us-eastwest-10.machine.external
ip-99-888-77-40.us-eastwest-10.machine.external{"effect":"NoSchedule","key":"node-role.kubernetes.io/master"}
ip-99-888-77-41.us-eastwest-10.machine.external
ip-99-888-77-42.us-eastwest-10.machine.external
ip-99-888-77-45.us-eastwest-10.machine.external{"effect":"NoSchedule","key":"node-role.kubernetes.io/master"}
ip-99-888-77-49.us-eastwest-10.machine.external
ip-99-888-77-50.us-eastwest-10.machine.external
ip-99-888-77-55.us-eastwest-10.machine.external
ip-99-888-77-71.us-eastwest-10.machine.external
ip-99-888-77-72.us-eastwest-10.machine.external
ip-99-888-77-78.us-eastwest-10.machine.external
ip-99-888-77-82.us-eastwest-10.machine.external{"effect":"NoSchedule","key":"node-role.kubernetes.io/master"}
ip-99-888-77-93.us-eastwest-10.machine.external
ip-99-888-77-94.us-eastwest-10.machine.external
ip-99-888-77-99.us-eastwest-10.machine.external

$ oc get node -o custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
NAME                                               TAINTS
ip-99-888-77-102.us-eastwest-10.machine.external   <none>
ip-99-888-77-113.us-eastwest-10.machine.external   <none>
ip-99-888-77-116.us-eastwest-10.machine.external   <none>
ip-99-888-77-122.us-eastwest-10.machine.external   [map[effect:NoSchedule key:my-taint.private/taint1 value:true]]
ip-99-888-77-16.us-eastwest-10.machine.external    <none>
ip-99-888-77-40.us-eastwest-10.machine.external    [map[effect:NoSchedule key:node-role.kubernetes.io/master]]
ip-99-888-77-41.us-eastwest-10.machine.external    <none>
ip-99-888-77-42.us-eastwest-10.machine.external    <none>
ip-99-888-77-45.us-eastwest-10.machine.external    [map[effect:NoSchedule key:node-role.kubernetes.io/master]]
ip-99-888-77-49.us-eastwest-10.machine.external    <none>
ip-99-888-77-50.us-eastwest-10.machine.external    <none>
ip-99-888-77-55.us-eastwest-10.machine.external    <none>
ip-99-888-77-71.us-eastwest-10.machine.external    <none>
ip-99-888-77-82.us-eastwest-10.machine.external    [map[effect:NoSchedule key:node-role.kubernetes.io/master]]
ip-99-888-77-93.us-eastwest-10.machine.external    <none>

Remove node taint

$ oc adm taint node ip-99-888-77-122.us-eastwest-10.machine.external my-taint.private/taint1="true":NoSchedule-
node/ip-99-888-77-122.us-eastwest-10.machine.external untainted

$ oc get node ip-99-888-77-122.us-eastwest-10.machine.external -o jsonpath='{.spec.taints[]}{"\n"}'

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?