Rancher: Kubernetes 5 рдорд┐рдирдЯ рдореЗрдВ рдирдВрдЧреЗ рдзрд╛рддреБ рдкрд░

рдХреНрд░реЙрд╕рд┐рдВрдЧ рдкрд░, рдСрд░реНрдХреЗрд╕реНрдЯреНрд░рд╛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рдЗрд╕рдХреА рдЫрджреНрдо-рд╕рд░рд▓рддрд╛ рдФрд░ рдирд┐рд░рдВрддрд░ рдкрд░рд┐рд╖реНрдХрд░рдг рдХреЗ рдХрд╛рд░рдг рдореИрдВ рдбреЛрдХрд░ рдЭреБрдВрдб рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдердХ рдЧрдпрд╛ рдерд╛, рд╡рд┐рддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рдо рдирд╣реАрдВ, рдереЛрдбрд╝рд╛ рдирдо рд╡реЗрдм-рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рд╕рдВрдХреАрд░реНрдг рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛, рд╕рд╛рде рд╣реА рд╕рдорд░реНрдерди рдХреА рдХрдореА "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" - рдЧреАрддрд╛рд▓реИрдм рдПрдХреАрдХрд░рдг, рдпрд╣ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдЕрдкрдиреЗ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░, рдЕрд░реНрдерд╛рддреН, Rancher рдкреНрд░рдмрдВрдзрди рд╕рд░реНрд╡рд░ 2.0 рдХреЛ рддреИрдирд╛рдд рдХрд░рдХреЗред

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

рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛:

рд╣реЛрд╕реНрдЯ рд╕рд░реНрд╡рд░ рдПрдЪрдкреА рдкреНрд░реЛрд▓рд┐рдПрдВрдЯ DL320e Gen8 - 2 рдкреАрд╕реАред
рд╡реАрдПрдо рдЙрдмрдВрдЯреВ рд╕рд░реНрд╡рд░ 16.04, 2 рдЬреАрдмреА рд░реИрдо, 2vCPU, 20Gb HDD - 1 рдкреАрд╕реАред рдкреНрд░рддреНрдпреЗрдХ рд╣реЛрд╕реНрдЯ (VM-haProxy) рдкрд░ред
рд╡реАрдПрдо рдЙрдмрдВрдЯреВ рд╕рд░реНрд╡рд░ 16.04, 4 рдЬреАрдмреА рд░реИрдо, 4 рд╡реАрд╕реАрдкреАрдпреВ, 40 рдЬреАрдмреА рдПрдЪрдбреАрдбреА, 20 рдЬреАрдмреА рдПрд╕рдПрд╕рдбреА - 3 рдкреАрд╕реАред рдкреНрд░рддреНрдпреЗрдХ рд╣реЛрд╕реНрдЯ рдкрд░ (VM - * - рдХреНрд▓рд╕реНрдЯрд░)ред
рд╡реАрдПрдо рдЙрдмрдВрдЯреВ рд╕рд░реНрд╡рд░ 16.04, 4 рдЬреАрдмреА рд░реИрдо, 4 рд╡реАрд╕реАрдкреАрдпреВ, 100 рдЬреАрдмреА рдПрдЪрдбреАрдбреА - 1 рдкреАрд╕реАред рдХрд┐рд╕реА рдкрд░ рд╣реЛрд╕реНрдЯ (VM-NFS)ред

рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реЗрдЦ:

рдЪрд┐рддреНрд░ 1


рдЖрд░рдВрдн рдХрд░рдирд╛:

VM-haProxy рдореЗрдВ haProxy, fail2ban, iptables рдирд┐рдпрдо рд╣реИрдВред рдЗрд╕рдХреЗ рдкреАрдЫреЗ рд╕рднреА рдорд╢реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдЧреЗрдЯрд╡реЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдореЗрдЬрдмрд╛рди рдкрд░ рдЧреЗрдЯрд╡реЗ рд╕рдВрдЪрд╛рд░ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рднреА рдорд╢реАрдиреЗрдВ рджреВрд╕рд░реЗ рдкрд░ рд╕реНрд╡рд┐рдЪ рд╣реЛ рдЬрд╛рдПрдВрдЧреАред

рдЗрди рдиреЛрдбреНрд╕ (VM-haProxy) рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдмреИрдХрдПрдВрдб, рдмреИрд▓реЗрдВрд╕, рдлреЙрд░рд╡рд░реНрдб рдкреЛрд░реНрдЯреНрд╕ рдФрд░ рдПрдХреНрд╕реЗрд╕ рдХрд▓реЗрдХреНрдЯрд░реНрд╕ рддрдХ рдкрд╣реБрдБрдЪ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рд╣реИред

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

рд╣реИрдкреНрд░реЙрдХреНрд╕реА рд╡рд┐рдиреНрдпрд╛рд╕:

рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде haproxy.conf
########################################################## #Global # ########################################################## global log 127.0.0.1 local0 notice maxconn 2000 user haproxy group haproxy tune.ssl.default-dh-param 2048 defaults log global mode http option httplog option dontlognull retries 3 option redispatch timeout connect 5000 timeout client 10000 timeout server 10000 option forwardfor option http-server-close ########################################################## #TCP # ########################################################## #    API  Kubernetes listen kube-api-tls bind *:6443 mode tcp option tcplog server VM-Master-Cluster Master:6443 ########################################################## #HTTP/HTTPS - Frontend and backend # ########################################################## #      "  ", frontend  backend. frontend http-in bind *:80 acl network_allowed src -f /path/allowed-ip #     IP.     . http-request deny if !network_allowed #       IP  . reqadd X-Forwarded-Proto:\ http mode http option httpclose acl is_haproxy hdr_end(host) -i haproxy.domain.ru acl is_rancher hdr_end(host) -i rancher.domain.ru acl is_kubernetes hdr_end(host) -i kubernetes.domain.ru use_backend kubernetes if is_kubernetes use_backend rancher if is_rancher use_backend haproxy if is_haproxy frontend https-in bind *:443 ssl crt-list /path/crt-list #    .        . acl network_allowed src -f /path/allowed-ip http-request deny if !network_allowed reqadd X-Forwarded-Proto:\ https acl is_rancher hdr_end(host) -i rancher.etraction.ru acl is_kubernetes hdr_end(host) -i kubernetes.etraction.ru use_backend kubernetes if is_kubernetes { ssl_fc_sni kubernetes.domain.ru } use_backend rancher if is_rancher { ssl_fc_sni rancher.domain.ru } # Backend  haProxy.    . backend haproxy stats enable stats uri /haproxy?stats stats realm Strictly\ Private stats auth login:passwd cookie SERVERID insert nocache indirect #  , , backend   dashboard rancher  kubernetes. backend rancher acl network_allowed src -f /path/allowed-ip http-request deny if !network_allowed mode http redirect scheme https if !{ ssl_fc } server master master:443 check ssl verify none backend kubernetes acl network_allowed src -f /path/allowed-ip http-request deny if !network_allowed mode http balance leastconn redirect scheme https if !{ ssl_fc } server master master:9090 check ssl verify none 


рдорд╣рддреНрд╡рдкреВрд░реНрдг: рд╕рднреА рдорд╢реАрдиреЛрдВ рдХреЛ рд╣реЛрд╕реНрдЯ рдирд╛рдо рд╕реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ "рдЬрд╛рдирдирд╛" рдЪрд╛рд╣рд┐рдПред

add-host-entry.pp рдХрдардкреБрддрд▓реА рдореЗрдВ / etc / рдореЗрдЬрдмрд╛рди рдореЗрдВ hostnames рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ
 class host_entries { host { 'proxy01': ip => '10.10.10.11', } host { 'proxy02': ip => '10.10.10.12', } host { 'master': ip => '10.10.10.100', } host { 'node01': ip => '10.10.10.101', } host { 'node02': ip => '10.10.10.102', } host { 'node03': ip => '10.10.10.103', } host { 'node04': ip => '10.10.10.104', } host { 'node05': ip => '10.10.10.105', } host { 'nfs': ip => '10.10.10.200', } } 


рд╡реАрдПрдо-рдорд╛рд╕реНрдЯрд░-рдХреНрд▓рд╕реНрдЯрд░ рдореБрдЦреНрдп рдирд┐рдпрдВрддреНрд░рдг рдорд╢реАрди рд╣реИред рдпрд╣ рдХрдардкреБрддрд▓реА рдорд╛рд╕реНрдЯрд░, GlusterFS рд╕рд░реНрд╡рд░, Rancher рд╕рд░реНрд╡рд░ (рдХрдВрдЯреЗрдирд░), etcd (рдХрдВрдЯреЗрдирд░), рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдмрдВрдзрдХ (рдХрдВрдЯреЗрдирд░) рджреНрд╡рд╛рд░рд╛ рдмреЛрд░реНрдб рдкрд░ рдЕрдиреНрдп рдиреЛрдбреНрд╕ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдореЗрдЬрдмрд╛рди рдХреЗ рд╡рд┐рдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрддреНрдкрд╛рджрди рд╕реЗрд╡рд╛рдПрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреА рд╣реИрдВред
рд╡реАрдПрдо-рдиреЛрдб-рдХреНрд▓рд╕реНрдЯрд░ - рдиреЛрдбреНрд╕, рд╡рд░реНрдХрд░реНрд╕ред рдХрд╛рд░реНрдп рдорд╢реАрдиреЗрдВ рдЬрд┐рдирдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдПрдХ рдЧрд▓рддреА-рд╕рд╣рд┐рд╖реНрдгреБ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред

рд╡реАрдПрдо-рдПрдирдПрдлрдПрд╕ - рдПрдирдПрдлрдПрд╕ рд╕рд░реНрд╡рд░ (рдПрдирдПрдлрдПрд╕-рдХрд░реНрдиреЗрд▓-рд╕рд░реНрд╡рд░)ред рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдмрдлрд░ рд╕реНрдкреЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИред рд╕реНрдЯреЛрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рд╕рднреАред рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреБрдЫ рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреЙрдлрд╝реА рдкреАрдиреЗ рдХреЗ рджреМрд░рд╛рди рдЗрд╕рдХреЗ рдЧрд┐рд░рдиреЗ рдХреЛ рдзреАрд░реЗ-рдзреАрд░реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдорд╣рддреНрд╡рдкреВрд░реНрдг: рд╕рднреА рдкрд░реНрдпрд╛рд╡рд░рдг рдорд╢реАрдиреЛрдВ рдореЗрдВ рдмреЛрд░реНрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: docker.io, nfs-common, gluster-serverред

рд╕рд╣реА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдардкреБрддрд▓реА рдкреНрд░рдХрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
 class musthave { package { 'docker.io': ensure => 'installed', } package { 'nfs-common': ensure => 'installed', } package { 'gluster-server': ensure => 'installed', } } 


рдореИрдВ nfs-volume рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ GlusterFS рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрджрд╛рд░рддрд╛рдкреВрд░реНрд╡рдХ рд╡рд░реНрдгрд┐рдд рд╣реИред

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

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

Rancher рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдорд╢реАрди рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 4CPU, 4Gb RAM, 10Gb HDD рд╣реИред

5 рдорд┐рдирдЯ рд░рдгрдЪрд░ рдХреЛред

рд╡реАрдПрдо-рдорд╛рд╕реНрдЯрд░-рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рд╣рдо рдХрд░рддреЗ рд╣реИрдВ:

 sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher 

рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

 curl -k https://localhost 

рдпрджрд┐ рдЖрдкрдиреЗ рдПрдкреАрдЖрдИ рдХреЛ рджреЗрдЦрд╛ рд╣реИ - рдореИрдВ рдЖрдкрдХреЛ рдмрдзрд╛рдИ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдзрд╛ рд░рд╛рд╕реНрддрд╛ рдмреАрдд рдЪреБрдХрд╛ рд╣реИред

рдлрд┐рд░ рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реЗрдЦ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдмрд╛рд╣рд░ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рд╣реИрд░реЛрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╣рдордиреЗ рд▓рд┐рдВрдХ rancher.domain.ru рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЖрдЧреЗ рдмрдврд╝реЗрдВ , рдЕрдкрдирд╛ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░реЗрдВред

рдЕрдЧрд▓рд╛ рдкреГрд╖реНрда рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреНрд░рд┐рдПрд╢рди рдкреЗрдЬ рд╣реИред

Fig.2


рдХреНрд▓рд╕реНрдЯрд░ рд╡рд┐рдХрд▓реНрдк рдореЗрдиреВ рд╕реЗ, рдлрд╝реНрд▓реЗрдиреЗрд▓ рдЪреБрдиреЗрдВред рдореИрдВрдиреЗ рдЕрдиреНрдп рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореИрдВ рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛

рдпрд╣ рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдерд╛ etcd рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдорд╛рди, рдЪреЗрдХрдмреЙрдХреНрд╕ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рдпрджрд┐ рдЖрдк рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдореЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВред
рд╣рдо рдПрдирдЖрдИрд╕реА рдкрд░ рдПрдХ рд╣реА рдкрддреЗ рдХреЗ рд╕рд╛рде, рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдЕрдВрджрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдФрд░ рдЖрдВрддрд░рд┐рдХ рдкрддреЗ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕рдорд╛рди рдЖрдИрдкреА рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ред

рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб рдХреЛ рдКрдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ, рдЗрд╕реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЪрд▓рд╛рдПрдВред

рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЖрдкрдХреЛ рдПрдХ рдиреЛрдб рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдФрд░ рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рдЖрдк рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред

3 рдЪрд┐рддреНрд░


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

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

рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рдмрд╛рдж, рдиреЛрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рддрд░рд╣, рдХреНрд▓рд╕реНрдЯрд░ рдкрд╛рд╡рд░ рдмрдврд╝ рдЬрд╛рдПрдЧреАред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдбреИрд╢рдмреЛрд░реНрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ / рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдиреВ рдкрд░ рдЬрд╛рдПрдВред

рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╛рдорд╕реНрдерд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рд╣рд░ рдирд┐рд╣рд┐рдд рд╣реЛрдВрдЧреЗред рдЗрди рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдЪрд┐рддреНрд░ 4


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

рдЪрд┐рддреНрд░рд╛ 5


рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ "рдЖрдпрд╛рдд YAML" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЦреБрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдВрдбреЛ рдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдореЗрдВ рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЗ рдХрдВрдЯреЗрдВрдЯ рдХреЛ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ, рдирд╛рдо рд╕реНрдерд╛рди "рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо" рдЪреБрдиреЗрдВ, "рдЖрдпрд╛рдд" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рдкреЙрдб рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕-рдбреИрд╢рдмреЛрд░реНрдб рд╢реБрд░реВ рд╣реЛрдЧрд╛ред

рдкреЙрдб рд╕рдВрдкрд╛рджрди рдкрд░ рдЬрд╛рдПрдВ, рдкреЛрд░реНрдЯ рдкреНрд░рдХрд╛рд╢рди рдореЗрдиреВ рдЦреЛрд▓реЗрдВ, рдирд┐рдореНрди рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ:

рдЪрд┐рддреНрд░рд╛ 6


рдЙрд╕ рдиреЛрдб рдкрд░ рдкрд╣реБрдВрдЪ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдЬрд┐рд╕ рдкрд░ рдлрд▓реА рдЪрд▓ рд░рд╣реА рд╣реИред

 curl -k https://master:9090 

рдЙрддреНрддрд░ рджреЗрдЦреЗрдВ? рдкреНрд░рдХрд╛рд╢рди рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рднрд╛рдЧ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред

Rancher рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░, рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реИрдВ, рдЬреИрд╕реЗ kubectl - рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рдмрдВрдзрди рдХрдВрд╕реЛрд▓ рдФрд░ Kubeconfig рдлрд╝рд╛рдЗрд▓ - API рдкрддрд╛, рдЬрд┐рд╕рдореЗрдВ API рдкрддрд╛, ca.crt, рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рд╣рдо kubectl рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ:

 kubectl create serviceaccount cluster-admin-dashboard-sa kubectl create clusterrolebinding cluster-admin-dashboard-sa --clusterrole=cluster-admin --serviceaccount=default:cluster-admin-dashboard-sa 

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

рдмрдирд╛рдП рдЧрдП рдЦрд╛рддреЗ рдХрд╛ рд░рд╣рд╕реНрдп рдЬрд╛рдиреЗрдВ:

 kubectl get secret | grep cluster-admin-dashboard-sa 

рд╣рдо рдЕрдВрдд рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдЦрд╛рддреЗ рдХрд╛ рдирд╛рдо рджреЗрдЦреЗрдВрдЧреЗ, рдЗрд╕реЗ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

 kubectl describe secret cluster-admin-dashboard-sa-$( ) 

рдлрд┐рд░, рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣реИрдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рдо рд▓рд┐рдВрдХ kubernetes.domain.ru рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рд╛рдкреНрдд рдЯреЛрдХрди рджрд░реНрдЬ рдХрд░реЗрдВред

рд░рд╛рдбреВ:

рдЪрд┐рддреНрд░ 7


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

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


All Articles