рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП Oc рдЯреАрдо

рдпрджрд┐ рдЖрдк OpenShift рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд╣реИрдВ, рддреЛ рдпрд╣ рдкреЛрд╕реНрдЯ рдЖрдкрдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдкреНрд░рдХрдЯ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рдорд╛рд╕реНрдЯрд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рдордп рдФрд░ рдирд╕реЛрдВ рдХреЛ рдмрдЪрд╛рдПрдЧрд╛ред рд╣рдордиреЗ рдЬреЛрдЬ рдЯреБрдбреЗрд▓рд╛ рдЧреЛрдВрдЬрд╛рд▓реЗрдЬ рдбреА рд░рд┐рдпрд╛рдирдЪреЛ рд╕реЗ рдХрд╣рд╛, рдЬреЛ рд╕реНрдкреЗрдирд┐рд╢ рд░реЗрдб рд╣реИрдЯ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдХреНрд▓рд╛рдЙрдб рдХрдВрд╕рд▓реНрдЯреЗрдВрдЯ рд╣реИрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рд╛рдЧрд░ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЬреАрд╡рди рд╣реИрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ред



рдпрд╣ рдПрдХ рд╢рд╛рдВрдд рдЯреАрдо рд╣реИ, рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реЛрдЪрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ, рдпрд╣ рд▓рдЪреАрд▓рд╛ рд╣реИ, рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ, рдЗрд╕рдореЗрдВ рдХрдИ рдЫрд┐рдкреА рд╣реБрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИрдВред

1. рдкрд╣рд▓реА рдЪреАрдЬреЗрдВ рдкрд╣рд▓реЗ: рдбрд┐рдмрдЧрд┐рдВрдЧ


рдЬрдм рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдпрд╛ рдореБрдЭреЗ рдПрдХ рдЕрдХреНрд╖рдореНрдп рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╣рдореЗрд╢рд╛ --loglevell рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ , рдЬреЛ рдХрд┐ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ stderr рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рдзреНрд╡рдЬ рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдХрд░реНрд▓ рдПрдкреАрдЖрдИ рд░реЗрд╕реНрдЯ рдХреЙрд▓, рдПрдкреАрдЖрдИ рд░реЗрд╕реНрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдпрд╛ рдФрд░ рднреА рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред



$ oc --loglevel 7 get pod
...
I0216 21:24:12.027793 973 cached_discovery.go:72] returning cached discovery info from /home/jtudelag/.kube/192.168.42.77_8443/v1/serverresources.json
I0216 21:24:12.028046 973 round_trippers.go:383] GET https://192.168.42.77:8443/api/v1/namespaces/myproject/pods
I0216 21:24:12.028052 973 round_trippers.go:390] Request Headers:
I0216 21:24:12.028057 973 round_trippers.go:393] Accept: application/json
I0216 21:24:12.028061 973 round_trippers.go:393] User-Agent: oc/v1.7.6+a08f5eeb62 (linux/amd64) kubernetes/c84beff
I0216 21:24:12.053230 973 round_trippers.go:408] Response Status: 200 OK in 25 milliseconds
I0216 21:24:12.055143 973 cached_discovery.go:119] returning cached discovery info from /home/jtudelag/.kube/192.168.42.77_8443/servergroups.json
I0216 21:24:12.055228 973 cached_discovery.go:72] returning cached discovery info from /home/jtudelag/.kube/192.168.42.77_8443/authentication.k8s.io/v1/serverresources.json
I0216 21:24:12.055288 973 cached_discovery.go:72]
...

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Loglevel рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдЬрдм рдЖрдк OCP рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреИрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдкреИрдЪ рдХреЛ рд╕реНрд╡рдпрдВ (API рдЕрдиреБрд░реЛрдз рдХреА рд╕рд╛рдордЧреНрд░реА) рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреИрдЪ рд╕рд░реНрд╡рд┐рд╕ рд▓реЗрдмрд▓ рдХреЛ "рдРрдк: рд╣реИрд▓реЛ-рдЬреЙрд░реНрдЬ" рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

$ oc --loglevel 9 edit svc hello-openshift
...
I0216 21:33:15.786463 1389 request.go:994] Request Body: {"metadata":{"labels":{"app":"hello-jorge"}}}
I0216 21:33:15.786590 1389 round_trippers.go:386] curl -k -v -XPATCH -H "Accept: application/json" -H "Content-Type: application/strategic-merge-patch+json" -H "User-Agent: oc/v1.7.6+a08f5eeb62 (linux/amd64) kubernetes/c84beff" https://192.168.42.77:8443/api/v1/namespaces/myproject/services/hello-openshift
I0216 21:33:15.797185 1389 round_trippers.go:405] PATCH https://192.168.42.77:8443/api/v1/namespaces/myproject/services/hello-openshift 200 OK in 10 milliseconds
...

рдиреЛрдЯред рдирд┐рд░рд╛рд╢рд╛ рдХреЗ рд╕рдордп рдореЗрдВ, рдПрдХ рдиреМ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрдИ рдбреНрд░рд╛рдЗрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдорд╣рд╛рд╕рд╛рдЧрд░ рдХрдорд╛рдВрдб рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдЗрд╕рд╕реЗ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

$ oc --loglevel 9999 get pod

2. рд╕реБ -


рдЬреА рд╣рд╛рдВ, рдЖрдкрдиреЗ рд╕рд╣реА рд╕рдордЭрд╛ред рдорд╣рд╛рд╕рд╛рдЧрд░ рдЖрджреЗрд╢ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдУрд░ рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛, OCP рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдкреНрд░рддрд┐рд░реВрдкрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдмреЗрд╢рдХ, рдЙрдЪрд┐рдд рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рдеред рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП, рдмрд╕ --as рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

# jorge
$ oc --as=jorge get pods

рдкреНрд░рддрд┐рд░реВрдкрдг рди рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рд╕рдореВрд╣реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

# developers
$ oc --as-group=developers get pods

рдкреНрд░рддрд┐рд░реВрдкрдг рд╡рд┐рднрд┐рдиреНрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдорд╣рд╛рд╕рд╛рдЧрд░ рдЙрд╕рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЖрджреЗрд╢ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред рднреВрдорд┐рдХрд╛ рдФрд░ рдЕрдиреБрдорддрд┐ рд╕реЗ рднреНрд░рдо рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд░реВрдкрдг рднреА рдмрд╣реБрдд рдорджрдж рдХрд░рддрд╛ рд╣реИред

3. рд╡рд╛рдореА


рд╕рд╛рдЧрд░ рдУрдЯрд╛рдореА рдЯреАрдо рд╢рд╛рдпрдж рд╕рднреА рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ -t рдЭрдВрдбрд╛, рдЬреЛ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ / рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП рдореАрдбрд┐рдпрд╛ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЯреЛрдХрди рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕рдХреЗ рдорд╛рд▓рд┐рдХ рдирд╣реАрдВ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк рдЗрд╕ рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ OpenShift рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдорд╣рд╛рд╕рд╛рдЧрд░ whoami рдХрдорд╛рдВрдб рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд░реБрдХрд┐рдП, рдЖрдк рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЭрдВрдбреЗ рдХреЗ рддреАрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдУрдиреЛрдо рдУрдпрд╛рдореА рдХреЛ рдХреЗрд╡рд▓ рдЯреЛрдХрди рджреЗрдХрд░ рдорд╛рд▓рд┐рдХ рдХреЗ рдирд╛рдо рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рджреЗрдЦреЗрдВ:
#
$ token=$(oc whoami -t)

#
$ oc whoami $token
jorge

4. рд╕рд╛рдЧрд░ рдбреАрдмрдЧ


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдПрдХ рд░рдирд┐рдВрдЧ рдкреЙрдб рдореЗрдВ рдПрдХ рд╢реЗрд▓ рд╕рд╣реА рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрднреА-рдХрднреА рд╢реЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓ рд░рд╣реА рдлрд▓реА рдФрд░ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдкреВрд░реА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рддрдерд╛рдХрдерд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдзрд┐ рд╣реИред

рдЕрдм рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдХрд┐ рдУрд╢рди рдбрд┐рдмрдЧ рд╡рд┐рдХрд▓реНрдк рдЖрдкрдХреЛ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ: рдЖрдк рдХрдВрдЯреЗрдирд░ рдХреЛ рд░реВрдЯ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ; рдЖрдк рдЗрд╕реЗ рдЪрдпрдирд┐рдд рдиреЛрдб рдкрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЖрдк рдЗрд╕рдореЗрдВ рд╢реЗрд▓ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдЕрдиреНрдп рдХрдорд╛рдВрдб рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рд╕рд╣реА рдбреАрд╕реА рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
# shell pod' dc/jorge
$ oc debug dc/jorge

