kubeadm рд╕рдВрд╕реНрдХрд░рдг : 1.10.2
рдкрд░реНрдпрд╛рд╡рд░рдг :
рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ 'рдСрдлрд┐рд╢рд┐рдпрд▓' рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди https://kubernetes.io/docs/setup/independent/high-avolution/ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реБрдП kubeadm 1.9.3
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.9.3 рд╣рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдпрд╛ред etcd
HA рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдереИрддрд┐рдХ рдкреЙрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдкрд░ рдЗрд╕рдХреА рдореЗрдЬрдмрд╛рдиреА рдХрд░рддрд╛ рд╣реИ
рдореИрдВ рдЕрдкрдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдирд╡реАрдирддрдо kubeadm
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ k8s 1.10.2
рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛; kubeadm
рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЬрдм kubeadm upgrade plan
рдЪрд▓ рд░рд╣рд╛ рд╣реЛ, рддреЛ рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА:
[root@shared-cob-01 tmp]# kubeadm upgrade plan
[preflight] Running pre-flight checks.
[upgrade] Making sure the cluster is healthy:
[upgrade/config] Making sure the configuration is correct:
[upgrade/config] Reading configuration from the cluster...
[upgrade/config] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
[upgrade/plan] computing upgrade possibilities
[upgrade] Fetching available versions to upgrade to
[upgrade/versions] Cluster version: v1.9.3
[upgrade/versions] kubeadm version: v1.10.2
[upgrade/versions] Latest stable version: v1.10.2
[upgrade/versions] FATAL: context deadline exceeded
рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХреА рдФрд░ 2 рдореВрд▓ рдХрд╛рд░рдгреЛрдВ рдХреЛ рдкрд╛рдпрд╛:
kubeadm
etcd
рдХреНрд▓рд╕реНрдЯрд░ рдХреА рдкрд╣рдЪрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЯреАрдПрд▓рдПрд╕ рд╕рдХреНрд╖рдо рд╣реИрдЧрд╛рдЗрдб etcd
рд╕реНрдерд┐рд░ рдкреЙрдб рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИ
- etcd --name <name> \
- --data-dir /var/lib/etcd \
- --listen-client-urls http://localhost:2379 \
- --advertise-client-urls http://localhost:2379 \
- --listen-peer-urls http://localhost:2380 \
- --initial-advertise-peer-urls http://localhost:2380 \
- --cert-file=/certs/server.pem \
- --key-file=/certs/server-key.pem \
- --client-cert-auth \
- --trusted-ca-file=/certs/ca.pem \
- --peer-cert-file=/certs/peer.pem \
- --peer-key-file=/certs/peer-key.pem \
- --peer-client-cert-auth \
- --peer-trusted-ca-file=/certs/ca.pem \
- --initial-cluster etcd0=https://<etcd0-ip-address>:2380,etcd1=https://<etcd1-ip-address>:2380,etcd2=https://<etcd2-ip-address>:2380 \
- --initial-cluster-token my-etcd-token \
- --initial-cluster-state new
kubeadm >= 1.10
рдЪреЗрдХ (рдпрд╣рд╛рдБ: https://github.com/kubernetes/kubernetes/blob/release-1.10/cmd/kubeadm/app/util/etcd/etcd/go#L56) рдпрджрд┐ etcd
рд╕реНрдереИрддрд┐рдХ рдкреЙрдб рдХрдорд╛рдВрдб рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЭрдВрдбреЗ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдХреЗ
"--cert-file=",
"--key-file=",
"--trusted-ca-file=",
"--client-cert-auth=",
"--peer-cert-file=",
"--peer-key-file=",
"--peer-trusted-ca-file=",
"--peer-client-cert-auth=",
рд▓реЗрдХрд┐рди рдЭрдВрдбреЗ рдХреЗ рд░реВрдк рдореЗрдВ --client-cert-auth
рдФрд░ --peer-client-cert-auth
рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреИрд░рд╛рдореАрдЯрд░ (рдмреБрд▓рд┐рдпрди рдХреЗ) рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, kubeadm
etcd
рдкрд╣рдЪрд╛рди рдирд╣реАрдВ рд╣реБрдИред рд╕рдХреНрд╖рдо рд╣реИред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рдлрд╝рд┐рдХреНрд╕:
рдореИрдВрдиреЗ - --client-cert-auth=true
рдФрд░ - --peer-client-cert-auth=true
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ etcd
рд╕реНрдЯреИрдЯрд┐рдХ рдкреЙрдб рдХрдорд╛рдВрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛
рд╕рд╛рдорд╛рдиреНрдп рдлрд┐рдХреНрд╕:
--client-cert-auth=true
рдФрд░ --peer-client-cert-auth=true
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдФрд░ "--peer-cert-file"
рдФрд░ "--peer-key-file"
(
kubeadm
рдиреЗ рд╕рд╣реА рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛рдмрд┐рдВрджреБ 1 рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдмрдиреА рд╣реБрдИ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ kubeadm
рд╕рд╣реА рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдХреБрдмреЗрджрдо рд╣рд╛ рдЧрд╛рдЗрдб рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдХреЗ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдирд┐рд░реНрдорд┐рдд рдкреНрд░рдорд╛рдг рдкрддреНрд░ ca.pem
ca-key.pem
peer.pem
peer-key.pem
client.pem
client-key.pem
рд▓реЗрдХрд┐рди рдирд╡реАрдирддрдо kubeadm
ca.crt
ca.key``peer.crt
peer.key``healthcheck-client.crt
healthcheck-client.key
рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред
Yhe kubeadm-config
MasterConfiguration рдХреБрдВрдЬрд┐рдпрд╛рдБ etcd.caFile
, etcd.certFile
рдФрд░ etcd.keyFile
рдЕрдирджреЗрдЦрд╛ рдХреА рдЬрд╛рддреА рд╣реИрдВред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рдлрд╝рд┐рдХреНрд╕:
.pem
рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рдЙрдирдХреЗ .crt
рдФрд░ .key
рд╕рдордХрдХреНрд╖ рдХрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдФрд░ etcd
рд╕реНрдерд┐рд░ рдкреЙрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ред
рд╕рд╛рдорд╛рдиреНрдп рдлрд┐рдХреНрд╕:
kubeadm-config
data.caFile
, data.certFile
рдФрд░ data.keyFile
рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЖрджрд┐ рд╕рд░реНрдХрд┐рд▓ рдкреЙрдб рдбреЗрдлрд┐рдирд┐рд╢рди (рдкреЙрдб рдкрд╛рде + рд╡реЙрд▓реНрдпреВрдо hostPath) рд╕реЗ рд╕рд╣реА рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ / рдпрд╛ рдмрдирд╛рдПрдВ рдирд╡реАрдиреАрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЕрд╕реНрдерд╛рдпреА рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ред
рдЙрдиреНрдирдпрди рдпреЛрдЬрдирд╛ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛
рдПрдХ k8s рд╣реЗрдХреНрдЯреЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ kubeadm 1.9.3
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд https://kubernetes.io/docs/setup/independent/high-availability/ рдФрд░ рдЙрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ k8s >= 1.10
рдирд╡реАрдирддрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ kubeadm
рдпрд╣ рдореБрджреНрджрд╛ kubeadm 1.10.3
рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдереИрддрд┐рдХ etcd
рдлрд▓реА рдХреЛ рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕реЗ 'рдмрд╛рд╣рд░реА' рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ
рдореИрдВ kubeadm 1.10.3
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕рдорд╛рди рдореБрджреНрджреЗ рд╣реИрдВред рдореЗрд░рд╛ рдХреНрд▓рд╕реНрдЯрд░ 1.10.2 рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдмрд╛рд╣рд░реА рд╕реБрд░рдХреНрд╖рд┐рдд рд╡реЙрд░реНрдб рд╣реИ
@brokenmass рдЖрдкрдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛
caFile: /etc/kubernetes/pki/etcd/ca.crt
certFile: /etc/kubernetes/pki/etcd/healthcheck-client.crt
keyFile: /etc/kubernetes/pki/etcd/healthcheck-client.key
@detiber рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
@FloMedja
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдорд╛рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:
caFile: /etc/kubernetes/pki/etcd/ca.pem
certFile: /etc/kubernetes/pki/etcd/client.pem
keyFile: /etc/kubernetes/pki/etcd/client-key.pem
рдФрд░ 1.10.3 рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ
@brokenmass рддреЛ kubeadm 1.10.3 рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ kubeadm 1.10.3 рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╣реА рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдЖрдк рдЗрд╕ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдореЗрд░рд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд╣реАрдВ рдФрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдореИрдВ рдХреБрдЫ рдЧрд▓рддрд┐рдпрд╛рдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рдпрд╣рд╛рдБ рдЬреЛрдбрд╝реЗрдВ (рдпрд╛ kubernetes рд╕реБрд╕реНрдд рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ рдФрд░ рдореБрдЭреЗ рдПрдХ рд╕реАрдзрд╛ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВ) рдЕрдкрдиреЗ kubeadm-config, etcd static pods yml рдФрд░ kubeadm upgrade plan
рдХрд╛ рдкреВрд░реНрдг рдЖрдЙрдЯрдкреБрдЯ
рдореЗрд░реА рдХреНрд╖рдорд╛рдпрд╛рдЪрдирд╛, рдореИрдВ рдЕрднреА рдпрд╣ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред @chuckha рдиреЗ рд╕реНрдереИрддрд┐рдХ-рдкреЙрдб рдПрдЪрдП рдПрдЪрдУрдбреА рдбреЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдХрд╛рдо рдХрд┐рдпрд╛, рдореИрдВ рдЕрдЧрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдПрдЪрдП рдЕрдкрдЧреНрд░реЗрдб рдХреЛ рд╕реАрдзрд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
@detiber рдЖрдкрдХрд╛ рдзрдиреНрдпрд╡рд╛рджред рдЙрдиреНрдирдпрди рдпреЛрдЬрдирд╛ рдЕрдВрдд рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдХреБрдЫ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реВрдВред рдХрднреА рдХрднреА рдпрд╣ рдХрд╛рдо рдХрднреА рдХрднреА рдореИрдВ kubernetes / kubeadm / рдореБрджреНрджреЛрдВ / 850 рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рд╣реИред рдЬрдм рдПрдХ рдиреЛрдб рдкрд░ рдПрдХ рдкреЙрдб рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рддреЛ kubeadm рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред
рдореИрдВ рдЖрдЬ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдПрдирд╡реА рд╕реЗрдЯрдЕрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рд╕реНрдиреИрдЧ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдФрд░ рдореИрдВ рдЕрдкрдирд╛ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдордп рд╕реЗ рдмрд╛рд╣рд░ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЕрдЧрд▓реЗ рд╣рдлреНрддреЗ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд▓реЗ рд▓реВрдВрдЧрд╛ред
/ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ @chuckha @detiber
@chuckha @detiber @stealthybox рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?
рддреЛ 1.9-> 1.10 рдПрдЪрдП рдЕрдкрдЧреНрд░реЗрдб рдПрдХ рд╕рдорд░реНрдерд┐рдд рдпрд╛ рд╡реАрдЯреНрдб рдкрде рдирд╣реАрдВ рдерд╛ред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо 1.11-> 1.12 рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдбреЙрдХреНрд╕ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдЖрдЧреЗ рдХреА рдУрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред