前言

我的阿里云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过程中总会遇到各种各样的问题,还好都解决了,希望对大家有所帮助。


Awbeci
3.1k 声望212 粉丝

Awbeci