kops
Create, manage, and delete Kubernetes clusters
TLDR
Create a cluster from the configuration specification
Create a new SSH public key
Export the cluster configuration to the ~/.kube/config file
Get the cluster configuration as YAML
Delete a cluster
Validate a cluster
SYNOPSIS
kops [command] [flags]
PARAMETERS
--alsologtostderr
Log to standard error as well as files
--config {path}
Path to the kops configuration file. Defaults to ~/.kops/config
--log_backtrace_at {string}
When logging hits line file:N, emit a stack trace
--log_dir {string}
If non-empty, write log files in this directory
--logtostderr
Log to standard error instead of files
--name {string}
Name of the cluster. It is suggested that you also set --state.
--node-status-allowed-toleration {duration}
Maximum time to tolerate nodestatus being not Ready.
--alsologtostderr
Log to standard error as well as files
--root-command {string}
Usefull when calling root command from kubectl plugin. Defaults to 'kops'
--set-profile {string}
Name of the configuration profile to load. Defaults to 'default'
--skip-validation
Skip cluster validation during creation and updates.
--state {string}
Location of the state store. kops requires persistent storage, such as an S3 bucket.
--stderrthreshold {severity}
Logs at or above this threshold go to stderr
--v {level}
Number for the log level verbosity
--version
Prints the version
--vmodule {spec}
Comma-separated list of pattern=N settings for file-filtered logging
DESCRIPTION
kops is the command-line tool for creating, managing, and deleting Kubernetes clusters on various cloud providers, primarily AWS, but also GCP and others. It automates the process of provisioning the necessary infrastructure, configuring Kubernetes, and managing cluster upgrades, scaling, and maintenance.
kops allows users to define the desired state of their Kubernetes cluster declaratively. By using commands to create the specifications for a Kubernetes cluster, then applying these specifications, kops handles the actual provisioning and configuration of that cluster, abstracting away much of the underlying complexity.
It provides a robust and production-ready experience for deploying Kubernetes and includes features like automated DNS configuration, high availability control plane setup, and integration with other Kubernetes tools and services.
CAVEATS
kops primarily supports AWS. While it also supports GCP and other cloud providers, the support level and feature set might be more mature on AWS. Proper IAM permissions are crucial for kops to function correctly. Ensure the AWS credentials used by kops have the necessary permissions to create and manage resources within your AWS account.
COMMANDS
Common commands include `kops create cluster`, `kops update cluster`, `kops get cluster`, and `kops delete cluster`. Each command has subcommands and flags specific to the task.
STATE STORE
kops stores the cluster configuration in a state store, typically an S3 bucket. The state store is used to manage and track the desired state of the cluster. It is crucial to secure this state store and back it up regularly.
HISTORY
kops was originally developed by the Kubernetes community to simplify the process of deploying Kubernetes clusters on AWS. It has since evolved to support other cloud providers and has become a popular tool for managing Kubernetes infrastructure.
The development has been driven by the need for a reliable, automated, and production-grade solution for provisioning and managing Kubernetes clusters. It automates the creation of secure and hardened clusters, including tasks like control plane setup, networking configuration, and security hardening.