Skip to content
Please note that GitHub no longer supports Internet Explorer.

We recommend upgrading to the latest Microsoft Edge, Google Chrome, or Firefox.

Learn more
Kubernetes Operations (kops) - Production Grade K8s Installation, Upgrades, and Management
Go HCL Python Shell Makefile Dockerfile
Branch: master
Clone or download
k8s-ci-robot Merge pull request #7440 from 928234269/patch0
fix typo "specifiction" -> "specification"
Latest commit 54e2d9f Aug 20, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update Issue templates and add PR template Jul 21, 2018
addons Update Image version and RBAC for Citrix Ingress Controller Jul 29, 2019
channels promote k8s versions Aug 20, 2019
cloudmock Generated files: glog -> klog May 6, 2019
cmd fix Typo 'the the' -> 'the' Aug 20, 2019
dns-controller Call klog.InitFlags in dns-controller May 10, 2019
dnsprovider Generated files: glog -> klog May 6, 2019
docker Update go_version to 1.12.5 May 19, 2019
docs Merge pull request #7374 from rifelpet/1-13-release-notes Aug 6, 2019
examples Fix bazel deprecation notice Feb 26, 2018
hack hack/update-expected: regenerate gobindata Jul 23, 2019
hooks skip verification when file installed Aug 8, 2019
images Drop missing sources when building utils image Jul 3, 2019
k8s/crds Add shortNames and columns to InstanceGroup CRD May 16, 2019
kube-discovery cleanup: fix error message typos Aug 16, 2019
node-authorizer cleanup: client.go error message words correction Aug 10, 2019
nodeup/pkg Merge pull request #7346 from ripta/max-pd-vols Aug 16, 2019
permalinks Channel manifest should be version aware Jan 26, 2017
pkg Merge pull request #7430 from rifelpet/critical-pod-annotation Aug 20, 2019
protokube fix typo "specifiction" -> "specification" Aug 20, 2019
tests Support mirroring for nodeup also Aug 4, 2019
tools Add suggested alias for bazelrc import location Oct 18, 2018
upup Merge pull request #7388 from michalschott/k8s-srcdst-v0.2.2 Aug 16, 2019
util/pkg goimports update Jul 3, 2019
vendor AWS SDK v1.23.0 Aug 13, 2019
.bazelrc Add suggested alias for bazelrc import location Oct 18, 2018
.dockerignore Add .dockerignore file to improve build times Jan 4, 2017
.gitignore Stop .gitignoring all files named go-bindata Jul 19, 2019
.kazelcfg.json updating functionality to verify bazel build files Feb 24, 2018
.shipbot.yaml Publish utils.tar.gz to github releases also Mar 26, 2019
.travis.yml Switch to golang 1.12.1 Apr 22, 2019
BUILD.bazel Source gofmt from bazel go Apr 21, 2019 Documentation updates Jun 30, 2017 Fix broken url in Oct 1, 2018
Gopkg.lock AWS SDK v1.23.0 Aug 13, 2019
Gopkg.toml AWS SDK v1.23.0 Aug 13, 2019
LICENSE Unmangle the Apache library Jan 19, 2017
Makefile Add verify-goimports to tests and fix the script so it fails correctly Jul 3, 2019
OWNERS add zetaab as reviewer Aug 13, 2019 Correje el enlace de los comandos de Prow. Jun 18, 2019 ?? Update compatibility table Aug 14, 2019 Add line breaks in example release cycle Mar 6, 2019
SECURITY_CONTACTS Update embargo doc link in SECURITY_OWNERS and changes PST to PSC Mar 8, 2019
WORKSPACE Update distroless for latest bazel compatibility Jul 31, 2019 Update Dec 20, 2017
doc.go Add canonical import paths Nov 4, 2016
mkdocs.yml Generate live project documentation using mkdocs and gh-pages May 1, 2018
requirements-docs.txt Generate live project documentation using mkdocs and gh-pages May 1, 2018
version.go Release 1.14.0-alpha.1 Apr 12, 2019

kops logo

kops - Kubernetes Operations

Build Status Go Report Card GoDoc Widget

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 helps you create, destroy, upgrade and maintain production-grade, highly available, Kubernetes clusters from the command line. AWS (Amazon Web Services) is currently officially supported, with GCE in beta support , and VMware vSphere in alpha, and other platforms planned.

Can I see it in action?

Launching a Kubernetes cluster hosted on AWS, GCE or DigitalOcean

To replicate the above demo, check out our tutorial for launching a Kubernetes cluster hosted on AWS.

To install a Kubernetes cluster on GCE please follow this guide.

To install a Kubernetes cluster on DigitalOcean, follow this guide.

For anything beyond experimental clusters it is highly encouraged to version control the cluster manifest files and run kops in a CI environment.


  • Automates the provisioning of Kubernetes clusters in AWS and GCE
  • Deploys Highly Available (HA) Kubernetes Masters
  • Built on a state-sync model for dry-runs and automatic idempotency
  • Ability to generate Terraform
  • Supports custom Kubernetes add-ons
  • Command line autocompletion
  • YAML Manifest Based API Configuration
  • Templating and dry-run modes for creating Manifests
  • Choose from eight different CNI Networking providers out-of-the-box
  • Supports upgrading from kube-up
  • Capability to add containers, as hooks, and files to nodes via a cluster manifest


Documentation is in the /docs directory, and the index is here.

Kubernetes Release Compatibility

Kubernetes Version Support

kops is intended to be backward compatible. It is always recommended to use the latest version of kops with whatever version of Kubernetes you are using. We suggest kops users run one of the 3 minor versions Kubernetes is supporting however we do our best to support previous releases for a period of time.

One exception, in regards to compatibility, kops supports the equivalent Kubernetes minor release number. A minor version is the second digit in the release number. kops version 1.8.0 has a minor version of 8. The numbering follows the semantic versioning specification, MAJOR.MINOR.PATCH.

For example, kops 1.8.0 does not support Kubernetes 1.9.2, but kops 1.9.0 supports Kubernetes 1.9.2 and previous Kubernetes versions. Only when the kops minor version matches the Kubernetes minor version does kops officially support the Kubernetes release. kops does not stop a user from installing mismatching versions of K8s, but Kubernetes releases always require kops to install specific versions of components like docker, that tested against the particular Kubernetes version.

Compatibility Matrix

kops version k8s 1.8.x k8s 1.9.x k8s 1.10.x k8s 1.11.x k8s 1.12.x k8s 1.13.x k8s 1.14.x
1.14.x - Alpha ? ? ? ? ? ? ?
1.13.x ? ? ? ? ? ? ?
1.12.x ? ? ? ? ? ? ?
1.11.x ? ? ? ? ? ? ?
1.10.x ? ? ? ? ? ? ?
1.9.x ? ? ? ? ? ? ?
1.8.x ? ? ? ? ? ? ?

Use the latest version of kops for all releases of Kubernetes, with the caveat that higher versions of Kubernetes are not officially supported by kops. Releases who are crossed out should work but we suggest should be upgraded soon.

kops Release Schedule

This project does not follow the Kubernetes release schedule. kops aims to provide a reliable installation experience for kubernetes, and typically releases about a month after the corresponding Kubernetes release. This time allows for the Kubernetes project to resolve any issues introduced by the new version and ensures that we can support the latest features. kops will release alpha and beta pre-releases for people that are eager to try the latest Kubernetes release. Please only use pre-GA kops releases in environments that can tolerate the quirks of new releases, and please do report any issues encountered.



kubectl is required, see here.

OSX From Homebrew

brew update && brew install kops

The kops binary is also available via our releases.


curl -LO$(curl -s | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64
chmod +x kops-linux-amd64
sudo mv kops-linux-amd64 /usr/local/bin/kops


  1. Get kops-windows-amd64 from our releases.
  2. Rename kops-windows-amd64 to kops.exe and store it in a preferred path.
  3. Make sure the path you chose is added to your Path environment variable.

Release History

See the releases for more information on changes between releases.

Getting Involved and Contributing

Are you interested in contributing to kops? We, the maintainers and community, would love your suggestions, contributions, and help! We have a quick-start guide on adding a feature. Also, the maintainers can be contacted at any time to learn more about how to get involved.

In the interest of getting more new folks involved with kops, we are starting to tag issues with good-starter-issue. These are typically issues that have smaller scope but are good ways to start to get acquainted with the codebase.

We also encourage ALL active community participants to act as if they are maintainers, even if you don't have "official" write permissions. This is a community effort, we are here to serve the Kubernetes community. If you have an active interest and you want to get involved, you have real power! Don't assume that the only people who can get things done around here are the "maintainers".

We also would love to add more "official" maintainers, so show us what you can do!

What this means:


  • Help read and triage issues, assist when possible.
  • Point out issues that are duplicates, out of date, etc.
    • Even if you don't have tagging permissions, make a note and tag maintainers (/close,/dupe #127).

Pull Requests

  • Read and review the code. Leave comments, questions, and critiques (/lgtm ).
  • Download, compile, and run the code and make sure the tests pass (make test).
    • Also verify that the new feature seems sane, follows best architectural patterns, and includes tests.

This repository uses the Kubernetes bots. See a full list of the commands here.

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.

Office hours are hosted on a zoom video chat on Fridays at 12 noon (Eastern Time)/9 am (Pacific Time) during weeks with odd "numbers". To check this weeks' number, run: date +%V. If the response is odd, join us on Friday for office hours!

Office Hours Topics

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.

Our office hours call is recorded, but the tone tends to be casual. First-timers are always welcome. Typical areas of discussion can include:

  • Contributors with a feature proposal seeking feedback, assistance, etc
  • Members planning for what we want to get done for the next release
  • Strategizing for larger initiatives, such as those that involve more than one sig or potentially more moving pieces
  • Help wanted requests
  • Demonstrations of cool stuff. PoCs. Fresh ideas. Show us how you use kops to go beyond the norm- help us define the future!

Office hours are designed for ALL of those contributing to kops or the community. Contributions are not limited to those who commit source code. There are so many important ways to be involved-

  • helping in the slack channels
  • triaging/writing issues
  • thinking about the topics raised at office hours and forming and advocating for your good ideas forming opinions
  • testing pre-(and official) releases

Although not exhaustive, the above activities are extremely important to our continued success and are all worth contributions. If you want to talk about kops and you have doubt, just come.

Other Ways to Communicate with the Contributors

Please check in with us in the #kops-users or #kops-dev channel. Often-times, a well crafted question or potential bug report in slack will catch the attention of the right folks and help quickly get the ship righted.

GitHub Issues


If you think you have found a bug please follow the instructions below.

  • Please spend a small amount of time giving due diligence to the issue tracker. Your issue might be a duplicate.
  • Set -v 10 command line option and save the log output. Please paste this into your issue.
  • Note the version of kops you are running (from kops version), and the command line options you are using.
  • Open a new issue.
  • Remember users might be searching for your issue in the future, so please give it a meaningful title to helps others.
  • Feel free to reach out to the kops community on kubernetes slack.


We also use the issue tracker to track features. If you have an idea for a feature, or think you can help kops become even more awesome follow the steps below.

  • Open a new issue.
  • Remember users might be searching for your issue in the future, so please give it a meaningful title to helps others.
  • Clearly define the use case, using concrete examples. EG: I type this and kops does that.
  • Some of our larger features will require some design. If you would like to include a technical design for your feature please include it in the issue.
  • After the new feature is well understood, and the design agreed upon we can start coding the feature. We would love for you to code it. So please open up a WIP (work in progress) pull request, and happy coding.
You can’t perform that action at this time.
3d怎么选号 体育彩票排三专家推荐 3d彩票技巧之五行技巧 体彩浙江20选5这是什么意思 斯诺克台球游戏中文版下载 中国竞彩网胜分差计算器 pk10牛牛软件下载 双色球蓝球两次一样 七乐彩单式 新疆11选5走势图记录 九龙心水论坛6089 天津时时彩开奖结果查询 pc28挂机模式 广东11选5遗漏查询 内蒙福彩时时彩开奖号码走势图表