前言
我的阿里雲ACK 也就是k8s之前是2021年建立的,當時的版本是1.18,中間也升級過一次到1.22,但是最近k8s的1.24版本釋出之後從docker runtime變到了containerd,所以打算再升級一下,之前的映象製作和映象釋出包括編寫dockerfile等等操作不變。
問題
1、NAT閘道器IP和Nginx SLB ip問題
NAT閘道器是ECS裡面的Pod能否訪問外網的配置,如果沒有NAT閘道器則你不能透過pod訪問外網,比如說你的服務裡面有個網路爬蟲,這時候就需要配置NAT閘道器
Nginx SLB是你的服務透過ingress讓外界能夠訪問內部資源的配置,也就是說你的應用對應的域名及ip是指向Nginx SLB公網對內訪問的資源。
2、Pod拉取個人或者企業私有映象問題
這個問題也是我升級過程中遇到最大的問題,根據阿里工程師提供的使用免密元件拉取容器映象文件即可解決。
步驟:(注意:先在控制檯看看自己是否安裝了aliyun-acr-credential-helper元件)
透過控制檯方式設定acr-configuration配置項。
登入容器服務管理控制檯。
在控制檯左側導航欄中,單擊叢集。
在叢集列表頁面,單擊目標叢集下的詳情。
在叢集資訊頁面左側導航欄,選擇配置管理 > 配置項。
在配置項頁面的上方名稱空間下拉框中,選擇kube-system,然後找到配置項acr-configuration,然後透過以下兩種方式配置acr-configuration。
個人:
acr-registry-info: |-
- instanceId: ""
regionId: "cn-hangzhou"
企業:
acr-registry-info: |-
- instanceId: "cri-xxx"
regionId: "cn-hangzhou"
完整的配置,如下:
apiVersion: v1
data:
acr-api-version: "2018-12-01"
acr-registry-info: |-
- instanceId: ""
regionId: "cn-hangzhou"
expiring-threshold: 15m
service-account: default
watch-namespace: all
kind: ConfigMap
metadata:
name: acr-configuration
namespace: kube-system
selfLink: /api/v1/namespaces/kube-system/configmaps/acr-configuration
3、Https證書
cert-manager是一個雲原生證書管理開源工具,用於在Kubernetes叢集中提供HTTPS證書並自動續期。以下示例介紹瞭如何使用cert-manager申請免費證書並自動續期。使用cert-manager申請免費的HTTPS證書
4、nacos新版本mysql欄位缺失問題
Nacos v2.0.4升級到v2.1.0後mysql資料庫欄位缺失了,加上即可。
Nacos v2.0.4升級到v2.1.0後啟動報如下錯誤 Unknown column ‘encrypted_data_key‘ in ‘field list‘
總結
升級ACK過程中總會遇到各種各樣的問題,還好都解決了,希望對大家有所幫助。