# , root
$ oc debug --as-root=true dc/jorge

5. рд╕рд╛рдЧрд░ рд╕рдордЭрд╛рддреЗ рд╣реИрдВ


OpenShift / Kubernetes рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрднреА-рдХрднреА рдлрд╝реАрд▓реНрдб рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИред рдРрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЕрдХреНрд╕рд░ рдУрд╕реАрдкреА рдпрд╛ рдЕрдиреНрдп рдкреНрд░рд╛рдердорд┐рдХ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдХреА рдУрд░ рдореБрдбрд╝рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдорд╣рд╛рд╕рд╛рдЧрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрдорд╛рдВрдб рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдЖрджреЗрд╢ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдФрд░ рдЙрдирдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдирдП рдУрд╕реАрдкреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╕рдордп рдпрд╛ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдУрд╕реАрдкреА рдкреНрд░рд▓реЗрдЦрди рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдкреЙрдб рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдЖрддреНрдореАрдпрддрд╛ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 # рдлрд▓реА рдкрд░ рдорджрдж рд▓реЗрдВ
 $ рд╕рд╛рдЧрд░ рд╕рдордЭрд╛ рдлрд▓реА
 рд╡рд░реНрдгрди:
 рдкреЙрдб рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬреЛ рдПрдХ рдореЗрдЬрдмрд╛рди рдкрд░ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред  рдпрд╣ рд╕рдВрд╕рд╛рдзрди рдХреНрд▓рд╛рдЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореЗрдЬрдмрд╛рдиреЛрдВ рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

 рдореИрджрд╛рди:
   рдореЗрдЯрд╛рдбреЗрдЯрд╛ <рдСрдмреНрдЬреЗрдХреНрдЯ>
     рдорд╛рдирдХ рд╡рд╕реНрддреБ рдХрд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ред  рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:
     http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

   рдХрд▓реНрдкрдирд╛ <рд╡рд╕реНрддреБ>
     рдлрд▓реА рдХреЗ рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ред  рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:
     http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status

   рд╕реНрдерд┐рддрд┐ <рд╡рд╕реНрддреБ>
     рд╕рдмрд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдлрд▓реА рдХреА рд╕реНрдерд┐рддрд┐ рджреЗрдЦреА рдЧрдИред  рдпрд╣ рдбреЗрдЯрд╛ рдЕрджреНрдпрддрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
     рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдЖрдмрд╛рджреАред  рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдПред  рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:
     http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status

   apiVersion <string>
     APIVersion рдПрдХ рдХреЗ рдЗрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдХреАрдорд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
     рд╡рд╕реНрддреБред  рд╕рд░реНрд╡рд░ рдХреЛ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╕реНрдХреАрдорд╛ рдХреЛ рдирд╡реАрдирддрдо рдЖрдВрддрд░рд┐рдХ рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП
     рдореВрд▓реНрдп, рдФрд░ рдЕрдкрд░рд┐рдЪрд┐рдд рдорд╛рдиреЛрдВ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред  рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:
     http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

   рджрдпрд╛рд▓реБ <string>
     Kind рдПрдХ REST рд╕рдВрд╕рд╛рдзрди рд╣реИ рдЬреЛ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ
     рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред  рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╕реЗ рд╕рд░реНрд╡рд░ рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ
     рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзред  рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред  CamelCase рдореЗрдВред  рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:
     http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

 # рдЖрддреНрдореАрдпрддрд╛ рдХреНрд╖реЗрддреНрд░ рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
 $ oc рд╡реНрдпрд╛рдЦреНрдпрд╛ pod.spec.affinity
 рдкрд░рд┐рдгрд╛рдо: рдЖрддреНрдореАрдпрддрд╛ <рд╡рд╕реНрддреБ>

 рд╡рд░реНрдгрди:
     рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдкреЙрдб рдХрд╛ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдмрд╛рдзрд╛ рд╣реИ

    рдЖрддреНрдореАрдпрддрд╛ рдЖрддреНрдореАрдпрддрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИред

 рдореИрджрд╛рди:
   рдиреЛрдбрдлрд┐рдирд┐рдЯреА <рдСрдмреНрдЬреЗрдХреНрдЯ>
     рдлрд▓реА рдХреЗ рд▓рд┐рдП рдиреЛрдб рдЖрддреНрдореАрдпрддрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдирд┐рдпрдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред

   рдкреЙрдбрдлрд┐рдирд┐рдЯреА <рдСрдмреНрдЬреЗрдХреНрдЯ>
     рдлрд▓реА рдЖрддреНрдореАрдпрддрд╛ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдЗрд╕ рдкреЙрдб рдореЗрдВ рд╕рд╣-рдкрддрд╛ рд▓рдЧрд╛рдПрдБ
     рд╕рдорд╛рди рдиреЛрдб, рдХреНрд╖реЗрддреНрд░, рдЖрджрд┐ред  рдХреБрдЫ рдЕрдиреНрдп рдлрд▓реА (рдУрдВ) рдХреЗ рд░реВрдк рдореЗрдВред

   podAntiAffinity <рдСрдмреНрдЬреЗрдХреНрдЯ>
     рдлрд▓реА рдПрдВрдЯреА-рдПрдлрд┐рдирд┐рдЯреА рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ рдЗрд╕ рдкреЙрдб рдХреЛ рд▓рдЧрд╛рдиреЗ рд╕реЗ рдмрдЪреЗрдВ
     рдПрдХ рд╣реА рдиреЛрдб, рдХреНрд╖реЗрддреНрд░, рдЖрджрд┐ рдореЗрдВред  рдХреБрдЫ рдЕрдиреНрдп рдлрд▓реА (рдУрдВ) рдХреЗ рд░реВрдк рдореЗрдВред

