Skip to content

Commit bcb9863

Browse files
authored
Merge pull request #45399 from celestehorgan/240229-merged-main-dev-1.30
Merge main branch into dev-1.30
2 parents 5e3bedd + f000899 commit bcb9863

File tree

10 files changed

+384
-113
lines changed

10 files changed

+384
-113
lines changed

content/en/blog/_posts/2020-08-03-kubernetes-1-18-release-interview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ It was actually just making— again, startup, small company, small team, so rea
6262

6363
**ADAM GLICK: What time frame was this?**
6464

65-
JORGE ALARCÓN: Three, four years ago, so definitely not 1.13. That's the best guesstimate that I can give at this point. But I wasn't able to find any good examples, any tutorials. The only book that I was able to get my hands on was the one written by Joe Beda, Kelsey Hightower, and I forget the other author. But what is it? "[Kubernetes— Up and Running](](http://shop.oreilly.com/product/0636920223788.do))"?
65+
JORGE ALARCÓN: Three, four years ago, so definitely not 1.13. That's the best guesstimate that I can give at this point. But I wasn't able to find any good examples, any tutorials. The only book that I was able to get my hands on was the one written by Joe Beda, Kelsey Hightower, and I forget the other author. But what is it? "[Kubernetes— Up and Running](http://shop.oreilly.com/product/0636920223788.do)"?
6666

