You are browsing a read-only backup copy of Wikitech. The live site can be found at wikitech.wikimedia.org
Kubernetes: Difference between revisions
imported>Alexandros Kosiaris No edit summary |
imported>Btullis (Moved Administration to a subpage and updated cluster information) |
||
(60 intermediate revisions by 22 users not shown) | |||
Line 1: | Line 1: | ||
{{Kubernetes nav}} | |||
:''For information about Kubernetes in the Toolforge environment see [[Help:Toolforge/Kubernetes]].'' | |||
'''[[w:Kubernetes|Kubernetes]]''' (often abbreviated '''k8s''') is an open-source system for automating deployment, and management of applications running in [[W:Operating-system-level virtualization|containers]]. This page collects some notes/docs on the Kubernetes setup in the Foundation production environment. | '''[[w:Kubernetes|Kubernetes]]''' (often abbreviated '''k8s''') is an open-source system for automating deployment, and management of applications running in [[W:Operating-system-level virtualization|containers]]. This page collects some notes/docs on the Kubernetes setup in the Foundation production environment. | ||
== | == Clusters == | ||
We maintain Kubernetes clusters in both the [[SRE/Production access|production]] and the [[Help:Cloud Services introduction|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 [[Kubernetes#Toolforge info|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 [[Deployment pipeline/Migration/Tutorial | Migrating a service to kubernetes]] and [[Deployment pipeline]] generally. | |||
== Deployment Charts == | |||
We use a git repository called [[gerrit:plugins/gitiles/operations/deployment-charts/+/refs/heads/master/|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 [[Kubernetes/Images#Services%20images|service images]] managed by the [[deployment pipeline]] | |||
* WMF forks of third-party software, also running on [[Kubernetes/Images#Services images|service images]] managed by the [[deployment pipeline]] | |||
* WMF builds of third-party software, running on [[Kubernetes/Images#Production images|production images]] and built with [https://doc.wikimedia.org/docker-pkg/ docker-pkg] | |||
See [[Kubernetes/Deployments]] for instructions regarding day-to-day deployment of Kubernetes [[Kubernetes#services|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: | |||
* [[Kubernetes/Administration#Rebooting worker nodes|Rebooting worker nodes]] | |||
* [[Kubernetes/Administration#Restarting%20specific%20components|Restarting specific components]] | |||
* [[Kubernetes/Administration#Managing pods, jobs and cronjobs|Managing pods, jobs, and, cronjobs]] | |||
=== See also === | |||
* [[Kubernetes/Clusters/New|Adding a new Kubernetes cluster]] | |||
* [[Kubernetes/Deployments|Deployments on Kubernetes]] | |||
* [[Kubernetes/Kubernetes Education|Kubernetes Education]] | |||
== | ==Toolforge Info== | ||
* [[Portal:Toolforge/Admin/Kubernetes|Toolforge Kubernetes cluster design and administration]] | *[[Portal:Toolforge/Admin/Kubernetes|Toolforge Kubernetes cluster design and administration]] | ||
* [[Help:Toolforge/Web|Toolforge Kubernetes webservice help]] | *[[Help:Toolforge/Web|Toolforge Kubernetes webservice help]] | ||
* [[Help:Toolforge/Kubernetes|Toolforge Kubernetes general help]] | *[[Help:Toolforge/Kubernetes|Toolforge Kubernetes general help]] | ||
[[Category:Kubernetes]] | [[Category:Kubernetes]] | ||
[[Category:SRE Service Operations]] |
Latest revision as of 17:09, 25 November 2022
- 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.
- 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: