#EKS #EKSUpgradeMemo
跟好 Kubernetes 的版本是用 public cloud 一定要注意的事情
之前用 GKE 等穩定後再跟好即可(或是 Google Cloud 會強迫你跟好)
不過 EKS 沒 GKE 這麼聰明(之後再來比較兩個好了)因此必須自己跟好
不然發票給 support 只會得到一句:你要不要升版看看….
先來2份文件,分別為 EKS 的調整及 K8S 的調整
https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.25.md#changelog-since-v1240
廢話不多說,稍微來寫一下 1.24 to 1.25 的注意事項吧!
主要有修正的簡單列下(有可能會要改 yaml 的):
- PodSecurityPolicy (PSP) is removed 改用 Pod Security Admission (PSA).
- 若有用到 kube-system 內的 aws-auth configMap,則必須要調整.
- EndpointSlice 的 apiversion (discovery.k8s.io/v1beta1) is not longer served.
- The support for wildcard queries was deprecated in CoreDNS 1.8.7 and removed in CordDNS 1.9.
- 其他被 deprecated 的 apis 詳細清單 (非麻瓜使用者可能要看一下)→ https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.25.md#deprecation
其他可以知道,不過應該沒看也沒關係的項目:
- EKS 1.24 後只支援 containerd 的 runtime
- Move container registry from k8s.gcr.io to registry.k8s.io
- For Linux,
kube-proxy
uses a newdistroless
container image.
And theuserspace
proxy-mode is deprecated.
這次更新 EKS Add-on VPC-CNI
時有遇到一個小錯誤
Conflicts found when trying to apply. Will not continue due to resolve conflicts mode. Conflicts: DaemonSet.apps aws-node— .spec.template.spec.containers[name=”aws-node”].securityContext.capabilities.add
爬了一下文[1]後,發現可以透過選擇完要升級的版本後,最下面的 Conflict resolution method
來無視這問題(不過前提是必須對 CNI 沒有做客製化修改才能用 override喔~)
[1] https://aws.amazon.com/premiumsupport/knowledge-center/eks-cni-plugin-troubleshooting/