跳至内容

镜像

从 Kubernetes 1.27 开始,kOps 使用的默认镜像为 官方 Ubuntu 22.04 镜像。

您可以通过使用 kops edit ig nodes 编辑实例组来选择其他镜像。

对于 AWS,您应该以以下格式之一设置 image 字段

  • ami-abcdef - 通过 ID 直接指定镜像(镜像 ID 是精确的,但 ID 会因区域而异)
  • <owner>/<name> 通过所有者帐户 ID 和名称属性指定镜像
  • <alias>/<name> 通过其 所有者别名 和名称属性指定镜像
  • ssm:<ssm_parameter> 通过 SSM 参数指定镜像(kOps 1.25.3+)
image: ami-00579fbb15b954340
image: 099720109477/ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20200423
image: ubuntu/ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20200423
image: ssm:/aws/service/canonical/ubuntu/server/20.04/stable/current/amd64/hvm/ebs-gp2/ami-id

安全更新

kOps 为 Debian、Flatcar 和 Ubuntu 发行版处理自动安全更新。可以通过编辑集群配置来禁用此功能

spec:
  updatePolicy: external

发行版支持矩阵

下表提供了关于 kOps 版本的各种发行版支持状态

发行版 实验性 稳定 已弃用 已删除
Amazon Linux 2 1.10 1.18 - -
Amazon Linux 2023 1.27 - - -
CentOS 7 - 1.5 1.21 1.23
CentOS 8 1.15 - 1.21 1.23
CoreOS 1.6 1.9 1.17 1.18
Debian 8 - 1.5 1.17 1.18
Debian 9 1.8 1.10 1.21 1.23
Debian 10 1.13 1.17 - -
Debian 11 1.21.1 - - -
Debian 12 1.26.3 - - -
Flatcar 1.15.1 1.17 - -
Kope.io - - 1.18 1.23
RHEL 7 - 1.5 1.21 1.23
RHEL 8 1.15 1.18 - -
RHEL 9 1.27 - - -
Rocky 8 1.23.2 1.24 - -
Rocky 9 1.30 - - -
Ubuntu 16.04 1.5 1.10 1.17 1.20
Ubuntu 18.04 1.10 1.16 1.26 1.28
Ubuntu 20.04 1.16.2 1.18 - -
Ubuntu 22.04 1.23 1.24 - -
Ubuntu 24.04 1.29 - - -

支持的发行版

Amazon Linux 2

Amazon Linux 2 使用内核版本 4.14 和 5.10。请务必使用下面镜像过滤器中指定的 5.10 镜像。更多信息请参见 AWS 文档

对于 kOps 版本 1.16 和 1.17,唯一支持的 Docker 版本为 18.06.3。由于缺少 container-selinux 的依赖项,无法安装较新版本的 Docker。此问题已在 kOps 1.18 中修复。

可以使用以下命令列出可用的镜像

aws ec2 describe-images --region us-east-1 --output table \
  --filters "Name=owner-alias,Values=amazon" \
  --query "sort_by(Images, &CreationDate)[*].[CreationDate,Name,ImageId]" \
  --filters "Name=name,Values=amzn2-ami-kernel-5.10-hvm-2*-*-gp2"

Amazon Linux 2023

Amazon Linux 2023 使用内核版本 6.1。更多信息请参见 AWS 文档。仅支持标准 AMI,最小 AMI 不受支持。

可以使用以下命令列出可用的镜像

aws ec2 describe-images --region us-east-1 --output table \
  --filters "Name=owner-alias,Values=amazon" \
  --query "sort_by(Images, &CreationDate)[*].[CreationDate,Name,ImageId]" \
  --filters "Name=name,Values=al2023-ami-2*-kernel-6.1-*"

Debian 10 (Buster)

Debian 10 基于内核版本 4.19,修复了 Debian 9 中的一些错误,影响不太明显。

一个值得注意的更改是添加了 iptables NFT,这是默认选项。这目前不受大多数 CNI 插件支持,并且似乎比传统版本 更慢。建议通过在每个实例组的 additionalUserData 中使用以下脚本切换到 iptables 传统版本

additionalUserData:
  - name: busterfix.sh
    type: text/x-shellscript
    content: |
      #!/bin/sh
      update-alternatives --set iptables /usr/sbin/iptables-legacy
      update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
      update-alternatives --set arptables /usr/sbin/arptables-legacy
      update-alternatives --set ebtables /usr/sbin/ebtables-legacy

可以使用以下命令列出可用的镜像

# Amazon Web Services (AWS)
aws ec2 describe-images --region us-east-1 --output table \
  --owners 136693071363 \
  --query "sort_by(Images, &CreationDate)[*].[CreationDate,Name,ImageId]" \
  --filters "Name=name,Values=debian-10-*-*"

# Google Cloud Platform (GCP)
gcloud compute images list --filter debian-10-buster-v

# Microsoft Azure
az vm image list --all --output table \
  --publisher Debian --offer debian-10 --sku 10-gen2

Debian 11 (Bullseye)

Debian 11 基于内核版本 5.10,没有已知的重大内核错误,完全支持所有 Cilium 功能。

可以使用以下命令列出可用的镜像

# Amazon Web Services (AWS)
aws ec2 describe-images --region us-east-1 --output table \
  --owners 136693071363 \
  --query "sort_by(Images, &CreationDate)[*].[CreationDate,Name,ImageId]" \
  --filters "Name=name,Values=debian-11-*-*"

# Google Cloud Platform (GCP)
gcloud compute images list --filter debian-11-bullseye-v

# Microsoft Azure
az vm image list --all --output table \
  --publisher Debian --offer debian-11 --sku 11-gen2

Debian 12 (Bookworm)

Debian 12 基于内核版本 6.1,没有已知的重大内核错误,完全支持所有 Cilium 功能。

可以使用以下命令列出可用的镜像

# Amazon Web Services (AWS)
aws ec2 describe-images --region us-east-1 --output table \
  --owners 136693071363 \
  --query "sort_by(Images, &CreationDate)[*].[CreationDate,Name,ImageId]" \
  --filters "Name=name,Values=debian-12-*-*"

Flatcar

Flatcar 是 CoreOS 的友好分支,因此与之兼容。

可以使用以下命令列出可用的镜像

aws ec2 describe-images --region us-east-1 --output table \
  --owners 075585003325 \
  --query "sort_by(Images, &CreationDate)[*].[CreationDate,Name,ImageId]" \
  --filters "Name=name,Values=Flatcar-stable-*-hvm"

RHEL 8

RHEL 8 基于内核版本 4.18,修复了 RHEL/CentOS 7 中的一些错误,影响不太明显。

一个值得注意的更改是添加了 iptables NFT,这是唯一可用的 iptables 后端。某些 CNI 插件可能不支持此功能,因此请谨慎使用。

可以使用以下命令列出可用的镜像

aws ec2 describe-images --region us-east-1 --output table \
  --owners 309956199498 \
  --query "sort_by(Images, &CreationDate)[*].[CreationDate,Name,ImageId]" \
  --filters "Name=name,Values=RHEL-8.*"

RHEL 9

RHEL 9 基于内核版本 5.15,修复了所有已知的重大内核错误。

可以使用以下命令列出可用的镜像

aws ec2 describe-images --region us-east-1 --output table \
  --owners 309956199498 \
  --query "sort_by(Images, &CreationDate)[*].[CreationDate,Name,ImageId]" \
  --filters "Name=name,Values=RHEL-9.*"

Rocky 8

Rocky Linux 是一款社区企业操作系统,旨在与 RHEL 8 完全兼容。

可以使用以下命令列出可用的镜像

aws ec2 describe-images --region us-east-1 --output table \
  --owners 792107900819 \
  --query "sort_by(Images, &CreationDate)[*].[CreationDate,Name,ImageId]" \
  --filters "Name=name,Values=Rocky-8-ec2-8.*.*"

Rocky 9

Rocky Linux 9 基于内核版本 5.14

可以使用以下命令列出可用的镜像

aws ec2 describe-images --region us-east-1 --output table \
  --owners 792107900819 \
  --query "sort_by(Images, &CreationDate)[*].[CreationDate,Name,ImageId]" \
  --filters "Name=name,Values=Rocky-9-EC2-Base-9.*.*"

Ubuntu 20.04 (Focal)

Ubuntu 20.04 基于内核版本 5.4,修复了所有已知的重大内核错误。

可以使用以下命令列出可用的镜像

# Amazon Web Services (AWS)
aws ec2 describe-images --region us-east-1 --output table \
  --owners 099720109477 \
  --query "sort_by(Images, &CreationDate)[*].[CreationDate,Name,ImageId]" \
  --filters "Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-focal-20.04-*-*"

# Google Cloud Platform (GCP)
gcloud compute images list --filter ubuntu-2004-focal-v

# Microsoft Azure
az vm image list --all --output table \
  --publisher Canonical --offer 0001-com-ubuntu-server-focal --sku 20_04-lts-gen2

Ubuntu 22.04 (Jammy)

Ubuntu 22.04 基于内核版本 5.15,修复了所有已知的重大内核错误。

可以使用以下命令列出可用的镜像

# Amazon Web Services (AWS)
aws ec2 describe-images --region us-east-1 --output table \
  --owners 099720109477 \
  --query "sort_by(Images, &CreationDate)[*].[CreationDate,Name,ImageId]" \
  --filters "Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-*-*"

# Google Cloud Platform (GCP)
gcloud compute images list --filter ubuntu-2204-jammy-v

# Microsoft Azure
az vm image list --all --output table \
  --publisher Canonical --offer 0001-com-ubuntu-server-jammy --sku 22_04-lts-gen2

Ubuntu 24.04 (Noble)

对 Ubuntu 24.04 的支持处于 实验阶段

# Amazon Web Services (AWS)
aws ec2 describe-images --region us-east-1 --output table \
  --owners 099720109477 \
  --query "sort_by(Images, &CreationDate)[*].[CreationDate,Name,ImageId]" \
  --filters "Name=name,Values=ubuntu/images/hvm-ssd-gp3/ubuntu-jammy-22.04-*-*"

所有者别名

kOps 支持支持的发行版的官方帐户的所有者别名

  • amazon => 137112412989
  • debian10 => 136693071363
  • debian11 => 136693071363
  • flatcar => 075585003325
  • redhat => 309956199498
  • ubuntu => 099720109477