Merge remote-tracking branch 'upstream/master'
This commit is contained in:
+3
-3
@@ -9,7 +9,7 @@ Herzlich willkommen! Dieses Repository enthält alle Assets, die zur Erstellung
|
||||
|
||||
Sie können auf die Schaltfläche **Fork** im oberen rechten Bereich des Bildschirms klicken, um eine Kopie dieses Repositorys in Ihrem GitHub-Konto zu erstellen. Diese Kopie wird als *Fork* bezeichnet. Nehmen Sie die gewünschten Änderungen an Ihrem Fork vor. Wenn Sie bereit sind, diese Änderungen an uns zu senden, gehen Sie zu Ihrem Fork und erstellen Sie eine neue Pull-Anforderung, um uns darüber zu informieren.
|
||||
|
||||
Sobald Ihre Pull-Anfrage erstellt wurde, übernimmt ein Rezensent von Kubernetes die Verantwortung für klares, umsetzbares Feedback. Als Eigentümer des Pull-Request **liegt es in Ihrer Verantwortung Ihren Pull-Reqest enstsprechend des Feedbacks, dass Sie vom Kubernetes-Reviewer erhalten haben abzuändern.** Beachten Sie auch, dass Sie am Ende mehr als einen Rezensenten von Kubernetes erhalten, der Ihnen Feedback gibt, oder dass Sie Rückmeldungen von einem Rezensenten von Kubernetes erhalten, der sich von demjenigen unterscheidet, der ursprünglich für das Feedback zugewiesen wurde. In einigen Fällen kann es vorkommen, dass einer Ihrer Prüfer bei Bedarf eine technische Überprüfung von einem [Kubernetes Techn-Reviewer] (https://github.com/kubernetes/website/wiki/tech-reviewers) anfordert. Reviewer geben ihr Bestes, um zeitnah Feedback zu geben, die Antwortzeiten können jedoch je nach den Umständen variieren.
|
||||
Sobald Ihre Pull-Anfrage erstellt wurde, übernimmt ein Rezensent von Kubernetes die Verantwortung für klares, umsetzbares Feedback. Als Eigentümer des Pull-Request **liegt es in Ihrer Verantwortung Ihren Pull-Reqest enstsprechend des Feedbacks, dass Sie vom Kubernetes-Reviewer erhalten haben abzuändern.** Beachten Sie auch, dass Sie am Ende mehr als einen Rezensenten von Kubernetes erhalten, der Ihnen Feedback gibt, oder dass Sie Rückmeldungen von einem Rezensenten von Kubernetes erhalten, der sich von demjenigen unterscheidet, der ursprünglich für das Feedback zugewiesen wurde. In einigen Fällen kann es vorkommen, dass einer Ihrer Prüfer bei Bedarf eine technische Überprüfung von einem [Kubernetes Tech-Reviewer](https://github.com/kubernetes/website/wiki/tech-reviewers) anfordert. Reviewer geben ihr Bestes, um zeitnah Feedback zu geben, die Antwortzeiten können jedoch je nach den Umständen variieren.
|
||||
|
||||
Weitere Informationen zum Beitrag zur Kubernetes-Dokumentation finden Sie unter:
|
||||
|
||||
@@ -23,7 +23,7 @@ Weitere Informationen zum Beitrag zur Kubernetes-Dokumentation finden Sie unter:
|
||||
|
||||
### Koreanisch
|
||||
|
||||
Lesen Sie die Übersetzung von `README.md` und detailliertere Anleitungen für koreanische Mitwirkende auf der Seite [Koreanischen README] (README-ko.md).
|
||||
Lesen Sie die Übersetzung von `README.md` und detailliertere Anleitungen für koreanische Mitwirkende auf der Seite [Koreanischen README](README-ko.md).
|
||||
|
||||
Sie können die Betreuer der koreanischen Lokalisierung erreichen unter:
|
||||
|
||||
@@ -76,7 +76,7 @@ Sie können die Betreuer dieses Projekts unter folgender Adresse erreichen:
|
||||
|
||||
### Verhaltensregeln
|
||||
|
||||
Die Teilnahme an der Kubernetes-Community unterliegt dem [Kubernetes-Verhaltenskodex] (code-of-conduct.md).
|
||||
Die Teilnahme an der Kubernetes-Community unterliegt dem [Kubernetes-Verhaltenskodex](code-of-conduct.md).
|
||||
|
||||
## Vielen Dank!
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: Kubernetes Blog
|
||||
linkTitle: Blog
|
||||
menu:
|
||||
main:
|
||||
title: "Blog"
|
||||
weight: 40
|
||||
post: >
|
||||
<p>Lesen Sie die neuesten Nachrichten über Kubernetes und das Containeruniversum im Allgemeinen. Erhalten Sie druckfrisch die neuesten Tutorials und technische Anleitungen.</p>
|
||||
---
|
||||
@@ -0,0 +1 @@
|
||||
Sie benötigen entweder einen dynamischen PersistentVolume-Anbieter mit einer [Standard-Speicherklasse](/docs/concepts/storage/storage-classes/), oder Sie selbst stellen statische [PersistentVolumes](/docs/user-guide/persistent-volumes/#provisioning) bereit, um die [PersistentVolumeClaims](/docs/user-guide/persistent-volumes/#persistentvolumeclaims) zu erfüllen, die hier verwendet werden.
|
||||
@@ -0,0 +1,5 @@
|
||||
Dieses Handbuch geht davon aus, dass Sie eine laufende Installation der Kubernetes Cluster Federation haben.
|
||||
Wenn nicht, dann besuchen Sie den [Federation Admin Guide](/docs/tutorials/federation/set-up-cluster-federation-kubefed/), um zu lernen, wie man
|
||||
eine Cluster Federation erstellen kann (oder dies von Ihrem Cluster Administrator für Sie übernehmen lassen).
|
||||
Andere Tutorials, wie z.B. Kelsey Hightowers [Federated Kubernetes Tutorial](https://github.com/kelseyhightower/kubernetes-cluster-federation),
|
||||
kann Ihnen auch helfen, einen Föderierten Kubernetes-Cluster zu erstellen.
|
||||
@@ -0,0 +1,3 @@
|
||||
Von der Verwendung von `Federation v1` wird dringend abgeraten. "Federation V1" hat nie den GA-Status erreicht und befindet sich nicht mehr in der aktiven Entwicklung. Die Dokumentation dient nur historischen Zwecken.
|
||||
|
||||
Weitere Informationen finden Sie in der beabsichtigten Ersetzung [Kubernetes Federation v2](https://github.com/kubernetes-sigs/federation-v2).
|
||||
@@ -0,0 +1,3 @@
|
||||
---
|
||||
headless: true
|
||||
---
|
||||
@@ -0,0 +1,12 @@
|
||||
|
||||
|
||||
<table style="background-color:#eeeeee">
|
||||
<tr>
|
||||
<td>
|
||||
<p><b>ACHTUNG</b></p>
|
||||
<p>Seit dem 14. März 2017 hat die Gruppe Kubernetes SIG-Docs-Maintainers mit der Migration des Benutzerhandbuch-Inhalts begonnen, wie bereits zuvor in der <a href="https://git.k8s.io/community/sig-docs">SIG Docs community</a> angekündigt. Dies wurde in der <a href="https://groups.google.com/forum/#!forum/kubernetes-sig-docs">kubernetes-sig-docs</a> Gruppe und im <a href="https://kubernetes.slack.com/messages/sig-docs/">kubernetes.slack.com #sig-docs</a> Kanal bekanntgegeben.</p>
|
||||
<p>Die Benutzerhandbücher in diesem Abschnitt werden in den Themen Tutorials, Aufgaben und Konzepte umgestaltet. Alles, was verschoben wurde, wird an seinem vorherigen Standort mit einer Benachrichtigung sowie einem Link zu seinem neuen Standort versehen. Die Reorganisation implementiert ein neues Inhaltsverzeichnis und sollte die Auffindbarkeit und Lesbarkeit der Dokumentation für ein breiteres Publikum verbessern.</p>
|
||||
<p>Bei Fragen wenden Sie sich bitte an: <a href="mailto:kubernetes-sig-docs@googlegroups.com">kubernetes-sig-docs@googlegroups.com</a></p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -0,0 +1,91 @@
|
||||
---
|
||||
title: Partner
|
||||
bigheader: Kubernetes Partner
|
||||
abstract: Entwicklung des Kubernetes-Ökosystems.
|
||||
class: gridPage
|
||||
cid: partners
|
||||
---
|
||||
|
||||
<section id="users">
|
||||
<main>
|
||||
<h5>Kubernetes arbeitet mit Partnern zusammen, um eine starke, dynamische Codebasis zu schaffen, die ein Spektrum von aufeinander abgestimmten Plattformen unterstützt.</h5>
|
||||
<div class="col-container">
|
||||
<div class="col-nav">
|
||||
<center>
|
||||
<h5>
|
||||
<b>Kubernetes zertifizierte Service Provider</b>
|
||||
</h5>
|
||||
<br>Geprüfte Service Provider mit großer Erfahrung, die Unternehmen bei der erfolgreichen Einführung von Kubernetes unterstützen.
|
||||
<br><br><br>
|
||||
<button id="kcsp" class="button" onClick="updateSrc(this.id)">KCSP-Partner anzeigen</button>
|
||||
<br><br>Interessiert daran, ein <a href="https://www.cncf.io/certification/kcsp/">KCSP</a> zu werden?
|
||||
</center>
|
||||
</div>
|
||||
<div class="col-nav">
|
||||
<center>
|
||||
<h5>
|
||||
<b>Kubernetes-Distributionen, gehostete Plattformen und zertifizierte Installateure</b>
|
||||
</h5>Software-Konformität stellt sicher, dass die Kubernetes-Versionen aller Hersteller die erforderlichen APIs unterstützen.
|
||||
<br><br><br>
|
||||
<button id="conformance" class="button" onClick="updateSrc(this.id)">Zertifizierte Partner anzeigen</button>
|
||||
<br><br>Interessiert daran, <a href="https://www.cncf.io/certification/software-conformance/">Kubernetes zertifiziert</a> zu werden?
|
||||
</center>
|
||||
</div>
|
||||
<div class="col-nav">
|
||||
<center>
|
||||
<h5><b>Kubernetes Training Partner</b></h5>
|
||||
<br>Geprüfte Schulungsanbieter, die über umfassende Erfahrung in Cloud Native Technologietrainings verfügen.
|
||||
<br><br><br><br>
|
||||
<button id="ktp" class="button" onClick="updateSrc(this.id)">KTP Partner anzeigen</button>
|
||||
<br><br>Interessiert daran, ein <a href="https://www.cncf.io/certification/training/">KTP</a> zu werden?
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
var defaultLink = "https://landscape.cncf.io/category=kubernetes-certified-service-provider&format=card-mode&grouping=category&embed=yes";
|
||||
var firstLink = "https://landscape.cncf.io/category=certified-kubernetes-distribution,certified-kubernetes-hosted,certified-kubernetes-installer&format=card-mode&grouping=category&embed=yes";
|
||||
var secondLink = "https://landscape.cncf.io/category=kubernetes-training-partner&format=card-mode&grouping=category&embed=yes";
|
||||
|
||||
function updateSrc(buttonId) {
|
||||
if (buttonId == "kcsp") {
|
||||
$("#landscape").attr("src",defaultLink);
|
||||
window.location.hash = "#kcsp";
|
||||
}
|
||||
if (buttonId == "conformance") {
|
||||
$("#landscape").attr("src",firstLink);
|
||||
window.location.hash = "#conformance";
|
||||
}
|
||||
if (buttonId == "ktp") {
|
||||
$("#landscape").attr("src",secondLink);
|
||||
window.location.hash = "#ktp";
|
||||
}
|
||||
}
|
||||
|
||||
// Automatically load the correct iframe based on the URL fragment
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var showContent = "kcsp";
|
||||
if (window.location.hash) {
|
||||
console.log('hash is:', window.location.hash.substring(1));
|
||||
showContent = window.location.hash.substring(1);
|
||||
}
|
||||
updateSrc(showContent);
|
||||
});
|
||||
</script>
|
||||
<body>
|
||||
<div id="frameHolder">
|
||||
<iframe id="landscape" frameBorder="0" scrolling="no" style="width: 1px; min-width: 100%" src=""></iframe>
|
||||
<script src="https://landscape.cncf.io/iframeResizer.js"></script>
|
||||
</div>
|
||||
</body>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<style>
|
||||
{{< include "partner-style.css" >}}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
{{< include "partner-script.js" >}}
|
||||
</script>
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
layout: blog
|
||||
title: 'Pod Priority and Preemption in Kubernetes'
|
||||
date: 2019-04-16
|
||||
---
|
||||
|
||||
**Author**: Bobby Salamat
|
||||
|
||||
Kubernetes is well-known for running scalable workloads. It scales your workloads based on their resource usage. When a workload is scaled up, more instances of the application get created. When the application is critical for your product, you want to make sure that these new instances are scheduled even when your cluster is under resource pressure. One obvious solution to this problem is to over-provision your cluster resources to have some amount of slack resources available for scale-up situations. This approach often works, but costs more as you would have to pay for the resources that are idle most of the time.
|
||||
|
||||
[Pod priority and preemption](https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/) is a scheduler feature made generally available in Kubernetes 1.14 that allows you to achieve high levels of scheduling confidence for your critical workloads without overprovisioning your clusters. It also provides a way to improve resource utilization in your clusters without sacrificing the reliability of your essential workloads.
|
||||
|
||||
## Guaranteed scheduling with controlled cost
|
||||
|
||||
[Kubernetes Cluster Autoscaler](https://kubernetes.io/docs/tasks/administer-cluster/cluster-management/#cluster-autoscaling) is an excellent tool in the ecosystem which adds more nodes to your cluster when your applications need them. However, cluster autoscaler has some limitations and may not work for all users:
|
||||
|
||||
- It does not work in physical clusters.
|
||||
- Adding more nodes to the cluster costs more.
|
||||
- Adding nodes is not instantaneous and could take minutes before those nodes become available for scheduling.
|
||||
|
||||
An alternative is Pod Priority and Preemption. In this approach, you combine multiple workloads in a single cluster. For example, you may run your CI/CD pipeline, ML workloads, and your critical service in the same cluster. When multiple workloads run in the same cluster, the size of your cluster is larger than a cluster that you would use to run only your critical service. If you give your critical service the highest priority and your CI/CD and ML workloads lower priority, when your service needs more computing resources, the scheduler preempts (evicts) enough pods of your lower priority workloads, e.g., ML workload, to allow all your higher priority pods to schedule.
|
||||
|
||||
With pod priority and preemption you can set a maximum size for your cluster in the Autoscaler configuration to ensure your costs get controlled without sacrificing availability of your service. Moreover, preemption is much faster than adding new nodes to the cluster. Within seconds your high priority pods are scheduled, which is critical for latency sensitive services.
|
||||
|
||||
## Improve cluster resource utilization
|
||||
|
||||
Cluster operators who run critical services learn over time a rough estimate of the number of nodes that they need in their clusters to achieve high service availability. The estimate is usually conservative. Such estimates take bursts of traffic into account to find the number of required nodes. Cluster autoscaler can be configured never to reduce the size of the cluster below this level. The only problem is that such estimates are often conservative and cluster resources may remain underutilized most of the time. Pod priority and preemption allows you to improve resource utilization significantly by running a non-critical workload in the cluster.
|
||||
|
||||
The non-critical workload may have many more pods that can fit in the cluster. If you give a negative priority to your non-critical workload, Cluster Autoscaler does not add more nodes to your cluster when the non-critical pods are pending. Therefore, you won’t incur higher expenses. When your critical workload requires more computing resources, the scheduler preempts non-critical pods and schedules critical ones.
|
||||
|
||||
The non-critical pods fill the “holes” in your cluster resources which improves resource utilization without raising your costs.
|
||||
|
||||
## Get Involved
|
||||
|
||||
If you have feedback for this feature or are interested in getting involved with the design and development, join the [Scheduling Special Interest Group](https://github.com/kubernetes/community/tree/master/sig-scheduling).
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
title: 'The Future of Cloud Providers in Kubernetes'
|
||||
date: 2019-04-17
|
||||
---
|
||||
|
||||
**Authors:** Andrew Sy Kim (VMware), Mike Crute (AWS), Walter Fender (Google)
|
||||
|
||||
Approximately 9 months ago, the Kubernetes community agreed to form the Cloud Provider Special Interest Group (SIG). The justification was to have a single governing SIG to own and shape the integration points between Kubernetes and the many cloud providers it supported. A lot has been in motion since then and we’re here to share with you what has been accomplished so far and what we hope to see in the future.
|
||||
|
||||
## The Mission
|
||||
|
||||
First and foremost, I want to share what the mission of the SIG is, because we use it to guide our present & future work. Taken straight from our [charter](https://github.com/kubernetes/community/blob/master/sig-cloud-provider/CHARTER.md), the mission of the SIG is to simplify, develop and maintain cloud provider integrations as extensions, or add-ons, to Kubernetes clusters. The motivation behind this is two-fold: to ensure Kubernetes remains extensible and cloud agnostic.
|
||||
|
||||
## The Current State of Cloud Providers
|
||||
|
||||
In order to gain a forward looking perspective to our work, I think it’s important to take a step back to look at the current state of cloud providers. Today, each core Kubernetes component (except the scheduler and kube-proxy) has a --cloud-provider flag you can configure to enable a set of functionalities that integrate with the underlying infrastructure provider, a.k.a the cloud provider. Enabling this integration unlocks a wide set of features for your clusters such as: node address & zone discovery, cloud load balancers for Services with Type=LoadBalancer, IP address management, and cluster networking via VPC routing tables. Today, the cloud provider integrations can be done either in-tree or out-of-tree.
|
||||
|
||||
## In-Tree & Out-of-Tree Providers
|
||||
|
||||
In-tree cloud providers are the providers we develop & release in the [main Kubernetes repository](https://github.com/kubernetes/kubernetes/tree/master/pkg/cloudprovider/providers). This results in embedding the knowledge and context of each cloud provider into most of the Kubernetes components. This enables more native integrations such as the kubelet requesting information about itself via a metadata service from the cloud provider.
|
||||
|
||||
<center>{{<figure width="600" src="/images/docs/pre-ccm-arch.png" caption="In-Tree Cloud Provider Architecture (source: kubernetes.io)">}}</center>
|
||||
|
||||
Out-of-tree cloud providers are providers that can be developed, built, and released independent of Kubernetes core. This requires deploying a new component called the cloud-controller-manager which is responsible for running all the cloud specific controllers that were previously run in the kube-controller-manager.
|
||||
|
||||
<center>{{<figure width="600" src="/images/docs/post-ccm-arch.png" caption="Out-of-Tree Cloud Provider Architecture (source: kubernetes.io)">}}</center>
|
||||
|
||||
|
||||
When cloud provider integrations were initially developed, they were developed natively (in-tree). We integrated each provider close to the core of Kubernetes and within the monolithic repository that is k8s.io/kubernetes today. As Kubernetes became more ubiquitous and more infrastructure providers wanted to support Kubernetes natively, we realized that this model was not going to scale. Each provider brings along a large set of dependencies which increases potential vulnerabilities in our code base and significantly increases the binary size of each component. In addition to this, more of the Kubernetes release notes started to focus on provider specific changes rather than core changes that impacted all Kubernetes users.
|
||||
|
||||
In late 2017, we developed a way for cloud providers to build integrations without adding them to the main Kubernetes tree (out-of-tree). This became the de-facto way for new infrastructure providers in the ecosystem to integrate with Kubernetes. Since then, we’ve been actively working towards migrating all cloud providers to use the out-of-tree architecture as most clusters today are still using the in-tree cloud providers.
|
||||
|
||||
## Looking Ahead
|
||||
|
||||
Looking ahead, the goal of the SIG is to remove all existing in-tree cloud providers in favor of their out-of-tree equivalents with minimal impact to users. In addition to the core cloud provider integration mentioned above, there are more extension points for cloud integrations like CSI and the image credential provider that are actively being worked on for v1.15. Getting to this point would mean that Kubernetes is truly cloud-agnostic with no native integrations for any cloud provider. By doing this work we empower each cloud provider to develop and release new versions at their own cadence independent of Kubernetes. We’ve learned by now that this is a large feat with a unique set of challenges. Migrating workloads is never easy, especially when it’s an essential part of the control plane. Providing a safe and easy migration path between in-tree and out-of-tree cloud providers is of the highest priority for our SIG in the upcoming releases. If any of this sounds interesting to you, I encourage you to check out of some of our [KEPs](https://github.com/kubernetes/enhancements/tree/master/keps/sig-cloud-provider) and get in touch with our SIG by joining the [mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-cloud-provider) or our slack channel (#sig-cloud-provider in Kubernetes slack).
|
||||
|
||||
@@ -110,6 +110,25 @@ The SIG Docs representative for a given release coordinates the following tasks:
|
||||
Coordinating a release is typically a 3-4 month commitment, and the duty is
|
||||
rotated among SIG Docs approvers.
|
||||
|
||||
## Serve as a New Contributor Ambassador
|
||||
|
||||
SIG Docs [approvers](/docs/contribute/participating/#approvers) can serve as
|
||||
New Contributor Ambassadors.
|
||||
|
||||
New Contributor Ambassadors work together to welcome new contributors to SIG-Docs,
|
||||
suggest PRs to new contributors, and mentor new contributors through their first
|
||||
few PR submissions.
|
||||
|
||||
Responsibilities for New Contributor Ambassadors include:
|
||||
|
||||
- Being available on the [Kubernetes #sig-docs channel](https://kubernetes.slack.com) to answer questions from new contributors.
|
||||
- Working with PR wranglers to identify good first issues for new contributors.
|
||||
- Mentoring new contributors through their first few PRs to the docs repo.
|
||||
- Helping new contributors create the more complex PRs they need to become Kubernetes members.
|
||||
- [Sponsoring contributors](/docs/contribute/advanced/#sponsor-a-new-contributor) on their path to becoming Kubernetes members.
|
||||
|
||||
Current New Contributor Ambassadors are announced at each SIG-Docs meeting, and in the [Kubernetes #sig-docs channel](https://kubernetes.slack.com).
|
||||
|
||||
## Sponsor a new contributor
|
||||
|
||||
SIG Docs [reviewers](/docs/contribute/participating/#reviewers) can sponsor
|
||||
|
||||
@@ -19,7 +19,7 @@ which makes it fast and easy to deploy. It supports various public
|
||||
and private clouds including AWS, GCE, Azure, Joyent, OpenStack, VMware, Bare Metal
|
||||
and localhost deployments.
|
||||
|
||||
See the [Official documentation](https://www.ubuntu.com/cloud/kubernetes/docs) for
|
||||
See the [Official documentation](https://www.ubuntu.com/kubernetes/docs) for
|
||||
more information.
|
||||
|
||||
## MicroK8s
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
---
|
||||
title: Conceptos
|
||||
main_menu: true
|
||||
content_template: templates/concept
|
||||
weight: 40
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
|
||||
La sección de conceptos te ayudará a conocer los componentes de Kubernetes así como las abstracciones que utiliza para representar tu cluster. Además, te ayudará a obtener un conocimiento más profundo sobre cómo funciona Kubernetes.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture body %}}
|
||||
|
||||
## Introducción
|
||||
|
||||
En Kubernetes se utilizan objetos *objetos de la API de Kubernetes* para describir el *estado deseado* del clúster: qué aplicaciones u otras cargas de trabajo se quieren ejecutar, qué imagenes de contendores usan, el número de replicas, qué red y qué recursos de almacenamiento quieres que tengan disponibles, etc. Se especifica el estado deseado del clúster mediante la creación de objetos usando la API de Kubernetes, típicamente mediante la interfaz de línea de comandos, `kubectl`. También se puede usar la API de Kubernetes directamente para interactuar con el clúster y especificar o modificar tu estado deseado.
|
||||
|
||||
Una vez que se especifica el estado deseado, el *Plano de Control de Kubernetes* realizará las acciones necesarias para que el estado actual del clúster coincida con el estado deseado. Para ello, Kubernetes realiza diferentes tareas de forma automática, como pueden ser: parar o arrancar contenedores, escalar el número de réplicas de una aplicación dada, etc. El Plano de Control de Kubernetes consiste en un grupo de procesos que corren en tu clúster:
|
||||
|
||||
* El **Master de Kubernetes** es un conjunto de tres procesos que se ejecutan en un único nodo del clúster, que se denomina nodo master. Estos procesos son: [kube-apiserver](/docs/admin/kube-apiserver/), [kube-controller-manager](/docs/admin/kube-controller-manager/) y [kube-scheduler](/docs/admin/kube-scheduler/).
|
||||
|
||||
* Los restantes nodos no master contenidos en tu clúster, ejecutan los siguientes dos procesos:
|
||||
* **[kubelet](/docs/admin/kubelet/)**, el cual se comunica con el Master de Kubernetes.
|
||||
* **[kube-proxy](/docs/admin/kube-proxy/)**, un proxy de red que implementa los servicios de red de Kubernetes en cada nodo.
|
||||
|
||||
## Objetos de Kubernetes
|
||||
|
||||
Kubernetes tiene diferentes abstracciones que representan el estado de tu sistema: aplicaciones contenerizadas desplegadas y cargas de trabajo, sus recursos de red y almacenamiento asociados e información adicional acerca de lo que el clúster está haciendo en un momento dado. Estas abstracciones están representadas por objetos de la API de Kubernetes. Puedes revisar [Entendiendo los Objetos de Kubernetes] (/docs/concepts/overview/working-with-objects/kubernetes-objects/) para obtener más detalles.
|
||||
|
||||
Los objetos básicos de Kubernetes incluyen:
|
||||
|
||||
* [Pod](/docs/concepts/workloads/pods/pod-overview/)
|
||||
* [Service](/docs/concepts/services-networking/service/)
|
||||
* [Volume](/docs/concepts/storage/volumes/)
|
||||
* [Namespace](/docs/concepts/overview/working-with-objects/namespaces/)
|
||||
|
||||
Además, Kubernetes contiene abstracciónes de nivel superior llamadas Controladores. Los Controladores se basan en los objetos básicos y proporcionan funcionalidades adicionales sobre ellos. Incluyen:
|
||||
|
||||
* [ReplicaSet](/docs/concepts/workloads/controllers/replicaset/)
|
||||
* [Deployment](/docs/concepts/workloads/controllers/deployment/)
|
||||
* [StatefulSet](/docs/concepts/workloads/controllers/statefulset/)
|
||||
* [DaemonSet](/docs/concepts/workloads/controllers/daemonset/)
|
||||
* [Job](/docs/concepts/workloads/controllers/jobs-run-to-completion/)
|
||||
|
||||
|
||||
## Plano de Control de Kubernetes
|
||||
|
||||
Los distintos componentes del Plano de Control de Kubernetes, tales como el Master de Kubernetes y el proceso kubelet, gobiernan cómo Kubernetes se comunica con el clúster. El Plano de Control mantiene un registro de todos los Objetos de Kubernetes presentes en el sistema y ejecuta continuos bucles de control para gestionar el estado de los mismos. En un momento dado, los bucles del Plano de Control responderán a los cambios que se realicen en el clúster y ejecutarán las acciones necesarias para hacer que el estado actual de todos los objetos del sistema converjan hacia el estado deseado que has proporcionado.
|
||||
|
||||
Por ejemplo, cuando usas la API de Kubernetes para crear un Deployment, estás proporcionando un nuevo estado deseado para el sistema. El Plano de Control de Kubernetes registra la creación del objeto y lleva a cabo tus instrucciones ejecutando las aplicaciones requeridas en los nodos del clúster, haciendo de esta manera que el estado actual coincida con el estado deseado.
|
||||
|
||||
### El Master de Kubernetes
|
||||
|
||||
El Master de Kubernetes es el responsable de mantener el estado deseado de tu clúster. Cuando interactuas con Kubernetes, como por ejemplo cuando utilizas la interfaz de línea de comandos `kubectl`, te estás comunicando con el master de tu clúster de Kubernetes.
|
||||
|
||||
> Por "master" entendemos la colección de procesos que gestionan el estado del clúster. Típicamente, estos procesos se ejecutan todos en un único nodo del clúster, y este nodo recibe por tanto la denominación de master. El master puede estar replicado por motivos de disponibilidad y redundancia.
|
||||
|
||||
### Kubernetes Nodes
|
||||
|
||||
En un clúster de Kubernetes, los nodos son las máquinas (máquinas virtuales, servidores físicos, etc) que ejecutan tus aplicaciones y flujos de trabajo en la nube. El master de Kubernetes controla cada nodo, por lo que en raras ocasiones interactuarás con los nodos directamente.
|
||||
|
||||
#### Metadatos de los Objectos
|
||||
|
||||
|
||||
* [Annotations](/docs/concepts/overview/working-with-objects/annotations/)
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture whatsnext %}}
|
||||
|
||||
Si estás interesado en escribir una página sobre conceptos,
|
||||
revisa [Usando Templates de Páginas](/docs/home/contribute/page-templates/)
|
||||
para obtener información sobre el tipo de página conceptos y la plantilla conceptos.
|
||||
|
||||
{{% /capture %}}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Arquitectura de Kubernetes"
|
||||
weight: 30
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Administración del Clúster"
|
||||
weight: 100
|
||||
---
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Configuración"
|
||||
weight: 80
|
||||
---
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Contenedores"
|
||||
weight: 40
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Extendiendo Kubernetes
|
||||
weight: 110
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Extendiendo la API de Kubernetes
|
||||
weight: 20
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Extensiones de computación, almacenamiento y redes
|
||||
weight: 30
|
||||
---
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Introducción"
|
||||
weight: 20
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Gestión de objetos usando kubectl"
|
||||
weight: 50
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Objetos de Kubernetes"
|
||||
weight: 40
|
||||
---
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Políticas"
|
||||
weight: 90
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Servicios, balanceo de carga y redes"
|
||||
weight: 60
|
||||
---
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Almacenamiento"
|
||||
weight: 70
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Cargas de trabajo"
|
||||
weight: 50
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Controladores"
|
||||
weight: 20
|
||||
---
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Pods"
|
||||
weight: 10
|
||||
---
|
||||
@@ -0,0 +1,85 @@
|
||||
---
|
||||
content_template: templates/concept
|
||||
title: Contribuir a la documentación de Kubernetes
|
||||
linktitle: Contribuir
|
||||
main_menu: true
|
||||
weight: 80
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
|
||||
Kubernetes es posible gracias a la participación de la comunidad y la
|
||||
documentación es vital para facilitar el acceso al proyecto.
|
||||
|
||||
Cualquiera puede contribuir en el proyecto de Kubernetes, tanto si acabas de
|
||||
descubrir la plataforma como si lleves años involucrado. Tampoco importa si
|
||||
eres desarrollador, usuario final o alguien que simplemente no soporta ver
|
||||
errores tipográficos. **¡Cualquier contribución será bien recibida!**
|
||||
|
||||
Para conocer más formas de involucrarse en la comunidad de Kubernetes o de
|
||||
aprender sobre nosotros, visite la sección [comunidad de Kubernetes](/community/).
|
||||
|
||||
Para obtener información cómo escribir documentación de Kubernetes,
|
||||
consulte la [guía de estilo](/docs/contribute/style/style-guide/).
|
||||
|
||||
{{% capture body %}}
|
||||
|
||||
## Tipos de contribuidores
|
||||
|
||||
- _**Kubernetes Member**_, un miembro de la organziación de Kubernetes que ha
|
||||
[firmado el CLA](/docs/contribute/start#sign-the-cla) y contribuido al projecto.
|
||||
Puedes consultar más información en el documento sobre los requisitos para ser
|
||||
miembro de Kubernetes en el documento _[Community membership](https://github.com/kubernetes/community/blob/master/community-membership.md)_.
|
||||
|
||||
- _**SIG Docs reviewer**_, un revisor del grupo de interés de documentación es
|
||||
un miembro de la organización Kubernetes que tiene interés en revisar las
|
||||
_pull requests_ relacionadas con el site y la documentación. Para poder ser
|
||||
revisor, un aprobador de SIG Docs debe añadirlo al grupo adecuado de GitHub y
|
||||
al fichero `OWNERS` del contenido que está interesado en revisar.
|
||||
|
||||
- _**SIG Docs approver**_, un aprobador del grupo de interés de documentación
|
||||
es un miembro de la organización de Kubernetes con buena reputación y que ha
|
||||
mostrado una compromiso continuado con el proyecto.
|
||||
Un aprobador se responsabiliza de mergear las _pull requests_ y publicar
|
||||
contenido en nombre de la organización Kubernetes. Los aprobadores también
|
||||
pueden representar a SIG Docs en la comunidad de Kubernetes en general.
|
||||
Algunas de las responsabilidades de un aprobador de SIG Docs, como por ejemplo
|
||||
coordinar una _release_, requieren un compromiso de tiempo significativo.
|
||||
|
||||
## Cómo contribuir
|
||||
|
||||
La siguiente lista está organizada por el nivel de implicación con la comunidad,
|
||||
desde las contribuciones que cualquiera puede hacer hasta las que requieren un
|
||||
compromiso con el equipo de documentación y estar familiarizado con los procesos
|
||||
de SIG Docs. Contribuir consistentemente a lo largo del tiempo puede ayudarte a
|
||||
comprender algunas de las herramientas y decisiones organizativas que se han ido
|
||||
tomando a lo largo del proyecto.
|
||||
|
||||
La lista no contiene todas las formas de contribución posibles, está pensada
|
||||
para proporcionar un punto de partida.
|
||||
|
||||
- [Todo el mundo](/docs/contribute/start/)
|
||||
- Abrir issues accionables para que el equipo pueda trabajar en ello
|
||||
- [Miembro](/docs/contribute/start/)
|
||||
- Mejorar la documetanción existente
|
||||
- Proponer ideas de mejora en [Slack](http://slack.k8s.io/) o en [SIG docs mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
- Mejorar la accesibilidad de la documentación
|
||||
- Proporcionar comentarios no vinculantes sobre PRs
|
||||
- Escribir una entrada para el blog o un caso de estudio
|
||||
- [Revisor](/docs/contribute/intermediate/)
|
||||
- Documentar nuevas funcionalidades
|
||||
- Selección y clasificacion de nuevos Issues
|
||||
- Revisar PRs
|
||||
- Crear diagramas, material gráfico y screencasts / videos
|
||||
- Localización del contenido
|
||||
- Contribuye a otros repos como representante del equipo de documentación
|
||||
- Edit user-facing strings in code
|
||||
- Mejorar los comentarios de código, Godoc
|
||||
- [Aprobador](/docs/contribute/advanced/)
|
||||
- Publicar el contenido de colaboradores aprobando y mergeando las PRs
|
||||
- Participar en el equipo de Release de Kubernetes como representeante del equipo de Docs
|
||||
- Proponer mejoras a la guía de estilo
|
||||
- Proponer mejoras a los tests de la documentación
|
||||
- Proponer mejoras al sitio web de Kubernetes y otras herramientas
|
||||
|
||||
{{% /capture %}}
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: Documentación de referencia
|
||||
main_menu: true
|
||||
weight: 80
|
||||
---
|
||||
|
||||
Gran parte de la documentación de referencia de **Kubernetes** se genera a
|
||||
partir del propio **código fuente de Kubernetes** utilizando scripts.
|
||||
|
||||
Los temas de esta sección documentan cómo generar este tipo de contenido.
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
title: Cómo escribir documentación
|
||||
main_menu: true
|
||||
weight: 80
|
||||
---
|
||||
|
||||
Los temas de esta sección proporcionan información sobre como **escribir**,
|
||||
**formatear** y **organizar** el contenido de la documentación de Kubernetes.
|
||||
|
||||
También se explican las funciones, templates, variables y otras configuraciones
|
||||
de **[Hugo](https://gohugo.io/)** utilizadas para generar y dar formato a
|
||||
[kubernetes.io](https://kubernetes.io).
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Guías de iniciación
|
||||
weight: 50
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Fedora
|
||||
weight: 60
|
||||
---
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
title: Documentación de Kubernetes
|
||||
noedit: true
|
||||
cid: docsHome
|
||||
layout: docsportal_home
|
||||
class: gridPage
|
||||
linkTitle: "Home"
|
||||
main_menu: true
|
||||
weight: 10
|
||||
hide_feedback: true
|
||||
menu:
|
||||
main:
|
||||
title: "Documentación"
|
||||
weight: 20
|
||||
post: >
|
||||
<p>Aprenda cómo usar Kubernetes con la documentación, los tutoriales y revisando la información de referencia. También puedes <a href="/editdocs/" data-auto-burger-exclude>contribuir con la documentación</a>!</p>
|
||||
overview: >
|
||||
Kubernetes es una plataforma de código abierto para automatizar la implementación, el escalado y la administración de aplicaciones en contenedores.
|
||||
El proyecto está amparado por la Cloud Native Computing Foundation (<a href="https://www.cncf.io/about">CNCF</a>).
|
||||
cards:
|
||||
- name: concepts
|
||||
title: Entiende los conceptos básicos
|
||||
description: Aprender sobre Kubernetes y sus conceptos fundamentales.
|
||||
button: Aprender conceptos
|
||||
button_path: "/docs/concepts"
|
||||
- name: tutorials
|
||||
title: Prueba Kubernetes
|
||||
description: Sigue los tutoriales para aprender a implementar aplicaciones en Kubernetes.
|
||||
button: Ver tutoriales
|
||||
button_path: "/docs/tutorials"
|
||||
- name: setup
|
||||
title: Configura un clúster
|
||||
description: Configura un clúster de Kubernetes en función de sus recursos y necesidades.
|
||||
button: Configurar Kubernetes
|
||||
button_path: "/docs/setup"
|
||||
- name: tasks
|
||||
title: Aprenda a usar Kubernetes
|
||||
description: Busca tareas comunes y aprende cómo llevarlas a cabo siguiendo un procedimiento.
|
||||
button: Ver tareas
|
||||
button_path: "/docs/tasks"
|
||||
- name: reference
|
||||
title: Busque información de referencia
|
||||
description: Examine la terminología, la sintaxis de la línea de comandos, los tipos de recursos API y la documentación de las herramientas de configuración.
|
||||
button: Ver información de referencia
|
||||
button_path: /docs/reference
|
||||
- name: contribute
|
||||
title: Contribuye a la documentación
|
||||
description: Cualquiera puede contribuir, ya sea nuevo en el proyecto o si lleva tiempo participando.
|
||||
button: Contribuir
|
||||
button_path: /docs/contribute
|
||||
- name: download
|
||||
title: Descargar Kubernetes
|
||||
description: Si está instalando Kubernetes o está actualizando a la versión más reciente, consulte las notas de la versión actual.
|
||||
- name: about
|
||||
title: Sobre la documentacion
|
||||
description: Este sitio web contiene documentación para las 4 versiones actuales y anteriores de Kubernetes. La documentación en castellano está en progreso y, por ese motivo, muchas de las páginas llevan a la versión inglesa.
|
||||
---
|
||||
@@ -0,0 +1,64 @@
|
||||
---
|
||||
title: Referencia
|
||||
approvers:
|
||||
- raelga
|
||||
linkTitle: "Referencia"
|
||||
main_menu: true
|
||||
weight: 70
|
||||
content_template: templates/concept
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
|
||||
Esta sección de la documentación de Kubernetes contiene información de referencia.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture body %}}
|
||||
|
||||
## Información de referencia sobre la API
|
||||
|
||||
* [Descripción general de la API de Kubernetes](/docs/reference/using-api/api-overview/)
|
||||
* Documentación de referencia de las últimas versiones de la API de Kubernetes:
|
||||
* [1.14](/docs/reference/generated/kubernetes-api/v1.14/)
|
||||
* [1.13](/docs/reference/generated/kubernetes-api/v1.13/)
|
||||
* [1.12](/docs/reference/generated/kubernetes-api/v1.12/)
|
||||
* [1.11](/docs/reference/generated/kubernetes-api/v1.11/)
|
||||
* [1.10](/docs/reference/generated/kubernetes-api/v1.10/)
|
||||
|
||||
## Librerías de cliente para la API
|
||||
|
||||
Para llamar a la API de Kubernetes desde un lenguaje de programación, puedes usar
|
||||
[librerías de cliente](/docs/reference/using-api/client-libraries/).
|
||||
|
||||
En estos momento, las librerías con soporte oficial son:
|
||||
|
||||
- [Kubernetes Go client library](https://github.com/kubernetes/client-go/)
|
||||
- [Kubernetes Python client library](https://github.com/kubernetes-client/python)
|
||||
- [Kubernetes Java client library](https://github.com/kubernetes-client/java)
|
||||
- [Kubernetes JavaScript client library](https://github.com/kubernetes-client/javascript)
|
||||
|
||||
## Información de referencia sobre la CLI
|
||||
|
||||
* [kubectl](/docs/user-guide/kubectl-overview) - Utilidad CLI para ejecutar comandos y administrar clústeres de Kubernetes.
|
||||
* [JSONPath](/docs/user-guide/jsonpath/) - Guía de sintaxis para el uso de [expresiones JSONPath](http://goessner.net/articles/JsonPath/) con kubectl.
|
||||
* [kubeadm](/docs/admin/kubeadm/) - Utilidad CLI para aprovisionar fácilmente un clústeres Kubernetes seguro.
|
||||
* [kubefed](/docs/admin/kubefed/) - Utilidad CLI para ayudarte a administrar tus clústeres federados.
|
||||
|
||||
## Información de referencia sobre la configuración
|
||||
|
||||
* [kubelet](/docs/admin/kubelet/) - El principal *agente* que se ejecuta en cada nodo. El kubelet toma un conjunto de PodSpecs y asegura que los contenedores descritos estén funcionando y en buen estado.
|
||||
* [kube-apiserver](/docs/admin/kube-apiserver/) - API REST que valida y configura datos para objetos API como pods, servicios, controladores de replicación, ...
|
||||
* [kube-controller-manager](/docs/admin/kube-controller-manager/) - Demonio que integra los bucles de control enviados con Kubernetes.
|
||||
* [kube-proxy](/docs/admin/kube-proxy/) - Puede hacer fowarding simple o con round-robin de TCP/UDP a través de un conjunto de back-ends.
|
||||
* [kube-scheduler](/docs/admin/kube-scheduler/) - Planificador que gestiona la disponibilidad, el rendimiento y la capacidad.
|
||||
* [federation-apiserver](/docs/admin/federation-apiserver/) - Servidor API para clusters federados.
|
||||
* [federation-controller-manager](/docs/admin/federation-controller-manager/) - Demonio que integra los bucles de control enviados con la federación Kubernetes.
|
||||
|
||||
## Documentos de diseño
|
||||
|
||||
Un archivo de los documentos de diseño para la funcionalidad de Kubernetes.
|
||||
|
||||
Puedes empezar por [Arquitectura de Kubernetes](https://git.k8s.io/community/contributors/design-proposals/architecture/architecture.md) y [Vista general del diseño de Kubernetes](https://git.k8s.io/community/contributors/design-proposals).
|
||||
|
||||
{{% /capture %}}
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: Accediendo a la API de Kubernetes
|
||||
weight: 25
|
||||
toc-hide: true
|
||||
---
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: Herramientas de línea de comandos
|
||||
weight: 60
|
||||
toc-hide: true
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Federation API
|
||||
weight: 70
|
||||
---
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
---
|
||||
title: Glosario de términos
|
||||
layout: glossary
|
||||
noedit: true
|
||||
default_active_tag: fundamental
|
||||
weight: 5
|
||||
card:
|
||||
name: reference
|
||||
weight: 10
|
||||
title: Glosario
|
||||
---
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: Reportando problemas en Kubernetes
|
||||
weight: 35
|
||||
toc-hide: true
|
||||
---
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "kubectl CLI"
|
||||
weight: 10
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Kubernetes API
|
||||
weight: 20
|
||||
---
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: v1.14
|
||||
---
|
||||
|
||||
[Kubernetes API v1.14](/docs/reference/generated/kubernetes-api/v1.14/)
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: Herramientas de configuración
|
||||
weight: 50
|
||||
toc-hide: true
|
||||
---
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: "kubeadm"
|
||||
weight: 10
|
||||
toc-hide: true
|
||||
---
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: "kubeadm (auto-generado)"
|
||||
weight: 10
|
||||
toc_hide: true
|
||||
---
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: kubefed
|
||||
weight: 20
|
||||
toc-hide: true
|
||||
---
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: Utilizando la API de Kubernetes
|
||||
weight: 20
|
||||
toc-hide: true
|
||||
---
|
||||
@@ -0,0 +1,102 @@
|
||||
---
|
||||
no_issue: true
|
||||
title: Setup
|
||||
main_menu: true
|
||||
weight: 30
|
||||
content_template: templates/concept
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
|
||||
En esta sección encontrarás toda la información necesaria para poder identificar
|
||||
**la solución que mejor se adapta a tus necesidades**.
|
||||
|
||||
Decidir dónde ejecutar Kubernetes depende principalmente de los recursos que
|
||||
tengas disponibles, de las características del clúster y de cuánta flexibilidad
|
||||
necesites.
|
||||
|
||||
Puedes ejecutar Kubernetes casi en cualquier lugar, desde su ordenador portátil
|
||||
a máquinas virtuales en la nube o en un rack de servidores físicos on-premises.
|
||||
|
||||
Puedes configurar un clúster totalmente gestionado ejecutando un solo comando,
|
||||
desplegar una solución parcialmente automatizada que te ofrezca un poco más de
|
||||
control o directamente crear tu propio clúster de forma completamente manual
|
||||
personalizando y controlando cada componente.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture body %}}
|
||||
|
||||
## Soluciones para la máquina en local
|
||||
|
||||
Una solución para la máquina en local es la forma más sencilla de empezar a
|
||||
utilizar Kubernetes. Puedes crear y probar clústeres de Kubernetes sin tener
|
||||
que preocuparte por consumir recursos en el cloud ni disponer de conectividad.
|
||||
|
||||
Deberías elegir una solución de este tipo si buscas:
|
||||
|
||||
* Probar o empezar a aprender sobre Kubernetes.
|
||||
* Desarrollar y testear clústeres localmente.
|
||||
|
||||
Elige una [solución de máquina local](/docs/setup/pick-right-solution/#local-machine-solutions).
|
||||
|
||||
## Soluciones gestionadas
|
||||
|
||||
Una solución gestionada es la forma más conveniente de crear y gestionar un
|
||||
clúster de Kubernetes. El proveedor gestiona y opera los clústeres completamente
|
||||
por lo que tú no has de preocuparte de nada.
|
||||
|
||||
Deberías elegir una solución de este tipo si:
|
||||
|
||||
* Quieres una solución totalmente gestionada.
|
||||
* Quieres centrarte en desarrollar tus aplicaciones o servicios.
|
||||
* No tienes un equipo dedicado de operaciones pero quieres alta disponibilidad.
|
||||
* No tienes recursos para alojar y monitorizar sus clústeres.
|
||||
|
||||
Elige una [solución gestionada](/docs/setup/pick-right-solution/#hosted-solutions).
|
||||
|
||||
## Soluciones sobre IaaS en la nube
|
||||
|
||||
Un solución sobre IaaS en la nube permite crear clústeres Kubernetes con solo
|
||||
unos pocos comandos, se encuentran en desarrollo activo, tienen el apoyo de la
|
||||
comunidad y algunas de ellas forman parte del proyecto Kubernetes.
|
||||
Se pueden desplegar en la infaestructura como servicio (IaaS) proporcionada por
|
||||
los proveedores en la nube y ofrecen más flexibilidad que las soluciones
|
||||
gestionadas, pero requieren más conocimientos para ponerlos en marcha y más
|
||||
esfuerzo para operarlos.
|
||||
|
||||
Deberías elegir una solución de este tipo si:
|
||||
|
||||
* Necesitas más control que el permitido en las soluciones gestionadas.
|
||||
* Quieres responsabilizarte de la operativa de los clústeres.
|
||||
|
||||
Elige una [solución sobre IaaS en la nube](/docs/setup/pick-right-solution/#turnkey-cloud-solutions)
|
||||
|
||||
## Soluciones sobre virtualización On-Premises
|
||||
|
||||
Una solución sobre virtualización sobre on-premises permite crear clústeres y
|
||||
operarlos de forma segura en tú nube privada con solo unos pocos comandos.
|
||||
|
||||
Deberías elegir una solución de este tipo si:
|
||||
|
||||
* Quieres desplegar clústeres en su nube privada dentro de tú red.
|
||||
* Tienes un equipo de operaciones para desplegar y operar el clúster.
|
||||
* Tienes los recursos necesarios para ejecutar y monitorizar el clúster.
|
||||
|
||||
Elige una [solución sobre virtualización On-Premises](/docs/setup/pick-right-solution/#on-premises-turnkey-cloud-solutions).
|
||||
|
||||
## Soluciones personalizadas
|
||||
|
||||
Una solución personalizadas proporciona total libertad sobre los clústeres
|
||||
pero requiere mucho más conocimiento y experiencia. Este tipo de soluciones se
|
||||
pueden desplegar tanto en servidores físicos (_bare-metal_) como en instancias
|
||||
virtualizadas con diferentes sistemas operativos, en on-premises o en el cloud.
|
||||
|
||||
Selecciona una [solución personalizada](/docs/setup/pick-right-solution/#custom-solutions).
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture whatsnext %}}
|
||||
Para una lista completa de soluciones, consulta la sección
|
||||
[Escoge la solución correcta](/docs/setup/pick-right-solution/).
|
||||
{{% /capture %}}
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Soluciones personalizadas
|
||||
weight: 50
|
||||
---
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Desplegando un clúster con kubeadm
|
||||
weight: 30
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Soluciones sobre virtualización On-Premises
|
||||
weight: 45
|
||||
---
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Descargando Kubernetes
|
||||
weight: 20
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Soluciones sobre IaaS en la nube
|
||||
weight: 40
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Kubernetes sobre Windows
|
||||
weight: 65
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Acceder al clúster y las aplicaciones
|
||||
weight: 60
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Extender la API de Kubernetes
|
||||
weight: 90
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Usar recursos personalizados
|
||||
weight: 10
|
||||
---
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Administrar un clúster
|
||||
weight: 20
|
||||
---
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: Administrar un clúster con kubeadm
|
||||
weight: 10
|
||||
---
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Administrar recursos de memoria, CPU y API
|
||||
weight: 20
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Instalar un proveedor de políticas de red
|
||||
weight: 30
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Configurar pods y contenedores
|
||||
weight: 20
|
||||
---
|
||||
@@ -1,5 +1,4 @@
|
||||
---
|
||||
title: "Monitoring, Logging, and Debugging"
|
||||
title: "Monitorización, Logs y Debugging"
|
||||
weight: 80
|
||||
---
|
||||
|
||||
---
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Federación
|
||||
weight: 120
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Administrar la federación de clústeres
|
||||
weight: 160
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Inyectar datos en las aplicaciones
|
||||
weight: 30
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Gestionar y ejecutar trabajos
|
||||
weight: 50
|
||||
---
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Gestionar y ejecutar demonios
|
||||
weight: 45
|
||||
---
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Gestionar y ejecutar aplicaciones
|
||||
weight: 40
|
||||
---
|
||||
@@ -0,0 +1,230 @@
|
||||
---
|
||||
title: Especificando un presupuesto de disrupción para tu aplicación
|
||||
content_template: templates/task
|
||||
weight: 110
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
|
||||
Ésta pagina enseña como limitar el numero de disrupciones concurrentes que afectan a tu aplicación definiendo presupuestos de disrupción de pods, Pod Disruption Budgets (PDB) en inglés. Estos presupuestos definen el mínimo número de pods que deben estar ejecutándose en todo momento para asegurar la disponibilidad de la aplicación durante operaciones de mantenimiento efectuadas sobre los nodos por los administradores del cluster.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture prerequisites %}}
|
||||
* Tener permisos de administrador sobre la aplicación que esta corriendo en Kubernetes y requiere alta disponibilidad
|
||||
* Deberías saber como desplegar [Múltiples réplicas de aplicaciones stateless](/docs/tasks/run-application/run-stateless-application-deployment/)
|
||||
y/o [Múltiples réplicas de aplicaciones stateful](/docs/tasks/run-application/run-replicated-stateful-application/).
|
||||
* Deberías haber leido acerca de [Disrupciones de un Pod](/docs/concepts/workloads/pods/disruptions/).
|
||||
* Deberías confirmar con el propietario del cluster o proveedor de servicio que respetan Presupuestos de Disrupción para Pods.
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture steps %}}
|
||||
|
||||
## Protegiendo una aplicación con un PodDisruptionBudget
|
||||
|
||||
1. Identifica la aplicación que quieres proteger con un PodDisruptionBudget (PDB).
|
||||
2. Revisa como afectan las disrupciones a tú aplicación.
|
||||
3. Crea un PDB usando un archivo YAML.
|
||||
4. Crea el objecto PDB desde el archivo YAML.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture discussion %}}
|
||||
|
||||
## Identifica la applicación que quieres proteger
|
||||
|
||||
El caso más común es proteger aplicaciones que usan uno de los controladores incorporados
|
||||
en Kubernetes:
|
||||
|
||||
- Deployment
|
||||
- Replicationcontrolador
|
||||
- ReplicaSet
|
||||
- StatefulSet
|
||||
|
||||
En este caso, toma nota del `.spec.selector` que utiliza el controlador; el mismo se utilizará en el `spec.selector` del PDB.
|
||||
|
||||
También puedes utilizar PDBs para proteger pods que no estan gestionados por uno de los controladores listados arriba, o agrupaciones arbitrarias de pods, con algunas restricciones descritas en [Controladores Arbitrarios y Selectors](#arbitrary-controladores-and-selectors).
|
||||
|
||||
|
||||
## Revisa como afectan las disrupciones a tú aplicación
|
||||
|
||||
Decide cuántas instancias de tu aplicación pueden estar fuera de servicio al mismo
|
||||
tiempo debido a disrupciones voluntarias de corto plazo.
|
||||
|
||||
- Frontend stateless:
|
||||
- Objetivo: evitar reducir capacidad para servir por mas de 10%.
|
||||
- Solución: usar un PDB que especifica minAvailable 90%.
|
||||
- Aplicación Stateful con una sola instancia:
|
||||
- Objetivo: no terminar esta aplicación sin primero confirmar conmigo.
|
||||
- Posible Solución 1: No usar un PDB y tolerar inactividad ocasional.
|
||||
- Posible Solución 2: Crea un PDB con maxUnavailable=0. Entiende que el operador del cluster debe consultar contigo antes de terminar tu aplicación. Cuando el operador te contacte, prepara tu aplicación para downtime y elimina el PDB para indicar que estas preparado para la disrupción. Crea el PDB de nuevo al terminar la disrupción.
|
||||
- Aplicación Stateful con múltiples instancias como Consul, ZooKeeper, etcd, Redis o MySQL:
|
||||
- Objetivo: no reducir el numero de instancias por debajo del quorum, de lo contrario, las escrituras fallarían.
|
||||
- Posible Solución 1: fijar maxUnavailable a 1 (funciona con diferentes escalas de aplicación).
|
||||
- Posible Solución 2: fijar minAvailable al tamaño del quorum (e.g. 3 cuando hay un total de 5 instancias). (Permite mas disrupciones a la vez.).
|
||||
- Trabajos por lote reiniciables:
|
||||
- Objetivo: El trabajo debe completarse en caso de una interrupción voluntaria.
|
||||
- Posible solución: No cree un PDB. El controlador de Jobs creará un pod de reemplazo.
|
||||
|
||||
## Especificando un PodDisruptionBudget
|
||||
|
||||
Un `PodDisruptionBudget` tiene tres atributos:
|
||||
|
||||
* Un label selector `.spec.selector` para especificar el grupo de
|
||||
pods donde aplicar el presupuesto. Este campo es requerido.
|
||||
* `.spec.minAvailable` que es una descripción del número de pods del grupo que deben estar disponibles después del desalojo, incluso en ausencia del pod desalojado. `minAvailable` puede ser un número absoluto o un porcentaje.
|
||||
* `.spec.maxUnavailable` (disponible en Kubernetes 1.7 y superior) que es una descripción
|
||||
del numero de pods del grupo que pueden estar indisponibles despues del desalojo. Puede ser un número absoluto o un porcentaje.
|
||||
|
||||
{{< note >}}
|
||||
Para las versiones 1.8 y anteriores: al crear un `PodDisruptionBudget`
|
||||
utilizando la herramienta de línea de comandos `kubectl`, el campo `minAvailable` es 1 por defecto si no se especifica `minAvailable` ni `maxUnavailable`.
|
||||
{{< /note >}}
|
||||
|
||||
Puedes especificar únicamente un valor para `maxUnavailable` y `minAvailable` por `PodDisruptionBudget`.
|
||||
`maxUnavailable` solo se puede usar para controlar el desalojo de pods
|
||||
que tienen un controlador asociado manejándolos. En los ejemplos a continuación, "réplicas deseadas"
|
||||
hace referencia al valor 'scale' del controlador que gestiona el grupo de pods seleccionados por el
|
||||
`PodDisruptionBudget`.
|
||||
|
||||
Ejemplo 1: Con un `minAvailable` de 5, se permiten los desalojos siempre que dejen
|
||||
5 o más pods disponibles entre las seleccionadas por el `selector` del PodDisruptionBudget.
|
||||
|
||||
Ejemplo 2: Con un `minAvailable` del 30%, se permiten los desalojos mientras que al menos 30% de la cantidad de réplicas se mantengan disponibles.
|
||||
|
||||
Ejemplo 3: Con un `maxUnavailable` de 5, se permiten desalojos siempre que haya como máximo 5
|
||||
réplicas indisponibles entre el número total de réplicas deseadas.
|
||||
|
||||
Ejemplo 4: Con un `maxUnavailable` de 30%, se permiten los desalojos siempre y cuando no más del 30%
|
||||
de las réplicas esten indisponibles.
|
||||
|
||||
En el uso típico, se usaría un solo presupuesto para una colección de pods administrados por
|
||||
un controlador, por ejemplo, los pods en un solo ReplicaSet o StatefulSet.
|
||||
|
||||
{{< note >}}
|
||||
Un presupuesto de disrupción no garantiza que el número/porcentaje de pods especificado
|
||||
siempre estarán disponibles. Por ejemplo, un nodo que alberga un
|
||||
pod del grupo puede fallar cuando el grupo está en el tamaño mínimo
|
||||
especificados en el presupuesto, lo que hace que el número de pods disponibles este por debajo del tamaño especificado. El presupuesto solo puede proteger contra
|
||||
desalojos voluntarios, pero no todas las causas de indisponibilidad.
|
||||
{{< /note >}}
|
||||
|
||||
Un `maxUnavailable` de 0% (o 0) o un `minAvailable` de 100% (o igual al
|
||||
número de réplicas) puede prevenir que los nodos sean purgados completamente.
|
||||
Esto está permitido según la semántica de `PodDisruptionBudget`.
|
||||
|
||||
Puedes encontrar ejemplos de presupuestos de disrupción de pods definidas a continuación. Los ejemplos aplican al grupo de pods que tienen la etiqueta `app: zookeeper`.
|
||||
|
||||
Ejemplo de PDB usando minAvailable:
|
||||
|
||||
```yaml
|
||||
apiVersion: policy/v1beta1
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: zk-pdb
|
||||
spec:
|
||||
minAvailable: 2
|
||||
selector:
|
||||
matchLabels:
|
||||
app: zookeeper
|
||||
```
|
||||
|
||||
Ejemplo de PDB usando maxUnavailable (Kubernetes 1.7 o superior):
|
||||
|
||||
```yaml
|
||||
apiVersion: policy/v1beta1
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: zk-pdb
|
||||
spec:
|
||||
maxUnavailable: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: zookeeper
|
||||
```
|
||||
|
||||
Por ejemplo, si el objeto anterior `zk-pdb` selecciona los pods de un StatefulSet de tamaño 3, ambas
|
||||
especificaciones tienen el mismo significado exacto. Se recomienda el uso de `maxUnavailable` ya que
|
||||
responde automáticamente a los cambios en el número de réplicas del controlador correspondiente.
|
||||
|
||||
## Crea el objeto PDB
|
||||
|
||||
Puedes crear el objeto PDB con el comando `kubectl apply -f mypdb.yaml`.
|
||||
|
||||
No puedes actualizar objetos PDB. Deben ser eliminados y recreados.
|
||||
|
||||
## Comprueba el estado del PDB
|
||||
|
||||
Utiliza kubectl para comprobar que se ha creado tu PDB.
|
||||
|
||||
Suponiendo que en realidad no tengas pods que coincidan con `app: zookeeper` en su namespace,
|
||||
entonces verás algo como esto:
|
||||
|
||||
```shell
|
||||
kubectl get poddisruptionbudgets
|
||||
```
|
||||
```
|
||||
NAME MIN-AVAILABLE ALLOWED-DISRUPTIONS AGE
|
||||
zk-pdb 2 0 7s
|
||||
```
|
||||
|
||||
Si hay pods que coinciden (por ejemplo, 3), entonces debes ver algo similar a esto:
|
||||
|
||||
```shell
|
||||
kubectl get poddisruptionbudgets
|
||||
```
|
||||
```
|
||||
NAME MIN-AVAILABLE ALLOWED-DISRUPTIONS AGE
|
||||
zk-pdb 2 1 7s
|
||||
```
|
||||
|
||||
El valor distinto a cero de `ALLOWED-DISRUPTIONS` significa que el controlador de disrupción ha visto los pods, contó los pods coincidentes, y actualizó el estado del PDB.
|
||||
|
||||
Puedes obtener más información sobre el estado de un PDB con este comando:
|
||||
|
||||
```shell
|
||||
kubectl get poddisruptionbudgets zk-pdb -o yaml
|
||||
```
|
||||
```yaml
|
||||
apiVersion: policy/v1beta1
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
creationTimestamp: 2017-08-28T02:38:26Z
|
||||
generation: 1
|
||||
name: zk-pdb
|
||||
...
|
||||
status:
|
||||
currentHealthy: 3
|
||||
desiredHealthy: 3
|
||||
disruptedPods: null
|
||||
disruptionsAllowed: 1
|
||||
expectedPods: 3
|
||||
observedGeneration: 1
|
||||
```
|
||||
|
||||
Por último, los PodDisruptionBudgets también se pueden consultar con kubectl utilizando el nombre corto pdb:
|
||||
|
||||
```shell
|
||||
kubectl get pdb
|
||||
```
|
||||
|
||||
```shell
|
||||
NAME MIN-AVAILABLE ALLOWED-DISRUPTIONS AGE
|
||||
zk-pdb 2 0 7s
|
||||
```
|
||||
|
||||
## Controladores y selectors arbitrarios
|
||||
|
||||
Puedes omitir esta sección si solo utilizas PDBs con los controladores integrados de aplicaciones (Deployment, Replicationcontrolador, ReplicaSet y StatefulSet), con el selector de PDB coincidiendo con el selector del controlador.
|
||||
|
||||
Puedes utilizar un PDB con pods controlados por otro tipo de controlador, por un
|
||||
"Operator", o pods individuales, pero con las siguientes restricciones:
|
||||
|
||||
- solo puedes usar `.spec.minAvailable`, no `.spec.maxUnavailable`.
|
||||
- solo puedes usar un número entero en `.spec.minAvailable`, no un porcentaje.
|
||||
|
||||
Puedes usar un selector que selecciona un subconjunto o superconjunto de los pods que pertenecen a un controlador incorporado. Sin embargo, cuando hay varios PDB en un namespace, debes tener cuidado de no
|
||||
crear PDBs cuyos selectores se superponen.
|
||||
{{% /capture %}}
|
||||
|
||||
|
||||
@@ -0,0 +1,151 @@
|
||||
---
|
||||
title: Corre una aplicación stateless usando un Deployment
|
||||
min-kubernetes-server-version: v1.9
|
||||
content_template: templates/tutorial
|
||||
weight: 10
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
|
||||
Ésta página enseña como correr una aplicación stateless usando un `deployment` de Kubernetes.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
|
||||
{{% capture objectives %}}
|
||||
|
||||
* Crear un `deployment` de nginx.
|
||||
* Usar kubectl para obtener información acerca del `deployment`.
|
||||
* Actualizar el `deployment`.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
|
||||
{{% capture prerequisites %}}
|
||||
|
||||
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
|
||||
{{% capture lessoncontent %}}
|
||||
|
||||
## Creando y explorando un nginx deployment
|
||||
|
||||
Puedes correr una aplicación creando un `deployment` de Kubernetes, y puedes describir el `deployment` en un fichero YAML. Por ejemplo, el siguiente fichero YAML describe un `deployment` que corre la imágen Docker nginx:1.7.9:
|
||||
|
||||
{{< codenew file="application/deployment.yaml" >}}
|
||||
|
||||
|
||||
1. Crea un `deployment` basado en el fichero YAML:
|
||||
|
||||
kubectl apply -f https://k8s.io/examples/application/deployment.yaml
|
||||
|
||||
2. Obtén información acerca del `deployment`:
|
||||
|
||||
kubectl describe deployment nginx-deployment
|
||||
|
||||
El resultado es similar a esto:
|
||||
|
||||
user@computer:~/website$ kubectl describe deployment nginx-deployment
|
||||
Name: nginx-deployment
|
||||
Namespace: default
|
||||
CreationTimestamp: Tue, 30 Aug 2016 18:11:37 -0700
|
||||
Labels: app=nginx
|
||||
Annotations: deployment.kubernetes.io/revision=1
|
||||
Selector: app=nginx
|
||||
Replicas: 2 desired | 2 updated | 2 total | 2 available | 0 unavailable
|
||||
StrategyType: RollingUpdate
|
||||
MinReadySeconds: 0
|
||||
RollingUpdateStrategy: 1 max unavailable, 1 max surge
|
||||
Pod Template:
|
||||
Labels: app=nginx
|
||||
Containers:
|
||||
nginx:
|
||||
Image: nginx:1.7.9
|
||||
Port: 80/TCP
|
||||
Environment: <none>
|
||||
Mounts: <none>
|
||||
Volumes: <none>
|
||||
Conditions:
|
||||
Type Status Reason
|
||||
---- ------ ------
|
||||
Available True MinimumReplicasAvailable
|
||||
Progressing True NewReplicaSetAvailable
|
||||
OldReplicaSets: <none>
|
||||
NewReplicaSet: nginx-deployment-1771418926 (2/2 replicas created)
|
||||
No events.
|
||||
|
||||
3. Lista los pods creados por el `deployment`:
|
||||
|
||||
kubectl get pods -l app=nginx
|
||||
|
||||
El resultado es similar a esto:
|
||||
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
nginx-deployment-1771418926-7o5ns 1/1 Running 0 16h
|
||||
nginx-deployment-1771418926-r18az 1/1 Running 0 16h
|
||||
|
||||
4. Muestra información acerca del pod:
|
||||
|
||||
kubectl describe pod <pod-name>
|
||||
|
||||
donde `<pod-name>` es el nombre de uno de los pods.
|
||||
|
||||
## Actualizando el deployment
|
||||
|
||||
Puedes actualizar el `deployment` aplicando un nuevo fichero YAML. El siguiente fichero YAML
|
||||
especifica que el `deployment` debería ser actualizado para usar nginx 1.8.
|
||||
|
||||
{{< codenew file="application/deployment-update.yaml" >}}
|
||||
|
||||
1. Aplica el nuevo fichero YAML:
|
||||
|
||||
kubectl apply -f https://k8s.io/examples/application/deployment-update.yaml
|
||||
|
||||
2. Comprueba como el `deployment` crea nuevos pods con la nueva imagen mientras va eliminando los pods con la especificación antigua:
|
||||
|
||||
kubectl get pods -l app=nginx
|
||||
|
||||
## Escalando la aplicación aumentado el número de replicas
|
||||
|
||||
Puedes aumentar el número de pods en tu `deployment` aplicando un nuevo fichero YAML.
|
||||
El siguiente fichero YAML especifica un total de 4 `replicas`, lo que significa que el `deployment` debería tener cuatro pods:
|
||||
|
||||
{{< codenew file="application/deployment-scale.yaml" >}}
|
||||
|
||||
1. Aplica el nuevo fichero YAML:
|
||||
|
||||
kubectl apply -f https://k8s.io/examples/application/deployment-scale.yaml
|
||||
|
||||
2. Verifica que el `deployment` tiene cuatro pods:
|
||||
|
||||
kubectl get pods -l app=nginx
|
||||
|
||||
El resultado es similar a esto:
|
||||
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
nginx-deployment-148880595-4zdqq 1/1 Running 0 25s
|
||||
nginx-deployment-148880595-6zgi1 1/1 Running 0 25s
|
||||
nginx-deployment-148880595-fxcez 1/1 Running 0 2m
|
||||
nginx-deployment-148880595-rwovn 1/1 Running 0 2m
|
||||
|
||||
## Eliminando un deployment
|
||||
|
||||
Elimina el `deployment` por el nombre:
|
||||
|
||||
kubectl delete deployment nginx-deployment
|
||||
|
||||
## ReplicationControllers
|
||||
|
||||
La manera preferida de crear una aplicación con múltiples instancias es usando un Deployment, el cual usa un ReplicaSet. Antes de que Deployment y ReplicaSet fueran introducidos en Kubernetes, aplicaciones con múltiples instancias eran configuradas usando un
|
||||
[ReplicationController](/docs/concepts/workloads/controllers/replicationcontroller/).
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
|
||||
{{% capture whatsnext %}}
|
||||
|
||||
* Aprende más acerca de [Deployments](/docs/concepts/workloads/controllers/deployment/).
|
||||
|
||||
{{% /capture %}}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Catálogo de servicios
|
||||
weight: 150
|
||||
---
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Gestionar certificados TLS
|
||||
weight: 100
|
||||
---
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: "Instalar herramientas"
|
||||
weight: 10
|
||||
---
|
||||
---
|
||||
@@ -0,0 +1,76 @@
|
||||
---
|
||||
title: Tutoriales
|
||||
main_menu: true
|
||||
weight: 60
|
||||
content_template: templates/concept
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
|
||||
Esta sección de la documentación de Kubernetes contiene tutoriales.
|
||||
|
||||
Un tutorial muestra cómo lograr una meta que es más grande que una sola
|
||||
[tarea](/docs/tasks/). Típicamente un tutorial tiene varias secciones y cada
|
||||
una de ellas contiene un procedimiento.
|
||||
Antes de recorrer cada tutorial, recomendamos añadir un marcador a
|
||||
[Glosario de términos](/docs/reference/glossary/) para poder consultarlo fácilmente.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture body %}}
|
||||
|
||||
## Esenciales
|
||||
|
||||
* [Kubernetes Basics](/docs/tutorials/kubernetes-basics/) se trata de un tutorial interactivo en profundidad para entender Kubernetes y probar algunas funciones básicas.
|
||||
|
||||
* [Scalable Microservices with Kubernetes (Udacity)](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615)
|
||||
|
||||
* [Introduction to Kubernetes (edX)](https://www.edx.org/course/introduction-kubernetes-linuxfoundationx-lfs158x#)
|
||||
|
||||
* [Hello Minikube](/docs/tutorials/hello-minikube/)
|
||||
|
||||
## Configuración
|
||||
|
||||
* [Configuring Redis Using a ConfigMap](/docs/tutorials/configuration/configure-redis-using-configmap/)
|
||||
|
||||
## Aplicaciones Stateless
|
||||
|
||||
* [Exposing an External IP Address to Access an Application in a Cluster](/docs/tutorials/stateless-application/expose-external-ip-address/)
|
||||
|
||||
* [Example: Deploying PHP Guestbook application with Redis](/docs/tutorials/stateless-application/guestbook/)
|
||||
|
||||
## Aplicaciones Stateful
|
||||
|
||||
* [StatefulSet Basics](/docs/tutorials/stateful-application/basic-stateful-set/)
|
||||
|
||||
* [Example: WordPress and MySQL with Persistent Volumes](/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/)
|
||||
|
||||
* [Example: Deploying Cassandra with Stateful Sets](/docs/tutorials/stateful-application/cassandra/)
|
||||
|
||||
* [Running ZooKeeper, A CP Distributed System](/docs/tutorials/stateful-application/zookeeper/)
|
||||
|
||||
## Pipelines de CI/CD
|
||||
|
||||
* [Set Up a CI/CD Pipeline with Kubernetes Part 1: Overview](https://www.linux.com/blog/learn/chapter/Intro-to-Kubernetes/2017/5/set-cicd-pipeline-kubernetes-part-1-overview)
|
||||
|
||||
* [Set Up a CI/CD Pipeline with a Jenkins Pod in Kubernetes (Part 2)](https://www.linux.com/blog/learn/chapter/Intro-to-Kubernetes/2017/6/set-cicd-pipeline-jenkins-pod-kubernetes-part-2)
|
||||
|
||||
* [Run and Scale a Distributed Crossword Puzzle App with CI/CD on Kubernetes (Part 3)](https://www.linux.com/blog/learn/chapter/intro-to-kubernetes/2017/6/run-and-scale-distributed-crossword-puzzle-app-cicd-kubernetes-part-3)
|
||||
|
||||
* [Set Up CI/CD for a Distributed Crossword Puzzle App on Kubernetes (Part 4)](https://www.linux.com/blog/learn/chapter/intro-to-kubernetes/2017/6/set-cicd-distributed-crossword-puzzle-app-kubernetes-part-4)
|
||||
|
||||
## Clústers
|
||||
|
||||
* [AppArmor](/docs/tutorials/clusters/apparmor/)
|
||||
|
||||
## Servicios
|
||||
|
||||
* [Using Source IP](/docs/tutorials/services/source-ip/)
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture whatsnext %}}
|
||||
|
||||
Si quieres escribir un tutorial, revisa [utilizando templates](/docs/home/contribute/page-templates/) para obtener información sobre el tipo de página y la plantilla de los tutotriales.
|
||||
|
||||
{{% /capture %}}
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Clústeres
|
||||
weight: 60
|
||||
---
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Configuración
|
||||
weight: 30
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Introducción
|
||||
weight: 10
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Crear un clúster
|
||||
weight: 10
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Desplegar una aplicación
|
||||
weight: 20
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Consultar el estado de una aplicación
|
||||
weight: 30
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Exponer una aplicación
|
||||
weight: 40
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Escalar una aplicación
|
||||
weight: 50
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Actualizar una aplicación
|
||||
weight: 60
|
||||
---
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Formación en línea"
|
||||
weight: 20
|
||||
---
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Servicios
|
||||
weight: 70
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Aplicaciones Stateful
|
||||
weight: 50
|
||||
---
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: Aplicaciones Stateless
|
||||
weight: 40
|
||||
---
|
||||
@@ -0,0 +1,19 @@
|
||||
apiVersion: apps/v1 # Usa apps/v1beta2 para versiones anteriores a 1.9.0
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nginx-deployment
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: nginx
|
||||
replicas: 4 # Actualiza el número de réplicas de 2 a 4
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nginx
|
||||
spec:
|
||||
containers:
|
||||
- name: nginx
|
||||
image: nginx:1.8
|
||||
ports:
|
||||
- containerPort: 80
|
||||
@@ -0,0 +1,19 @@
|
||||
apiVersion: apps/v1 # Usa apps/v1beta2 para versiones anteriores a 1.9.0
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nginx-deployment
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: nginx
|
||||
replicas: 2
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nginx
|
||||
spec:
|
||||
containers:
|
||||
- name: nginx
|
||||
image: nginx:1.8 # Actualiza la versión de nginx de 1.7.9 a 1.8
|
||||
ports:
|
||||
- containerPort: 80
|
||||
@@ -0,0 +1,19 @@
|
||||
apiVersion: apps/v1 # Usa apps/v1beta2 para versiones anteriores a 1.9.0
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nginx-deployment
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: nginx
|
||||
replicas: 2 # indica al controlador que ejecute 2 pods
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nginx
|
||||
spec:
|
||||
containers:
|
||||
- name: nginx
|
||||
image: nginx:1.7.9
|
||||
ports:
|
||||
- containerPort: 80
|
||||
@@ -0,0 +1,5 @@
|
||||
Debes tener un cluster Kubernetes a tu dispocición, y la herramienta de línea de comandos `kubectl` debe estar configurada. Si no tienes un cluster, puedes crear uno utilizando [Minikube](/docs/setup/minikube),
|
||||
o puedes utilizar una de las siguientes herramientas en línea:
|
||||
|
||||
* [Katacoda](https://www.katacoda.com/courses/kubernetes/playground)
|
||||
* [Play with Kubernetes](http://labs.play-with-k8s.com/)
|
||||
@@ -9,7 +9,7 @@ cid: home
|
||||
{{< blocks/section id="oceanNodes" >}}
|
||||
{{% blocks/feature image="flower" %}}
|
||||
### Kubernetes (K8s)
|
||||
Kubernetes mengelompokkan kontainer yang membentuk suatu aplikasi dalam bentuk unit logis yang memudahkan proses manajemen dan discovery. Kubernetes dibuat berdasarkan [pengalaman operasional workloads skala production yang dilakukan oleh Google](http://queue.acm.org/detail.cfm?id=2898444), yang digabungkan dengan ide-ide terbaik dan best practices yang diberikan oleh komunitas.
|
||||
Kubernetes mengelompokkan kontainer yang membentuk suatu aplikasi dalam bentuk unit logis yang memudahkan proses manajemen dan <i>discovery</i>. Kubernetes dibuat berdasarkan [pengalaman operasional <i>workloads</i> skala <i>production</i> yang dilakukan oleh Google](http://queue.acm.org/detail.cfm?id=2898444), yang digabungkan dengan ide-ide terbaik dan best practices yang diberikan oleh komunitas.
|
||||
{{% /blocks/feature %}}
|
||||
|
||||
{{% blocks/feature image="scalable" %}}
|
||||
@@ -22,7 +22,7 @@ Didesain berdasarkan landasan yang digunakan Google untuk menjalankan milyaran k
|
||||
{{% blocks/feature image="blocks" %}}
|
||||
#### Fleksibel
|
||||
|
||||
Baik digunakan untuk melakukan testing di mesin lokal maupun dijalankan sebagai sistem enterprise global, fleksibilitas yang disediakan oleh Kubernetes memungkinkan Anda untuk menghasilkan aplikasi secara konsisten dan mudah, tidak peduli seberapa kompleks kebutuhan yang Anda miliki.
|
||||
Baik digunakan untuk melakukan <i>testing</i> di mesin lokal maupun dijalankan sebagai sistem <i>enterprise global</i>, fleksibilitas yang disediakan oleh Kubernetes memungkinkan kamu menghasilkan aplikasi secara konsisten dan mudah, tidak peduli seberapa kompleks kebutuhan yang kamu miliki.
|
||||
|
||||
|
||||
{{% /blocks/feature %}}
|
||||
@@ -30,7 +30,7 @@ Baik digunakan untuk melakukan testing di mesin lokal maupun dijalankan sebagai
|
||||
{{% blocks/feature image="suitcase" %}}
|
||||
#### Dapat Dijalankan di Berbagai Platform
|
||||
|
||||
Kubernetes sebagai open source memberikan Anda kebebasan untuk menggunakan on-premise, hybrid, atau public cloud infrastructure, memberikan anda kemudahan untuk memindahkan workloads yang Anda miliki.
|
||||
Kubernetes sebagai <i>open source</i> memberikan kamu kebebasan untuk menggunakan <i>on-premise</i>, <i>hybrid</i>, atau <i>public cloud infrastructure</i>, memberikan kamu kemudahan untuk memindahkan workloads yang kamu miliki.
|
||||
|
||||
|
||||
{{% /blocks/feature %}}
|
||||
@@ -45,12 +45,12 @@ Kubernetes sebagai open source memberikan Anda kebebasan untuk menggunakan on-pr
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-europe-2019" button id="desktopKCButton">Hadiri Acara di Barcelona pada Tanggal 20-23 Mei 2019</a>
|
||||
<a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-europe-2019" button id="desktopKCButton">Hadiri KubeCon di Barcelona tanggal 20-23 Mei 2019</a>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://www.lfasiallc.com/events/kubecon-cloudnativecon-china-2019" button id="desktopKCButton">Hadiri Acara KubeCon di Shanghai pada Tanggal 24-26 Juni 2019</a>
|
||||
<a href="https://www.lfasiallc.com/events/kubecon-cloudnativecon-china-2019" button id="desktopKCButton">Hadiri KubeCon di Shanghai tanggal 24-26 Juni 2019</a>
|
||||
</div>
|
||||
<div id="videoPlayer">
|
||||
<iframe data-url="https://www.youtube.com/embed/H06qrNmGqyE?autoplay=1" frameborder="0" allowfullscreen></iframe>
|
||||
|
||||
@@ -2,9 +2,8 @@
|
||||
title: Studi kasus
|
||||
linkTitle: Studi kasus
|
||||
bigheader: Studi kasus penggunaan Kubernetes
|
||||
abstract: Studi kasus penggunaan Kubernetes pada environment production.
|
||||
abstract: Studi kasus penggunaan Kubernetes pada <i>environment production</i>.
|
||||
layout: basic
|
||||
class: gridPage
|
||||
cid: caseStudies
|
||||
---
|
||||
|
||||
|
||||
@@ -39,17 +39,17 @@ cards:
|
||||
button_path: "/docs/tasks"
|
||||
- name: reference
|
||||
title: Lihat referensi
|
||||
description: Lihat-lihat istilah, sintaks command line, ragam API, dan dokumentasi tool.
|
||||
description: Lihat-lihat istilah, sintaks command line, ragam API, dan perkakas dokumentasi.
|
||||
button: Lihat referensi
|
||||
button_path: /docs/reference
|
||||
- name: contribute
|
||||
title: Kontribusi ke dokumentasi
|
||||
description: Siapapun bisa kontribusi, buat kamu yang baru di proyek ini maupun sudah lama.
|
||||
description: Siapapun bisa kontribusi, buat kamu yang baru atau sudah lama di proyek ini.
|
||||
button: Kontribusi ke dokumentasi
|
||||
button_path: /docs/contribute
|
||||
- name: download
|
||||
title: Unduh Kubernetes
|
||||
description: Untuk instalasi atau pembaharuan Kubernetes ke versi paling baru, lihat catatan rilis saat ini.
|
||||
description: Untuk instalasi atau pembaharuan Kubernetes ke versi terbaru, lihat catatan rilis saat ini.
|
||||
- name: about
|
||||
title: Tentang dokumentasi
|
||||
description: Situs ini merupakan dokumentasi dari Kubernetes versi saat ini dan 4 versi sebelumnya.
|
||||
|
||||
@@ -21,10 +21,10 @@ card:
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<h2>Panduan Dasar Kubernetes</h2>
|
||||
<p>Tutorial ini menyediakan panduan dasar mekanisme orkestrasi <i>cluster</i> Kubernetes. Setiap modul memliki beberapa informasi mengenai latar belakang bagi konsep mendasar dan <i>feature</i> Kubernetes, termasuk mode interaktif yang dapat digunakan sebagai metode pembelajaran <i>online</i>. Mode tutorial interaktif ini memberikan kesempatan pengguna untuk melakukan manajemen <i>cluster</i> sederhana beserta aplikasi dalam kontainer yang kamu miliki.</p>
|
||||
<p>Tutorial ini menyediakan panduan dasar mekanisme orkestrasi kluster Kubernetes. Setiap modul memliki beberapa informasi mengenai latar belakang bagi konsep mendasar dan <i>feature</i> Kubernetes, termasuk mode interaktif yang dapat digunakan sebagai metode pembelajaran <i>online</i>. Mode tutorial interaktif ini memberikan kesempatan pengguna untuk melakukan manajemen kluster sederhana beserta aplikasi dalam kontainer yang kamu miliki.</p>
|
||||
<p>Dengan menggunakan mode tutorial interaktif ini, pengguna diharapkan dapat memahami:</p>
|
||||
<ul>
|
||||
<li><i>Deploy</i>i> sebuah aplikasi yang sudah dikontainerisasi pada <i>cluster</i></li>
|
||||
<li><i>Deploy</i>i> sebuah aplikasi yang sudah dikontainerisasi pada kluster</li>
|
||||
<li>Melakukan <i>scale</i> <i>deployment</i></li>
|
||||
<li>Meng-update aplikasi yang sudah dikontainerisasi dengan menggunakan versi aplikasi terbaru</li>
|
||||
<li>Men-debug aplikasi yang sudah dikontainerisasi</li>
|
||||
|
||||
@@ -118,7 +118,63 @@ other = "Users"
|
||||
[docs_label_i_am]
|
||||
other = "I AM..."
|
||||
|
||||
# layouts > blog > pager
|
||||
|
||||
[layouts_blog_pager_prev]
|
||||
other = "<< Prev"
|
||||
|
||||
[layouts_blog_pager_next]
|
||||
other = "Next >>"
|
||||
|
||||
# layouts > blog > list
|
||||
|
||||
[layouts_case_studies_list_tell]
|
||||
other = "Tell your story"
|
||||
|
||||
# layouts > docs > glossary
|
||||
|
||||
[layouts_docs_glossary_description]
|
||||
other = "This glossary is intended to be a comprehensive, standardized list of Kubernetes terminology. It includes technical terms that are specific to K8s, as well as more general terms that provide useful context."
|
||||
|
||||
[layouts_docs_glossary_filter]
|
||||
other = "Filter terms according to their tags"
|
||||
|
||||
[layouts_docs_glossary_select_all]
|
||||
other = "Select all"
|
||||
|
||||
[layouts_docs_glossary_deselect_all]
|
||||
other = "Deselect all"
|
||||
|
||||
[layouts_docs_glossary_aka]
|
||||
other = "Also known as"
|
||||
|
||||
[layouts_docs_glossary_click_details_before]
|
||||
other = "Click on the"
|
||||
|
||||
[layouts_docs_glossary_click_details_after]
|
||||
other = "indicators below to get a longer explanation for any particular term."
|
||||
|
||||
# layouts > docs > search
|
||||
|
||||
[layouts_docs_search_fetching]
|
||||
other = "Fetching results.."
|
||||
|
||||
# layouts > partial > feedback
|
||||
|
||||
[layouts_docs_partials_feedback_thanks]
|
||||
other = "Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on"
|
||||
|
||||
[layouts_docs_partials_feedback_issue]
|
||||
other = "Open an issue in the GitHub repo if you want to "
|
||||
|
||||
[layouts_docs_partials_feedback_problem]
|
||||
other = "report a problem"
|
||||
|
||||
[layouts_docs_partials_feedback_or]
|
||||
other = "or"
|
||||
|
||||
[layouts_docs_partials_feedback_improvement]
|
||||
other = "suggest an improvement"
|
||||
|
||||
# Community links
|
||||
[community_twitter_name]
|
||||
|
||||
@@ -118,7 +118,63 @@ other = "Usuarios"
|
||||
[docs_label_i_am]
|
||||
other = "Yo soy..."
|
||||
|
||||
# layouts > blog > pager
|
||||
|
||||
[layouts_blog_pager_prev]
|
||||
other = "<< Anterior"
|
||||
|
||||
[layouts_blog_pager_next]
|
||||
other = "Siguiente >>"
|
||||
|
||||
# layouts > blog > list
|
||||
|
||||
[layouts_case_studies_list_tell]
|
||||
other = "Cuéntanos tu historia"
|
||||
|
||||
# layouts > docs > glossary
|
||||
|
||||
[layouts_docs_glossary_description]
|
||||
other = "Este glosario tiene la intención de ser una lista completa y estandarizada de la terminología de Kubernetes. Incluye términos técnicos que son específicos de k8s, así como términos más generales que proporcionan un contexto."
|
||||
|
||||
[layouts_docs_glossary_filter]
|
||||
other = "Filtrar terminos por categoría:"
|
||||
|
||||
[layouts_docs_glossary_select_all]
|
||||
other = "Seleccionar todos"
|
||||
|
||||
[layouts_docs_glossary_deselect_all]
|
||||
other = "Elmininar selección"
|
||||
|
||||
[layouts_docs_glossary_aka]
|
||||
other = "Also known as"
|
||||
|
||||
[layouts_docs_glossary_click_details_before]
|
||||
other = "Haz click en el símbolo"
|
||||
|
||||
[layouts_docs_glossary_click_details_after]
|
||||
other = "para obtener información detallada sobre el término."
|
||||
|
||||
# layouts > docs > search
|
||||
|
||||
[layouts_docs_search_fetching]
|
||||
other = "Obteniendo resultados.."
|
||||
|
||||
# layouts > partial > feedback
|
||||
|
||||
[layouts_docs_partials_feedback_thanks]
|
||||
other = "Muchas gracias por el feedback. Si tienes alguna pregunta específica sobre como usar Kubernetes, puedes preguntar en"
|
||||
|
||||
[layouts_docs_partials_feedback_issue]
|
||||
other = "Abre un issue en el repositorio de GitHub si quieres"
|
||||
|
||||
[layouts_docs_partials_feedback_problem]
|
||||
other = "reportar un problema"
|
||||
|
||||
[layouts_docs_partials_feedback_or]
|
||||
other = "o"
|
||||
|
||||
[layouts_docs_partials_feedback_improvement]
|
||||
other = "sugerir alguna mejora"
|
||||
|
||||
# Community links
|
||||
[community_twitter_name]
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user