You are browsing a read-only backup copy of Wikitech. The live site can be found at wikitech.wikimedia.org

Kubernetes

From Wikitech-static
Jump to navigation Jump to search
For information about Kubernetes in the Toolforge environment see Help:Toolforge/Kubernetes.

Kubernetes (often abbreviated k8s) is an open-source system for automating deployment, and management of applications running in containers. This page collects some notes/docs on the Kubernetes setup in the Foundation production environment.

Clusters

We maintain Kubernetes clusters in both the production and the cloud services realms.

Most of the information on this page and its subpages applies to the clusters in the production realm, although some techniques and tools are broadly applicable to other WMF clusters and Kubernetes in general.

The Kubernetes/Clusters page contains the definitive list of currently maintained clusters in the production realm, along with information about who manages them and each cluster's specific purpose.

For information relating to the Kubernetes clusters in the cloud services realm, please see Toolforge info.

Packages

We deploy kubernetes in WMF production using Debian packages where appropriate. There is an upgrade policy in place for defining the timeframe and versions we run at every point in time. It's under Kubernetes/Kubernetes_Infrastructure_upgrade_policy. For more technical information on how we build the Debian packages have a look at Kubernetes/Packages

Images

For how our images are built and maintained have a look at Kubernetes/Images

Services

A service in Kubernetes is an "abstract way to expose an application running on a set of workloads as a network service". That creates an overload of the term, as we also use the term "services" to describe how our various in-house developed applications are exposed to the rest of the infrastructure or the public. It's worthwhile to make sure one is on the same page as the other side when having a conversation around "services". Below there are some links to basic documentation about both concepts to help differentiate between them.

Deployment Charts

We use a git repository called operations/deployment-charts to manage all of the applications and deployments to Kubernetes clusters in the production realm.

See Kubernetes/Deployment Charts for more detailed information about the respository structure and its various functions.

It primarly contains Helm charts and Helmfile deployments.

The services and deployments that are defined within the repository are a combination of:

See Kubernetes/Deployments for instructions regarding day-to-day deployment of Kubernetes services.

Debugging

For a quick intro into the debugging actions one can take during a problem in production look at Kubernetes/Helm. There will also be a guide posted under Kubernetes/Kubectl

Administration

See Kubernetes/Administration for collected instructions and runbooks for such tasks as:

See also

Toolforge Info