рдЕрдкрдбреЗрдЯреЗрдб 10/01/2020ред рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕рдордп рдмреАрдд рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ - рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдЬреЛрдбрд╝рд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛редрдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╣реЗрдЯрдЬрд╝реНрдирд░ рдХреНрд▓рд╛рдЙрдб рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдореЗрд░реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЙрдмрдВрдЯреВ рд▓рд┐рдирдХреНрд╕ 18.04 рд╕реНрдерд╛рдкрд┐рдд рд╣реИ рдФрд░ рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдВрдЧреЗред
рд╣реЗрддреНрдЬрд╝рдиреЗрд░ рдХреНрд▓рд╛рдЙрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
рд╣реЗрддреНрдЬрд╝рдиреЗрд░-рдХреНрдпреВрдм рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
$ wget https://github.com/xetys/hetzner-kube/releases/download/0.5.1/hetzner-kube-0.5.1-linux-amd64 $ chmod a+x ./hetzner-kube-0.5.1-linux-amd64 $ sudo mv ./hetzner-kube-0.5.1-linux-amd64 /usr/local/bin/hetzner-kube
рд╣реЗрдЯреНрдЬрд╝рдирд░-рдХреНрдпреВрдм рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╣реЗрдЯреНрдЬрд╝рдирд░ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╣реЗрдЯреНрдЬрд╝рдирд░ рдХреНрд▓рд╛рдЙрдб рдХрдВрд╕реЛрд▓
https://console.hetzner.cloud рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреЛрдХрди рдПрдкреАрдЖрдИ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╢реАрд░реНрд╖ рдкрд░, рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪреБрдиреЗрдВ -> рдбрд┐рдлрд╝реЙрд▓реНрдЯ, рдмрд╛рдПрдВ рдореЗрдиреВ рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдЖрдЗрдЯрдо рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдлрд┐рд░ рдПрдкреАрдЖрдИ рдЯреЛрдХрди рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ, рдЬрдирд░реЗрдЯ рдПрдкреАрдЖрдИ рдЯреЛрдХрди рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдирддреАрдЬрддрди, рдЯреЛрдХрди рдПрдкреАрдЖрдИ рдЙрддреНрдкрдиреНрди рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд╣реЗрддреНрдЬрд╝реНрдирд░-рдХреНрдпреВрдм рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
$ hetzner-kube context add k8s Token: <PASTE TOKEN HERE> added context 'k8s'
рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдПрдХ SSH рдХреБрдВрдЬреА рдЬрдирд░реЗрдЯ рдХрд░рдиреА рд╣реЛрдЧреА рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Hetzner Cloud рдореЗрдВ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ssh-keygen рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (~/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in ~/.ssh/id_rsa. Your public key has been saved in ~/.ssh/id_rsa.pub. The key fingerprint is: SHA256:1bwptZ8lPiAhtA37/2U1G7HsC+aE7qMVCtVIfN3OLzk lx4241@LX4241-LINUX The key's randomart image is: +---[RSA 2048]----+ | +. . . | | ..*o+ . . | | +o=.+ o. | | .+ o +.oo| | .S +.= .*+| | . .+o+E+*| | . o.+==o| | o.+..+.| | .oo.... | +----[SHA256]-----+
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдкрдХреЗ рдШрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рджреЛ рдлрд╛рдЗрд▓реЗрдВ ~ / .ssh / id_rsa (рдирд┐рдЬреА рдХреБрдВрдЬреА) рдФрд░ ~ / .sh / id_rsa.pub (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА) рдмрдирд╛рдИ рдЬрд╛рдПрдВрдЧреАред
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ ssh рдХреБрдВрдЬреА рдХреЛ Hetzner Cloud рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
$ hetzner-kube ssh-key add --name k8s sshKeyAdd called SSH key k8s(95430) created
рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рд╕реАрдзреЗ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ:
$ hetzner-kube cluster create --name k8s --ssh-key k8s --master-count 1 --worker-count 1 2018/08/02 13:57:57 Creating new cluster NAME:k8s MASTERS: 1 WORKERS: 1 ETCD NODES: 0 HA: false ISOLATED ETCD: false 2018/08/02 13:57:58 creating server 'k8s-master-01'... --- [======================================] 100% 2018/08/02 13:58:18 Created node 'k8s-master-01' with IP 159.69.54.228 2018/08/02 13:58:18 creating server 'k8s-worker-01'... --- [======================================] 100% 2018/08/02 13:58:37 Created node 'k8s-worker-01' with IP 159.69.51.140 2018/08/02 13:58:37 sleep for 10s... k8s-master-01 : complete! 100.0% [==============] k8s-worker-01 : complete! 100.0% [==============] 2018/08/02 14:02:50 Cluster successfully created!
рдпрд╣ рдХрдорд╛рдВрдб рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣реЗрдЯреНрдирд░ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рд╕рд░реНрд╡рд░ рдмрдирд╛рдПрдЧрд╛ рдФрд░ рдЙрди рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдорд╛рд╕реНрдЯрд░ / рд╡рд░реНрдХрд░ рдиреЛрдбреНрд╕ рдХреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, CX11 рд╡рд░реНрдЪреБрдЕрд▓ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдмрд╛рдж рдореЗрдВ, рд╣реЗрддреНрдЬрд╝реНрдирд░-рдХреНрдпреВрдм рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбреНрд╕ рдЬреЛрдбрд╝рдХрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдмрджрд▓рдирд╛ рднреА рдЖрд╕рд╛рди рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 2 рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбреНрд╕ рдЬреЛрдбрд╝реЗрдВ:
$ hetzner-kube cluster add-worker --name k8s --nodes 2
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдирд╛рдП рдмрд┐рдирд╛ рд╣реЗрддрдЬрд╝реНрдирд░-рдХреНрдпреВрдм рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдмрджрд▓рдирд╛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП kubectl рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢
рдирд┐рдореНрди рд▓рд┐рдВрдХ рдкрд░ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдХреБрдмреНрд▓реЗрдЯ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рд╣реЛрдЧрд╛:
$ hetzner-kube cluster kubeconfig k8s create file kubeconfig configured
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ ~ / .kube / config рдореЗрдВ рд╕рд╣реЗрдЬреА рдЬрд╛рддреА рд╣реИред
рдЕрдм рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рднрд╛рдЧ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ - рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рднрд╡рд┐рд╖реНрдп рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдмреБрдирд┐рдпрд╛рджреА рд╕рдВрд╕рд╛рдзрди рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдЖрдк
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
$ curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.26.2/deploy/static/mandatory.yaml | kubectl apply -f - % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 6170 100 6170 0 0 13987 0 --:--:-- --:--:-- --:--:-- 14022 namespace/ingress-nginx created configmap/nginx-configuration created configmap/tcp-services created configmap/udp-services created serviceaccount/nginx-ingress-serviceaccount created clusterrole.rbac.authorization.k8s.io/nginx-ingress-clusterrole created role.rbac.authorization.k8s.io/nginx-ingress-role created rolebinding.rbac.authorization.k8s.io/nginx-ingress-role-nisa-binding created clusterrolebinding.rbac.authorization.k8s.io/nginx-ingress-clusterrole-nisa-binding created deployment.apps/nginx-ingress-controller created limitrange/ingress-nginx created $ curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.26.2/deploy/static/provider/baremetal/service-nodeport.yaml | kubectl apply -f - service/ingress-nginx created
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рдХ рд╕реБрд▓рдн рд╣реЛред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд░реНрд╡рд┐рд╕ / рдЗрдирдЧреНрд░реЗрд╕-рдиреЗрдЧреНрдиреЗрдХреНрд╕ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдмреНрд▓реЗрдЯ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ / рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдИрдкреА рдкрддреЗ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ (рдХреЗрд╡рд▓ рдЙрди рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред
$ kubectl -n ingress-nginx edit service/ingress-nginx
рдФрд░ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдХреЛ YAML рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
spec: externalIPs: - XXXX - YYYY
рдЕрдкрдиреЗ рдбреЛрдореЗрди рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝реЗрдВ рдФрд░ CSN рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
Type: A Name: echo.example.com Value: XXXX
рдпрджрд┐ рдЖрдкрдиреЗ ingress-nginx.yaml рдореЗрдВ рдХрдИ рдмрд╛рд╣рд░реА IP рдкрддреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рд╣реИрдВ, рддреЛ рдЖрдк рдЗрди IP рдкрддреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рд╕рдорд╛рди DNS рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдкрдХреЗ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЗрди рдЖрдИрдкреА рдкрддреЛрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, https рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗред
$ openssl req -newkey rsa:2048 -nodes -keyout echo.example.com.key -x509 -days 365 -out echo.example.com.crt Generating a 2048 bit RSA private key ..+++ .............+++ writing new private key to 'echo.example.com.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:UA State or Province Name (full name) [Some-State]:Kyiv Locality Name (eg, city) []:Kyiv Organization Name (eg, company) [Internet Widgits Pty Ltd]:Super Company Ltd Organizational Unit Name (eg, section) []:echo.example.com Common Name (eg server FQDN or YOUR name) []:echo.example.com Email Address []:info@echo.example.com $ cat echo.example.com.key | base64 | tr -d '\n' <YOUR PRIVATE KEY> $ cat echo.example.com.crt | base64 | tr -d '\n' <YOUR CERTIFICATE>
рдЕрдм рд╣рдо рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЗрдХреЛрд╕реЗрд╡рд░ рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде app.yaml рдирд╛рдордХ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
apiVersion: v1 kind: Namespace metadata: name: echoserver --- apiVersion: v1 kind: Secret metadata: name: echo.example.com-tls namespace: echoserver type: kubernetes.io/tls data: tls.crt: <YOUR CERTIFICATE> tls.key: <YOUR PRIVATE KEY> --- apiVersion: apps/v1 kind: Deployment metadata: name: echoserver namespace: echoserver spec: replicas: 1 selector: matchLabels: app: echoserver template: metadata: labels: app: echoserver spec: containers: - image: gcr.io/google_containers/echoserver:1.0 imagePullPolicy: Always name: echoserver ports: - containerPort: 8080 --- apiVersion: v1 kind: Service metadata: name: echoserver namespace: echoserver spec: ports: - name: http port: 80 targetPort: 8080 protocol: TCP selector: app: echoserver --- apiVersion: extensions/v1beta1 kind: Ingress metadata: name: echoserver namespace: echoserver annotations: kubernetes.io/ingress.class: "nginx" spec: tls: - hosts: - echo.example.com secretName: echo.example.com-tls rules: - host: echo.example.com http: paths: - path: / backend: serviceName: echoserver servicePort: 80
$ kubectl apply -f app.yaml namespace "echoserver" configured deployment "echoserver" unchanged service "echoserver" configured ingress "echoserver" unchanged
рд╡рд╣ рд╕рдм)) рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
$ curl https://echo.example.com/ CLIENT VALUES: client_address=('10.244.3.2', 32860) (10.244.3.2) command=GET path=/ real path=/ query= request_version=HTTP/1.1 SERVER VALUES: server_version=BaseHTTP/0.6 sys_version=Python/3.5.0 protocol_version=HTTP/1.0 HEADERS RECEIVED: Accept=*/* Connection=close Host=echo.example.com User-Agent=curl/7.58.0 X-Forwarded-For=10.244.0.0 X-Forwarded-Host=echo.example.com X-Forwarded-Port=80 X-Forwarded-Proto=http X-Original-URI=/ X-Real-IP=10.244.0.0 X-Request-ID=7a4f4aabf9a0043ea2b1ca91bd1a3adf X-Scheme=http