README 未给出安装命令,需按官方 Getting Started 文档安装;使用前需准备受支持的云平台账号与凭证;不同云厂商支持成熟度不同,Azure 仍为 alpha
kops
kubernetesApache-2.0活跃维护用声明式配置在 AWS、GCP 等云上自动化创建、升级和管理生产级 Kubernetes 集群,省去手工搭建和运维的麻烦。
Kubernetes Operations (kOps) - Production Grade k8s Installation, Upgrades and Management
README 未给出具体安装命令,仅指向 Getting Started 文档:https://kops.sigs.k8s.io/getting_started/install/README 未说明;kOps 是操作云上集群的命令行工具,不涉及本地 GPU 或显存要求
用一条命令在云上创建、升级和维护生产级高可用 Kubernetes 集群,并顺带开通所需云基础设施
用声明式配置在 AWS、GCP 等云上自动化创建、升级和管理生产级 Kubernetes 集群,省去手工搭建和运维的麻烦。
核心能力
- 一条命令创建、销毁、升级和维护生产级高可用集群
- 自动开通集群所需的云基础设施,无需手工配置
- 官方支持 AWS 与 GCP,DigitalOcean、Hetzner、OpenStack 处于 beta
- Azure 支持处于 alpha 阶段
- 被定位为集群层面的 kubectl,统一管理集群生命周期
容易踩的坑
- v1.37.0-beta.1pre-release2026-08-29 · 2026-08-29 13:28 UTC
查看更新说明
See the full kOps 1.37 release notes for details, including breaking changes and deprecations.
What's Changed
- docs: update 1.36 release notes by @hakman in https://github.com/kubernetes/kops/pull/18592
- fix: retry listing cloud resources in
kops delete clusterby @hakman in https://github.com/kubernetes/kops/pull/18595 - hack: parallelize GitHub release promotion and add checksum validation by @hakman in https://github.com/kubernetes/kops/pull/18594
- feat(linode): Refactor VPC model into broader Network model, and add subnet task by @moshevayner in https://github.com/kubernetes/kops/pull/18590
- chore: Remove support for Kubernetes 1.31 by @hakman in https://github.com/kubernetes/kops/pull/18598
- docs: update 1.36 release notes post-release by @hakman in https://github.com/kubernetes/kops/pull/18599
- nodeup: don't mutate the cluster spec when clearing authenticator config by @hakman in https://github.com/kubernetes/kops/pull/18600
- azure: allow kindnet pod CIDR to reach the kube-apiserver by @hakman in https://github.com/kubernetes/kops/pull/18604
- Replace gsutil with gcloud storage by @hakman in https://github.com/kubernetes/kops/pull/18609
- build(deps): bump actions/setup-go from 6.5.0 to 7.0.0 by @dependabot[bot] in https://github.com/kubernetes/kops/pull/18611
- Adding suitable control plane machine for gce by @YahiaBadr in https://github.com/kubernetes/kops/pull/18612
- Allow specifying number of nodes that can be unready during validation by @Jefftree in https://github.com/kubernetes/kops/pull/18614
- chore(networking): bump aws-cni to v1.22.3 by @moshevayner in https://github.com/kubernetes/kops/pull/18615
- Tolerate unready nodes during scalability test validation by @Jefftree in https://github.com/kubernetes/kops/pull/18616
- aws: remove support for Classic Load Balancer for the API by @hakman in https://github.com/kubernetes/kops/pull/18617
- chore(channels): bump k8s and Ubuntu AMI versions in alpha channel by @moshevayner in https://github.com/kubernetes/kops/pull/18621
- build(deps): bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in https://github.com/kubernetes/kops/pull/18626
- gce: open control-plane node-exporter port (tcp/9100) by @Jefftree in https://github.com/kubernetes/kops/pull/18620
- aws: add option for IP-based node names by @hakman in https://github.com/kubernetes/kops/pull/18632
- aws: allow shared subnets to omit the zone by @hakman in https://github.com/kubernetes/kops/pull/18630
- hetzner: Ignore WellKnownServices when comparing load balancers by @krillerdk in https://github.com/kubernetes/kops/pull/18631
- Enable nri mounting on kindnet in kops by @michaelasp in https://github.com/kubernetes/kops/pull/18635
- azure: support terraform provider azurerm v5 by @hakman in https://github.com/kubernetes/kops/pull/18636
- Update hcloud-go/v2 to latest version (v2.47.0) by @krillerdk in https://github.com/kubernetes/kops/pull/18638
- gce: download nodeup from private GCS buckets with curl by @hakman in https://github.com/kubernetes/kops/pull/18623
- aws: do not set the primary network interface to "Unmanaged=yes" by @hakman in https://github.com/kubernetes/kops/pull/18642
- rolling-update: restore 5s delay between pod eviction retries by @hakman in https://github.com/kubernetes/kops/pull/18641
- Remove support for gossip DNS by @hakman in https://github.com/kubernetes/kops/pull/18601
- etcd-manager: compute kops-utils-cp image at use time by @hakman in https://github.com/kubernetes/kops/pull/18645
- chore(channels): Promote alpha to stable channel by @moshevayner in https://github.com/kubernetes/kops/pull/18647
- aws: Default to AWS CCM v1.36.1 for all k8s versions by @rifelpet in https://github.com/kubernetes/kops/pull/18649
- chore(networking): bump aws-cni to version 1.22.4 by @moshevayner in https://github.com/kubernetes/kops/pull/18648
- Remove gossip leftovers by @hakman in https://gith
- v1.36.2最新正式版2026-08-08 · 2026-08-08 14:36 UTC
What's Changed
- Automated cherry pick of #18636: azure: support terraform provider azurerm v5 by @hakman in https://github.com/kubernetes/kops/pull/18637
- Automated cherry pick of #18638: Update hcloud-go/v2 to latest version (v2.47.0) by @hakman in https://github.com/kubernetes/kops/pull/18639
- Automated cherry pick of #18641: rolling-update: restore 5s delay between pod eviction retries by @hakman in https://github.com/kubernetes/kops/pull/18643
- Automated cherry pick of #18642: aws: do not set the primary network interface to "Unmanaged=yes" by @hakman in https://github.com/kubernetes/kops/pull/18644
- Automated cherry pick of #18645: etcd-manager: compute kops-utils-cp image at use time by @hakman in https://github.com/kubernetes/kops/pull/18646
- Automated cherry pick of #18649: aws: Default to AWS CCM v1.36.1 for all k8s versions by @rifelpet in https://github.com/kubernetes/kops/pull/18652
- Automated cherry pick of #18657: fix(channels): only treat known ready conditions as health signals by @hakman in https://github.com/kubernetes/kops/pull/18659
- Automated cherry pick of #18655: Generate EC2NodeClass block device mapping for root volume by @hakman in https://github.com/kubernetes/kops/pull/18673
- Release 1.36.2 by @hakman in https://github.com/kubernetes/kops/pull/18674
Full Changelog: https://github.com/kubernetes/kops/compare/v1.36.1...v1.36.2
- v1.36.12026-07-28 · 2026-07-28 15:23 UTC
查看更新说明
What's Changed
- Automated cherry pick of #18600: nodeup: don't mutate the cluster spec when clearing authenticator config by @rifelpet in https://github.com/kubernetes/kops/pull/18602
- Automated cherry pick of #18631: hetzner: Ignore WellKnownServices when comparing load balancers by @hakman in https://github.com/kubernetes/kops/pull/18633
- Release 1.36.1 by @hakman in https://github.com/kubernetes/kops/pull/18634
Full Changelog: https://github.com/kubernetes/kops/compare/v1.36.0...v1.36.1
- v1.36.02026-07-15 · 2026-07-15 15:31 UTC
查看更新说明
See the full kOps 1.36 release notes for details, including breaking changes and deprecations.
Highlights
- Kubernetes 1.36 support and completion of the move away from the in-tree cloud providers
- Reworked addon management:
kops-channelsnow runs as a static pod on control-plane nodes; the standalonechannelsbinary is no longer distributed - Hybrid bootstrap for gossip clusters: workers bootstrap directly against the API load balancer, easing migration off gossip DNS, which is deprecated
- Karpenter refresh: Karpenter v1.13.0 with kOps-managed
EC2NodeClassandNodePoolobjects per instance group - etcd-manager improvements: recovery of members with replaced data disks, membership changes resilient to unreachable members, a distroless image, and faster single-member cluster startup
- Expanded Azure support: cloud-controller-manager, Azure Disk CSI driver, and experimental Terraform target
- Hetzner Cluster Autoscaler support and groundwork for Linode (Akamai) as a new cloud provider
- Component updates: containerd v2.2.4, etcd-manager v3.0.20260707 with etcd 3.5.31/3.6.12, AWS Load Balancer Controller v3.3.0, Cilium tunables, CoreDNS v1.14.2, cluster-autoscaler v1.36.0
- Removed: support for Kubernetes 1.30, etcd 3.4, Amazon Linux 2, Ubuntu 20.04, and Debian 10
What's Changed
- Automated cherry pick of #18467: aws: Reconcile target group health check changes on existing target groups by @hakman in https://github.com/kubernetes/kops/pull/18469
- Automated cherry pick of #18484: gce: emit kops.k8s.io/instancegroup node label by @rifelpet in https://github.com/kubernetes/kops/pull/18488
- Automated cherry pick of #18478: nodeup: load ip_set module and disable firewalld on RHEL10 by @rifelpet in https://github.com/kubernetes/kops/pull/18492
- Automated cherry pick of #18498: Remove namespace from DO ClusterRole by @rifelpet in https://github.com/kubernetes/kops/pull/18499
- Automated cherry pick of #18511: Allow setting missing slice elements from the command line by @hakman in https://github.com/kubernetes/kops/pull/18512
- Automated cherry pick of ##18479: Upgrade Karpenter to v1.13.0 ##18486: Register Karpenter nodes with karpenter.sh/unregistered taint ##18487: Add missing EC2 read permissions to Karpenter IAM policy ##18497: Add managed Karpenter EC2NodeClass and NodePool by @hakman in https://github.com/kubernetes/kops/pull/18513
- Automated cherry pick of #18522: azure: Scope nodes-to-API NSG rules to the NAT gateway public IP by @hakman in https://github.com/kubernetes/kops/pull/18523
- Automated cherry pick of #18527: azure: Bump azuredisk-csi-driver to v1.34.4 by @hakman in https://github.com/kubernetes/kops/pull/18528
- Automated cherry pick of #18529: azure: Bump azure-cloud-controller-manager to v1.36.2 by @hakman in https://github.com/kubernetes/kops/pull/18531
- Automated cherry pick of #18533: azure: Grant control-plane VMSS Contributor instead of Owner by @hakman in https://github.com/kubernetes/kops/pull/18534
- Automated cherry pick of #18535: coredns: Honor node taints in hostname topologySpreadConstraint by @hakman in https://github.com/kubernetes/kops/pull/18536
- Automated cherry pick of #18538: hetzner: fix Cluster Autoscaler node group membership by @hakman in https://github.com/kubernetes/kops/pull/18539
- Automated cherry pick of #18541: Update cluster-autoscaler to v1.36.0 by @hakman in https://github.com/kubernetes/kops/pull/18542
- Automated cherry pick of #18543: gce: register all zonal MIGs of a multi-zone instance group with cluster-autoscaler by @hakman in https://github.com/kubernetes/kops/pull/18544
- Automated cherry pick of #18546: Update Go to 1.26.5 and bump golang.org/x modules by @hakman in https://github.com/kubernetes/kops/pull/18547
- Cherry pick of #18560: etcd-manager: upgrade to v3.0.20260707 by @hakman in https://github.com/kubernetes/kops/pull/18
- v1.37.0-alpha.1pre-release2026-07-15 · 2026-07-15 15:26 UTC
查看更新说明
What's Changed
- Support etcd 3.7.0-rc.0 and allow overriding the etcd version in the scalability scenario by @Jefftree in https://github.com/kubernetes/kops/pull/18458
- Enable misspell in golangci-lint by @ameukam in https://github.com/kubernetes/kops/pull/17578
- e2e: Filter random AZ selection by instance type availability by @rifelpet in https://github.com/kubernetes/kops/pull/18463
- azure: Use IMDS attested metadata document for node identity by @hakman in https://github.com/kubernetes/kops/pull/18163
- gce: fix backend service ownership filtering during delete by @carterpewpew in https://github.com/kubernetes/kops/pull/18460
- aws: Reconcile target group health check changes on existing target groups by @hakman in https://github.com/kubernetes/kops/pull/18467
- gce: Reconcile HTTP health check changes on existing health checks by @hakman in https://github.com/kubernetes/kops/pull/18468
- Improve Google Storage Bucket support. by @cheftako in https://github.com/kubernetes/kops/pull/18466
- Enable gosec and gocritic by @ameukam in https://github.com/kubernetes/kops/pull/18470
- Add serathius as scalability test owner by @Jefftree in https://github.com/kubernetes/kops/pull/18475
- feat(linode): implement SSH key management and associated tasks by @moshevayner in https://github.com/kubernetes/kops/pull/18383
- Added support for APIServer using LB by @cheftako in https://github.com/kubernetes/kops/pull/18459
- chore(channels): bump k8s versions in alpha channel by @moshevayner in https://github.com/kubernetes/kops/pull/18477
- Upgrade Karpenter to v1.13.0 by @hakman in https://github.com/kubernetes/kops/pull/18479
- scaletest: Report experiment variant into scalability run metadata by @Jefftree in https://github.com/kubernetes/kops/pull/18476
- channels: Add Kubernetes 1.36.0 support by @hakman in https://github.com/kubernetes/kops/pull/18480
- gce: emit kops.k8s.io/instancegroup node label by @rifelpet in https://github.com/kubernetes/kops/pull/18484
- e2e: Skip ImageVolume tests on COS 121 by @rifelpet in https://github.com/kubernetes/kops/pull/18483
- Register Karpenter nodes with karpenter.sh/unregistered taint by @hakman in https://github.com/kubernetes/kops/pull/18486
- Add missing EC2 read permissions to Karpenter IAM policy by @hakman in https://github.com/kubernetes/kops/pull/18487
- scaletest: report experiment variant after kubetest2 runs by @Jefftree in https://github.com/kubernetes/kops/pull/18485
- nodeup: load ip_set module and disable firewalld on RHEL10 by @rifelpet in https://github.com/kubernetes/kops/pull/18478
- API only CLI by @cheftako in https://github.com/kubernetes/kops/pull/18482
- Fixing LB behavior when you have both APIServer and Control Plane. by @cheftako in https://github.com/kubernetes/kops/pull/18496
- Remove namespace from DO ClusterRole by @rifelpet in https://github.com/kubernetes/kops/pull/18498
- chore(channels): promote to stable, bump node images, update recommended kOps versions by @hakman in https://github.com/kubernetes/kops/pull/18501
- build(deps): bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] in https://github.com/kubernetes/kops/pull/18505
- scaletest: bind etcd metrics to all interfaces by @Jefftree in https://github.com/kubernetes/kops/pull/18503
- e2e: test the PR's own channels, not master's by @hakman in https://github.com/kubernetes/kops/pull/18504
- tests/e2e: refine externalTrafficPolicy=Local and hostNetwork skips by @rifelpet in https://github.com/kubernetes/kops/pull/18509
- Allow setting missing slice elements from the command line by @hakman in https://github.com/kubernetes/kops/pull/18511
- Add managed Karpenter EC2NodeClass and NodePool by @hakman in https://github.com/kubernetes/kops/pull/18497
- tests/e2e: skip implement-NodePort ETP=Local test on more CNIs by @rifelpet in https://github.com/kubernetes/kops/pull/18515
- chore(channels): pin Azure noble image to a deployable version by @hakman in https://gi
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
kOps - Kubernetes Operations
The easiest way to get a production grade Kubernetes cluster up and running.
What is kOps?
We like to think of it as kubectl for clusters.
kops will not only help you create, destroy, upgrade and maintain production-grade, highly
available, Kubernetes cluster, but it will also provision the necessary cloud infrastructure.
AWS (Amazon Web Services) and GCP (Google Cloud Platform) are currently officially supported, with DigitalOcean, Hetzner and OpenStack in beta support, and Azure in alpha.
Can I see it in action?
Installing and launching a Kubernetes cluster hosted on AWS, GCE, DigitalOcean, Hetzner, OpenStack, Azure
See Getting Started
Documentation
Documentation is in the /docs directory, and can be seen at kops.sigs.k8s.io.
Releases and kubernetes Release Compatibility
Getting Involved and Contributing
See Contributing
Office Hours
kOps maintainers set aside one hour every other week for public office hours. This time is used to gather with community members interested in kOps. This session is open to both developers and users.
We do maintain an agenda and stick to it as much as possible. If you want to hold the floor, put your item in this doc. Bullet/note form is fine. Even if your topic gets in late, we do our best to cover it.
For more information about the office hours and how to join, see Office Hours