6. grep, awk, cut, рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдУред


рдорд╣рд╛рд╕рд╛рдЧрд░ рдХрдорд╛рдВрдб рдХреА рдПрдХ рдФрд░ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдкрдг рдлрд╝рдВрдХреНрд╢рди рд╣реИред -O json рдпрд╛ -o yaml рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ , рд▓реЗрдХрд┐рди -o рдзреНрд╡рдЬ рдореЗрдВ рдХрдИ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред

рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╢рд╛рдпрдж рдЬрд╛рдиреЗ-рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ jsonpath рд╣реИрдВ :

json|yaml|wide|name|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...

рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реА рд╕реЗрд╡рд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рд░реНрдЧ (docker рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдорд╛рд░реНрдЧ) рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╣реИ:

# , , my-docker-registry.example.com
$ oc get routes -o=go-template='{{range .items}}{{if eq .spec.host "my-docker-registry.example.com"}}{{.metadata.name}}{{end}}{{end}}'
docker-registry

рдпрд╛, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЛ рд░реВрдЯрд░ рдбреАрд╕реА рд░рд╛рдЙрдЯрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд░рдгрдиреАрддрд┐ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

#
$ oc get dc router -o=go-template='{{ .spec.strategy.type }}'
Rolling

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдорд╣рд╛рд╕рд╛рдЧрд░ рдПрдХ рдЕрджреНрднреБрдд рдЯреАрдо рд╣реИред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЦреЗрд▓рдиреЗ рд▓рд╛рдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдУрдкрдирд╢рд┐рдлреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

рдпрджрд┐ рдЖрдк OpenShift рдХреА рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рд╣рдорд╛рд░реЗ Red Hat рдбреЗрд╡рд▓рдкрд░ рдмреНрд▓реЙрдЧ рдХреЛ рджреЗрдЦреЗрдВ - рдпрд╣рд╛рдБ рдЖрдкрдХреЛ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рд╡рд┐рд╖рдп рдкрд░ рд╣рдорд╛рд░реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рди рдХреЗрд╡рд▓ рд▓реЗрдЦ рдорд┐рд▓реЗрдВрдЧреЗ, рдмрд▓реНрдХрд┐ рдореБрдХреНрдд рд╕рд╛рд╣рд┐рддреНрдп рдХрд╛ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдХреИрдЯрд▓реЙрдЧ рднреА рдорд┐рд▓реЗрдЧрд╛ред рдФрд░ рдЖрдк рд╣рдорд╛рд░реЗ рдкреЛрд╕реНрдЯ рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдЕрдкрдиреЗ рд▓реИрдкрдЯреЙрдк рдкрд░ рдорд┐рдирд┐рдлрд╝реНрдЯ рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВ рдФрд░ рдЬреАрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ ред

Source: https://habr.com/ru/post/hi418437/


All Articles