镜像 ¶
从 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