Kubernetes 1.16 - ինչպես թարմացնել առանց որևէ բան կոտրելու

Kubernetes 1.16 - ինչպես թարմացնել առանց որևէ բան կոտրելու

Այսօր՝ սեպտեմբերի 18-ին, թողարկվում է Kubernetes-ի հաջորդ տարբերակը՝ 1.16։ Ինչպես միշտ, մեզ սպասում են բազմաթիվ բարելավումներ և նոր ապրանքներ: Բայց ես կցանկանայի ձեր ուշադրությունը հրավիրել ֆայլի «Պահանջվող գործողություն» բաժինների վրա CHANGELOG-1.16.մդ. Այս բաժինները հրապարակում են փոփոխություններ, որոնք կարող են կոտրել ձեր հավելվածը, կլաստերի սպասարկման գործիքները կամ փոփոխություններ պահանջել կազմաձևման ֆայլերում:

Ընդհանրապես ձեռքի միջամտություն են պահանջում...

Եկեք անմիջապես սկսենք փոփոխությունից, որը, ամենայն հավանականությամբ, կազդի բոլորի վրա, ովքեր բավական երկար են աշխատել kubernetes-ի հետ: Kubernetes API-ն այլևս չի աջակցում ժառանգական ռեսուրսների API-ի տարբերակները:

Եթե ​​որևէ մեկը չգիտեր կամ մոռացել է...Ռեսուրսի API տարբերակը նշված է մանիֆեստում, դաշտում apiVersion: apps/v1

Այսինքն

Ռեսուրսի տեսակը
հին տարբերակ
Ինչո՞վ փոխարինեմ:

Բոլոր ռեսուրսները
հավելվածներ/v1beta1
հավելվածներ/v1beta2
հավելվածներ/v1

տեղակայությունները
daemonset
replicaset
ընդլայնում/v1beta1
հավելվածներ/v1

ցանցային քաղաքականություններ
ընդարձակումներ/v1beta1
networking.k8s.io/v1

pod անվտանգության քաղաքականություններ
ընդարձակումներ/v1beta1
քաղաքականություն/v1beta1

Կցանկանայի նաև ձեր ուշադրությունը հրավիրել այն փաստի վրա, որ տիպի օբյեկտները Ingress նույնպես փոխվել է apiVersion մասին networking.k8s.io/v1beta1. Հին իմաստ extensions/v1beta1 դեռևս աջակցվում է, բայց այս տարբերակը մանիֆեստներում միաժամանակ թարմացնելու լավ պատճառ կա:

Բավականին շատ փոփոխություններ կան տարբեր համակարգերի պիտակներում (Node labels), որոնք տեղադրվում են հանգույցների վրա։

Kubelet-ին արգելված էր կամայական պիտակներ տեղադրել (նախկինում դրանք կարող էին սահմանվել գործարկման ստեղների միջոցով kubelet --node-labels), թողել են միայն այս ցուցակը թույլատրված է:

kubernetes.io/hostname
kubernetes.io/instance-type
kubernetes.io/os
kubernetes.io/arch

beta.kubernetes.io/instance-type
beta.kubernetes.io/os
beta.kubernetes.io/arch

failure-domain.beta.kubernetes.io/zone
failure-domain.beta.kubernetes.io/region

failure-domain.kubernetes.io/zone
failure-domain.kubernetes.io/region

[*.]kubelet.kubernetes.io/*
[*.]node.kubernetes.io/*

Պիտակները beta.kubernetes.io/metadata-proxy-ready, beta.kubernetes.io/metadata-proxy-ready և beta.kubernetes.io/kube-proxy-ds-ready այլևս չեն ավելացվել նոր հանգույցներին, և տարբեր լրացուցիչ բաղադրիչներ սկսել են օգտագործել մի փոքր տարբեր պիտակներ որպես հանգույցների ընտրիչներ.

Բաղադրիչ
Հին պիտակ
Ընթացիկ պիտակ

kube- վստահված անձ
beta.kubernetes.io/kube-proxy-ds-ready
node.kubernetes.io/kube-proxy-ds-ready

ip-mask-գործակալ
beta.kubernetes.io/masq-agent-ds-ready
node.kubernetes.io/masq-agent-ds-ready

մետատվյալներ՝ վստահված անձ
beta.kubernetes.io/metadata-proxy-ready
cloud.google.com/metadata-proxy-ready

kubeadm-ն այժմ հեռացնում է սկզբնական kublet կազմաձևման ֆայլը դրա հետևում bootstrap-kubelet.conf. Եթե ​​ձեր գործիքները մուտք էին գործում այս ֆայլը, ապա անցեք օգտագործմանը kubelet.conf, որը պահում է մուտքի ընթացիկ կարգավորումները:

Cadvisor-ն այլևս չի տրամադրում չափումներ pod_name и container_nameեթե դրանք օգտագործել եք Պրոմեթևսում, անցեք չափումների pod и container համապատասխանաբար:

Հեռացրել է ստեղները տողի հրամանով.

Բաղադրիչ
Հետ քաշված բանալին

հիպերկուբ
-- make-symlink

kube- վստահված անձ
--ռեսուրս-կոնտեյներ

Ժամանակացույցը սկսեց օգտագործել Event API-ի v1beta1 տարբերակը: Եթե ​​դուք օգտագործում եք երրորդ կողմի գործիքներ՝ Event API-ի հետ փոխազդելու համար, անցեք վերջին տարբերակին:

Հումորի մի պահ. 1.16 թողարկման նախապատրաստման ընթացքում կատարվել են հետևյալ փոփոխությունները.

  • հանել է անոտացիան scheduler.alpha.kubernetes.io/critical-pod v1.16.0-alpha.1 տարբերակում
  • վերադարձրեց անոտացիան scheduler.alpha.kubernetes.io/critical-pod v1.16.0-alpha.2 տարբերակում
  • հանել է անոտացիան scheduler.alpha.kubernetes.io/critical-pod v1.16.0-beta.1 տարբերակում

Օգտագործեք դաշտը spec.priorityClassName նշելու համար պատիճի կարևորությունը:

Source: www.habr.com

Добавить комментарий