Cybozu Kubernetes Engine
CKE (Cybozu Kubernetes Engine) is a distributed service that automates Kubernetes cluster management.
Project Status: GA
Node OS Requirements
- Docker: etcd data is stored in Docker volumes.
- A user who belongs to
- SSH access for the user
Bootstrapping and life-cycle management.
CKE can bootstrap a Kubernetes and etcd cluster from scratch. CKE can also add or remove nodes to/from the Kubernetes and etcd cluster.
In-place and fast upgrade of Kubernetes
A version of CKE corresponds strictly to a single version of Kubernetes. Therefore, upgrading CKE will upgrade the managed Kubernetes.
Unlike kubeadm or similar tools, CKE can automatically upgrade its managed Kubernetes without draining nodes. The time taken for the upgrade is not proportional to the number of nodes, so it is very fast.
Graceful rebooting of nodes
CKE can reboot specified nodes gracefully using the Kubernetes eviction API.
Managed etcd cluster
CKE manages an etcd cluster for Kubernetes. Other applications may also store their data in the same etcd cluster.
Details are described in docs/etcd.md.
Certificate for admission webhooks
Admission webhooks are Kubernetes extension to validate or mutate API resources. Installing them requires some sort of self-signed X509 certificates.
CKE can become a certificate authority (CA) and issue certificates for these webhooks.
CKE automatically creates or updates Kubernetes API resources such as Deployments, Namespaces, or CronJobs that are defined by users. This feature helps users to automate Kubernetes cluster maintenance.
CKE can be integrated with sabakan, a service that automates physical server management, to generate cluster configuration automatically.
Sabakan is not a requirement; cluster configuration can be supplied externally by a YAML file.
To track problems and life-cycle events, CKE keeps operation logs in etcd.
This repository contains these programs:
cke: the service.
ckecli: CLI tool for
cke-localproxy: an optional service to run kube-proxy on the same host as CKE.
To see their usage, run them with
A demonstration of CKE running on docker is available at example directory.
docs directory contains tutorials and specifications.
Run CKE with docker
$ docker run -d --read-only \ --network host --name cke \ quay.io/cybozu/cke:1.18 [options...]
cke-localproxy to a host directory
$ docker run --rm -u root:root \ --entrypoint /usr/local/cke/install-tools \ --mount type=bind,src=DIR,target=/host \ quay.io/cybozu/cke:1.18
Docker images are available on Quay.io
Please report bugs / issues to GitHub issues.
Feel free to send your pull requests!
CKE is licensed under MIT license.