Kubernetes

: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.
* https://kubernetes.io/docs/concepts/services-networking/service/
* Learn more about Migrating a service to kubernetes and Deployment pipeline generally.
== 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:
* WMF software, running on service images managed by the deployment pipeline
* WMF forks of third-party software, also running on service images managed by the deployment pipeline
* WMF builds of third-party software, running on production images and built with docker-pkg
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:
* Rebooting worker nodes
* Restarting specific components
* Managing pods, jobs, and, cronjobs
=== See also ===
* Adding a new Kubernetes cluster
* Deployments on Kubernetes
* Kubernetes Education
* Docker
==Toolforge Info==
*Toolforge Kubernetes cluster design and administration
*Toolforge Kubernetes webservice help
*Toolforge Kubernetes general help
Category:Kubernetes
Category:SRE Service Operations