6767
And in general, right now I use it as reference— it's really good. But as a beginner, I still was lost. They give all these amazing examples, they provide the applications, but I had no idea why someone might need a Pod, why someone might need a Deployment. So my last resort was to try and find someone who actually knew Kubernetes.
6868

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
---
2+
layout: blog
3+
title: "Spotlight on SIG Cloud Provider"
4+
slug: sig-cloud-provider-spotlight-2024
5+
date: 2024-03-01
6+
canonicalUrl: https://www.k8s.dev/blog/2024/03/01/sig-cloud-provider-spotlight-2024/
7+
---
8+
9+
**Author**: Arujjwal Negi
10+
11+
One of the most popular ways developers use Kubernetes-related services is via cloud providers, but
12+
have you ever wondered how cloud providers can do that? How does this whole process of integration
13+
of Kubernetes to various cloud providers happen? To answer that, let's put the spotlight on [SIG
14+
Cloud Provider](https://github.com/kubernetes/community/blob/master/sig-cloud-provider/README.md).
15+
16+
SIG Cloud Provider works to create seamless integrations between Kubernetes and various cloud
17+
providers. Their mission? Keeping the Kubernetes ecosystem fair and open for all. By setting clear
18+
standards and requirements, they ensure every cloud provider plays nicely with Kubernetes. It is
19+
their responsibility to configure cluster components to enable cloud provider integrations.
20+
21+
In this blog of the SIG Spotlight series, [Arujjwal Negi](https://twitter.com/arujjval) interviews
22+
[Michael McCune](https://github.com/elmiko) (Red Hat), also known as _elmiko_, co-chair of SIG Cloud
23+
Provider, to give us an insight into the workings of this group.
24+
25+
## Introduction
26+
27+
**Arujjwal**: Let's start by getting to know you. Can you give us a small intro about yourself and
28+
how you got into Kubernetes?
29+
30+
**Michael**: Hi, I’m Michael McCune, most people around the community call me by my handle,
31+
_elmiko_. I’ve been a software developer for a long time now (Windows 3.1 was popular when I
32+
started!), and I’ve been involved with open-source software for most of my career. I first got
33+
involved with Kubernetes as a developer of machine learning and data science applications; the team
34+
I was on at the time was creating tutorials and examples to demonstrate the use of technologies like
35+
Apache Spark on Kubernetes. That said, I’ve been interested in distributed systems for many years
36+
and when an opportunity arose to join a team working directly on Kubernetes, I jumped at it!
37+
38+
## Functioning and working
39+
40+
**Arujjwal**: Can you give us an insight into what SIG Cloud Provider does and how it functions?
41+
42+
**Michael**: SIG Cloud Provider was formed to help ensure that Kubernetes provides a neutral
43+
integration point for all infrastructure providers. Our largest task to date has been the extraction
44+
and migration of in-tree cloud controllers to out-of-tree components. The SIG meets regularly to
45+
discuss progress and upcoming tasks and also to answer questions and bugs that
46+
arise. Additionally, we act as a coordination point for cloud provider subprojects such as the cloud
47+
provider framework, specific cloud controller implementations, and the [Konnectivity proxy
48+
project](https://kubernetes.io/docs/tasks/extend-kubernetes/setup-konnectivity/).
49+
50+
51+
**Arujjwal:** After going through the project
52+
[README](https://github.com/kubernetes/community/blob/master/sig-cloud-provider/README.md), I
53+
learned that SIG Cloud Provider works with the integration of Kubernetes with cloud providers. How
54+
does this whole process go?
55+
56+
**Michael:** One of the most common ways to run Kubernetes is by deploying it to a cloud environment
57+
(AWS, Azure, GCP, etc). Frequently, the cloud infrastructures have features that enhance the
58+
performance of Kubernetes, for example, by providing elastic load balancing for Service objects. To
59+
ensure that cloud-specific services can be consistently consumed by Kubernetes, the Kubernetes
60+
community has created cloud controllers to address these integration points. Cloud providers can
61+
create their own controllers either by using the framework maintained by the SIG or by following
62+
the API guides defined in the Kubernetes code and documentation. One thing I would like to point out
63+
is that SIG Cloud Provider does not deal with the lifecycle of nodes in a Kubernetes cluster;
64+
for those types of topics, SIG Cluster Lifecycle and the Cluster API project are more appropriate
65+
venues.
66+
67+
## Important subprojects
68+
69+
**Arujjwal:** There are a lot of subprojects within this SIG. Can you highlight some of the most
70+
important ones and what job they do?
71+
72+
**Michael:** I think the two most important subprojects today are the [cloud provider
73+
framework](https://github.com/kubernetes/community/blob/master/sig-cloud-provider/README.md#kubernetes-cloud-provider)
74+
and the [extraction/migration
75+
project](https://github.com/kubernetes/community/blob/master/sig-cloud-provider/README.md#cloud-provider-extraction-migration). The
76+
cloud provider framework is a common library to help infrastructure integrators build a cloud
77+
controller for their infrastructure. This project is most frequently the starting point for new
78+
people coming to the SIG. The extraction and migration project is the other big subproject and a
79+
large part of why the framework exists. A little history might help explain further: for a long
80+
time, Kubernetes needed some integration with the underlying infrastructure, not
81+
necessarily to add features but to be aware of cloud events like instance termination. The cloud
82+
provider integrations were built into the Kubernetes code tree, and thus the term "in-tree" was
83+
created (check out this [article on the topic](https://kaslin.rocks/out-of-tree/) for more
84+
info). The activity of maintaining provider-specific code in the main Kubernetes source tree was
85+
considered undesirable by the community. The community’s decision inspired the creation of the
86+
extraction and migration project to remove the "in-tree" cloud controllers in favor of
87+
"out-of-tree" components.
88+
89+
90+
**Arujjwal:** What makes [the cloud provider framework] a good place to start? Does it have consistent good beginner work? What
91+
kind?
92+
93+
**Michael:** I feel that the cloud provider framework is a good place to start as it encodes the
94+
community’s preferred practices for cloud controller managers and, as such, will give a newcomer a
95+
strong understanding of how and what the managers do. Unfortunately, there is not a consistent
96+
stream of beginner work on this component; this is due in part to the mature nature of the framework
97+
and that of the individual providers as well. For folks who are interested in getting more involved,
98+
having some [Go language](https://go.dev/) knowledge is good and also having an understanding of
99+
how at least one cloud API (e.g., AWS, Azure, GCP) works is also beneficial. In my personal opinion,
100+
being a newcomer to SIG Cloud Provider can be challenging as most of the code around this project
101+
deals directly with specific cloud provider interactions. My best advice to people wanting to do
102+
more work on cloud providers is to grow your familiarity with one or two cloud APIs, then look
103+
for open issues on the controller managers for those clouds, and always communicate with the other
104+
contributors as much as possible.
105+
106+
## Accomplishments
107+
108+
**Arujjwal:** Can you share about an accomplishment(s) of the SIG that you are proud of?
109+
110+
**Michael:** Since I joined the SIG, more than a year ago, we have made great progress in advancing
111+
the extraction and migration subproject. We have moved from an alpha status on the defining
112+
[KEP](https://github.com/kubernetes/enhancements/blob/master/keps/README.md) to a beta status and
113+
are inching ever closer to removing the old provider code from the Kubernetes source tree. I've been
114+
really proud to see the active engagement from our community members and to see the progress we have
115+
made towards extraction. I have a feeling that, within the next few releases, we will see the final
116+
removal of the in-tree cloud controllers and the completion of the subproject.
117+
118+
## Advice for new contributors
119+
120+
**Arujjwal:** Is there any suggestion or advice for new contributors on how they can start at SIG
121+
Cloud Provider?
122+
123+
**Michael:** This is a tricky question in my opinion. SIG Cloud Provider is focused on the code
124+
pieces that integrate between Kubernetes and an underlying infrastructure. It is very common, but
125+
not necessary, for members of the SIG to be representing a cloud provider in an official capacity. I
126+
recommend that anyone interested in this part of Kubernetes should come to an SIG meeting to see how
127+
we operate and also to study the cloud provider framework project. We have some interesting ideas
128+
for future work, such as a common testing framework, that will cut across all cloud providers and
129+
will be a great opportunity for anyone looking to expand their Kubernetes involvement.
130+
131+
**Arujjwal:** Are there any specific skills you're looking for that we should highlight? To give you
132+
an example from our own [SIG ContribEx]
133+
(https://github.com/kubernetes/community/blob/master/sig-contributor-experience/README.md):
134+
if you're an expert in [Hugo](https://gohugo.io/), we can always use some help with k8s.dev!
135+
136+
**Michael:** The SIG is currently working through the final phases of our extraction and migration
137+
process, but we are looking toward the future and starting to plan what will come next. One of the
138+
big topics that the SIG has discussed is testing. Currently, we do not have a generic common set of
139+
tests that can be exercised by each cloud provider to confirm the behaviour of their controller
140+
manager. If you are an expert in Ginkgo and the Kubetest framework, we could probably use your help
141+
in designing and implementing the new tests.
142+
143+
---
144+
145+
This is where the conversation ends. I hope this gave you some insights about SIG Cloud Provider's
146+
aim and working. This is just the tip of the iceberg. To know more and get involved with SIG Cloud
147+
Provider, try attending their meetings
148+
[here](https://github.com/kubernetes/community/blob/master/sig-cloud-provider/README.md#meetings).

content/en/docs/tasks/access-application-cluster/service-access-application-cluster.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ Here is the configuration file for the application Deployment:
8787
Events: <none>
8888
```
8989

90-
Make a note of the NodePort value for the service. For example,
90+
Make a note of the NodePort value for the Service. For example,
9191
in the preceding output, the NodePort value is 31496.
9292

9393
1. List the pods that are running the Hello World application:

content/en/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,6 @@ For example:
294294
ports:
295295
- name: liveness-port
296296
containerPort: 8080
297-
hostPort: 8080
298297

299298
livenessProbe:
300299
httpGet:
@@ -318,7 +317,6 @@ So, the previous example would become:
318317
ports:
319318
- name: liveness-port
320319
containerPort: 8080
321-
hostPort: 8080
322320
323321
livenessProbe:
324322
httpGet:
@@ -542,7 +540,6 @@ spec:
542540
ports:
543541
- name: liveness-port
544542
containerPort: 8080
545-
hostPort: 8080
546543
547544
livenessProbe:
548545
httpGet:
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
---
2+
reviewers:
3+
- ramrodo
4+
title: Eliminación Forzosa de Pods de StatefulSet
5+
content_type: task
6+
weight: 70
7+
---
8+
9+
<!-- overview -->
10+
Esta página muestra cómo eliminar Pods que son parte de un
11+
{{< glossary_tooltip text="StatefulSet" term_id="StatefulSet" >}},
12+
y explica las consideraciones a tener en cuenta al hacerlo.
13+
14+
## {{% heading "prerequisites" %}}
15+
16+
- Esta es una tarea bastante avanzada y tiene el potencial de violar algunas de las propiedades
17+
inherentes de StatefulSet.
18+
- Antes de proceder, familiarízate con las consideraciones enumeradas a continuación.
19+
20+
<!-- steps -->
21+
22+
## Consideraciones de StatefulSet
23+
24+
En la operación normal de un StatefulSet, **nunca** hay necesidad de eliminar forzosamente un Pod de StatefulSet.
25+
El [controlador de StatefulSet](/es/docs/concepts/workloads/controllers/statefulset/) es responsable de
26+
crear, escalar y eliminar miembros del StatefulSet. Intenta asegurar que el número especificado
27+
de Pods, desde el ordinal 0 hasta N-1, estén vivos y listos. StatefulSet asegura que, en cualquier momento,
28+
exista como máximo un Pod con una identidad dada, corriendo en un clúster. Esto se refiere a la semántica de
29+
*como máximo uno* proporcionada por un StatefulSet.
30+
31+
La eliminación manual forzada debe realizarse con precaución, ya que tiene el potencial de violar la
32+
semántica de como máximo uno, inherente a StatefulSet. Los StatefulSets pueden usarse para ejecutar aplicaciones distribuidas y
33+
agrupadas que necesitan una identidad de red estable y almacenamiento estable.
34+
Estas aplicaciones a menudo tienen configuraciones que dependen de un conjunto de un número fijo de
35+
miembros con identidades fijas. Tener múltiples miembros con la misma identidad puede ser desastroso
36+
y puede llevar a pérdida de datos (por ejemplo, escenario de cerebro dividido en sistemas basados en quórum).
37+
38+
## Eliminar Pods
39+
40+
Puedes realizar una eliminación de Pod paulatina con el siguiente comando:
41+
42+
```shell
43+
kubectl delete pods <pod>
44+
```
45+
46+
Para que lo anterior conduzca a una terminación paulatina, el Pod no debe especificar un
47+
`pod.Spec.TerminationGracePeriodSeconds` de 0. La práctica de establecer un
48+
`pod.Spec.TerminationGracePeriodSeconds` de 0 segundos es insegura y se desaconseja rotundamente
49+
para los Pods de StatefulSet. La eliminación paulatina es segura y garantizará que el Pod
50+
se apague de [manera paulatina](/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination), antes de que kubelet elimine el nombre en el apiserver.
51+
52+
Un Pod no se elimina automáticamente cuando un nodo no es accesible.
53+
Los Pods que se ejecutan en un Nodo inaccesible entran en el estado 'Terminating' o 'Unknown' después de un
54+
[tiempo de espera](es/docs/concepts/architecture/nodes/#Estados).
55+
Los Pods también pueden entrar en estos estados cuando el usuario intenta la eliminación paulatina de un Pod
56+
en un nodo inaccesible.
57+
Las únicas formas en que un Pod en tal estado puede ser eliminado del apiserver son las siguientes:
58+
59+
- El objeto Node es eliminado (ya sea por ti, o por el [Controlador de Nodo](/es/docs/concepts/architecture/nodes/#controlador-de-nodos)).).
60+
- Kubelet, en el nodo no responsivo, comienza a responder, mata el Pod y elimina la entrada del apiserver.
61+
- Eliminación forzada del Pod por el usuario.
62+
-
63+
La mejor práctica recomendada es usar el primer o segundo enfoque. Si un nodo está confirmado
64+
como muerto (por ejemplo, desconectado permanentemente de la red, apagado, etc.), entonces elimina
65+
el objeto Node. Si el nodo es afectado de una partición de red, entonces trata de resolver esto
66+
o espera a que se resuelva. Cuando la partición se solucione, kubelet completará la eliminación
67+
del Pod y liberará su nombre en el apiserver.
68+
69+
Normalmente, el sistema completa la eliminación una vez que el Pod ya no se está ejecutando en un nodo, o
70+
el nodo es eliminado por un administrador. Puedes anular esto forzando la eliminación del Pod.
71+
72+
### Eliminación Forzosa
73+
74+
Las eliminaciones forzosas **no** esperan confirmación de kubelet de que el Pod ha sido terminado.
75+
Independientemente de si una eliminación forzosa tiene éxito en matar un Pod, inmediatamente
76+
liberará el nombre del apiserver. Esto permitiría que el controlador de StatefulSet cree un Pod de reemplazo
77+
con esa misma identidad; esto puede llevar a la duplicación de un Pod que aún está en ejecución,
78+
y si dicho Pod todavía puede comunicarse con los otros miembros del StatefulSet,
79+
violará la semántica de como máximo uno que StatefulSet está diseñado para garantizar.
80+
81+
Cuando eliminas forzosamente un Pod de StatefulSet, estás afirmando que el Pod en cuestión nunca
82+
volverá a hacer contacto con otros Pods en el StatefulSet y su nombre puede ser liberado de forma segura para que
83+
se cree un reemplazo.
84+
85+
86+
Si quieres eliminar un Pod de forma forzosa usando la versión de kubectl >= 1.5, haz lo siguiente:
87+
88+
```shell
89+
kubectl delete pods <pod> --grace-period=0 --force
90+
```
91+
92+
Si estás usando cualquier versión de kubectl <= 1.4, deberías omitir la opción `--force` y usar:
93+
94+
```shell
95+
kubectl delete pods <pod> --grace-period=0
96+
```
97+
98+
Si incluso después de estos comandos el pod está atascado en el estado `Unknown`, usa el siguiente comando para
99+
eliminar el Pod del clúster:
100+
101+
```shell
102+
kubectl patch pod <pod> -p '{"metadata":{"finalizers":null}}'
103+
```
104+
105+
Siempre realiza la eliminación forzosa de Pods de StatefulSet con cuidado y con pleno conocimiento de los riesgos involucrados.
106+
107+
## {{% heading "whatsnext" %}}
108+
109+
Aprende más sobre [depurar un StatefulSet](/docs/tasks/debug/debug-application/debug-statefulset/).

content/ja/releases/notes.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
linktitle: リリースノート
3+
title: ノート
4+
type: docs
5+
description: >
6+
Kubernetesのリリースノート
7+
sitemap:
8+
priority: 0.5
9+
---
10+
11+
リリースノートは、使用しているKubernetesのバージョンに合った[Changelog](https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG)を読むことで確認できます。
12+
{{< skew currentVersionAddMinor 0 >}}のchangelogを見るには[GitHub](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-{{< skew currentVersionAddMinor 0 >}}.md)を参照してください。
13+
14+
またリリースノートは、[relnotes.k8s.io](https://relnotes.k8s.io)上で検索してフィルタリングすることもできます。
15+
{{< skew currentVersionAddMinor 0 >}}のフィルタリングされたリリースノートを見るには[relnotes.k8s.io](https://relnotes.k8s.io/?releaseVersions={{< skew currentVersionAddMinor 0 >}}.0)を参照してください。

content/ru/docs/tutorials/kubernetes-basics/scale/scale-intro.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ <h3>Краткое содержание:</h3>
4141
</ul>
4242
</div>
4343
<div class="content__box content__box_fill">
44-
<p><i>Количество экземпляров можно указать прямо при создании деплоймента, используя параметр <code>--replicas<code> команды <code>kubectl create deployment</code></i></p>
44+
<p><i>Количество экземпляров можно указать прямо при создании деплоймента, используя параметр <code>--replicas</code> команды <code>kubectl create deployment</code></i></p>
4545
</div>
4646
</div>
4747
</div>

0 commit comments

Comments
 (0)