阿里雲ACK從1.22升級到1.24問題彙總

Awbeci 發表於 2022-11-30

前言

我的阿里雲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過程中總會遇到各種各樣的問題,還好都解決了,希望對大家有所幫助。