Skip to content

Commit b21f255

Browse files
authored
Merge branch 'kubernetes:main' into vulnerableMicroservices
2 parents e67c1e1 + b715a67 commit b21f255

File tree

66 files changed

+2546
-318
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+2546
-318
lines changed

README-pt.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Você pode executar o website localmente utilizando o Hugo (versão Extended), o
1313
Para usar este repositório, você precisa instalar:
1414

1515
- [npm](https://www.npmjs.com/)
16-
- [Go](https://golang.org/)
16+
- [Go](https://go.dev/)
1717
- [Hugo (versão Extended)](https://gohugo.io/)
1818
- Um container runtime, por exemplo [Docker](https://www.docker.com/).
1919

content/en/_index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ <h2>The Challenges of Migrating 150+ Microservices to Kubernetes</h2>
4343
<button id="desktopShowVideoButton" onclick="kub.showVideo()">Watch Video</button>
4444
<br>
4545
<br>
46-
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america" button id="desktopKCButton">Attend KubeCon North America on October 24-28, 2022</a>
46+
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/" button id="desktopKCButton">Attend KubeCon + CloudNativeCon Europe on April 18-21, 2023</a>
4747
<br>
4848
<br>
4949
<br>
5050
<br>
51-
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/" button id="desktopKCButton">Attend KubeCon Europe on April 17-21, 2023</a>
51+
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/" button id="desktopKCButton">Attend KubeCon + CloudNativeCon North America on November 6-9, 2023</a>
5252
</div>
5353
<div id="videoPlayer">
5454
<iframe data-url="https://www.youtube.com/embed/H06qrNmGqyE?autoplay=1" frameborder="0" allowfullscreen></iframe>

content/en/blog/_posts/2015-04-00-Borg-Predecessor-To-Kubernetes.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,23 @@ To give you a flavor, here are four Kubernetes features that came from our exper
1616

1717

1818

19-
1) [Pods](https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/pods.md). A pod is the unit of scheduling in Kubernetes. It is a resource envelope in which one or more containers run. Containers that are part of the same pod are guaranteed to be scheduled together onto the same machine, and can share state via local volumes.
19+
1) [Pods](/docs/concepts/workloads/pods/). A pod is the unit of scheduling in Kubernetes. It is a resource envelope in which one or more containers run. Containers that are part of the same pod are guaranteed to be scheduled together onto the same machine, and can share state via local volumes.
2020

2121

2222

2323
Borg has a similar abstraction, called an alloc (short for “resource allocation”). Popular uses of allocs in Borg include running a web server that generates logs alongside a lightweight log collection process that ships the log to a cluster filesystem (not unlike fluentd or logstash); running a web server that serves data from a disk directory that is populated by a process that reads data from a cluster filesystem and prepares/stages it for the web server (not unlike a Content Management System); and running user-defined processing functions alongside a storage shard. Pods not only support these use cases, but they also provide an environment similar to running multiple processes in a single VM -- Kubernetes users can deploy multiple co-located, cooperating processes in a pod without having to give up the simplicity of a one-application-per-container deployment model.
2424

2525

2626

27-
2) [Services](https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/services.md). Although Borg’s primary role is to manage the lifecycles of tasks and machines, the applications that run on Borg benefit from many other cluster services, including naming and load balancing. Kubernetes supports naming and load balancing using the service abstraction: a service has a name and maps to a dynamic set of pods defined by a label selector (see next section). Any container in the cluster can connect to the service using the service name. Under the covers, Kubernetes automatically load-balances connections to the service among the pods that match the label selector, and keeps track of where the pods are running as they get rescheduled over time due to failures.
27+
2) [Services](/docs/concepts/services-networking/service/). Although Borg’s primary role is to manage the lifecycles of tasks and machines, the applications that run on Borg benefit from many other cluster services, including naming and load balancing. Kubernetes supports naming and load balancing using the service abstraction: a service has a name and maps to a dynamic set of pods defined by a label selector (see next section). Any container in the cluster can connect to the service using the service name. Under the covers, Kubernetes automatically load-balances connections to the service among the pods that match the label selector, and keeps track of where the pods are running as they get rescheduled over time due to failures.
2828

2929

3030

31-
3) [Labels](https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/labels.md). A container in Borg is usually one replica in a collection of identical or nearly identical containers that correspond to one tier of an Internet service (e.g. the front-ends for Google Maps) or to the workers of a batch job (e.g. a MapReduce). The collection is called a Job, and each replica is called a Task. While the Job is a very useful abstraction, it can be limiting. For example, users often want to manage their entire service (composed of many Jobs) as a single entity, or to uniformly manage several related instances of their service, for example separate canary and stable release tracks. At the other end of the spectrum, users frequently want to reason about and control subsets of tasks within a Job -- the most common example is during rolling updates, when different subsets of the Job need to have different configurations.
31+
3) [Labels](/docs/concepts/overview/working-with-objects/labels/). A container in Borg is usually one replica in a collection of identical or nearly identical containers that correspond to one tier of an Internet service (e.g. the front-ends for Google Maps) or to the workers of a batch job (e.g. a MapReduce). The collection is called a Job, and each replica is called a Task. While the Job is a very useful abstraction, it can be limiting. For example, users often want to manage their entire service (composed of many Jobs) as a single entity, or to uniformly manage several related instances of their service, for example separate canary and stable release tracks. At the other end of the spectrum, users frequently want to reason about and control subsets of tasks within a Job -- the most common example is during rolling updates, when different subsets of the Job need to have different configurations.
3232

3333

3434

35-
Kubernetes supports more flexible collections than Borg by organizing pods using labels, which are arbitrary key/value pairs that users attach to pods (and in fact to any object in the system). Users can create groupings equivalent to Borg Jobs by using a “job:\<jobname\>” label on their pods, but they can also use additional labels to tag the service name, service instance (production, staging, test), and in general, any subset of their pods. A label query (called a “label selector”) is used to select which set of pods an operation should be applied to. Taken together, labels and [replication controllers](https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/replication-controller.md) allow for very flexible update semantics, as well as for operations that span the equivalent of Borg Jobs.
35+
Kubernetes supports more flexible collections than Borg by organizing pods using labels, which are arbitrary key/value pairs that users attach to pods (and in fact to any object in the system). Users can create groupings equivalent to Borg Jobs by using a “job:\<jobname\>” label on their pods, but they can also use additional labels to tag the service name, service instance (production, staging, test), and in general, any subset of their pods. A label query (called a “label selector”) is used to select which set of pods an operation should be applied to. Taken together, labels and [replication controllers](/docs/concepts/workloads/controllers/replicationcontroller/) allow for very flexible update semantics, as well as for operations that span the equivalent of Borg Jobs.
3636

3737

3838

content/en/blog/_posts/2023-01-05-retroactive-default-storage-class.md

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -107,38 +107,42 @@ If you want to test the feature whilst it's alpha, you need to enable the releva
107107
If you would like to see the feature in action and verify it works fine in your cluster here's what you can try:
108108

109109
1. Define a basic PersistentVolumeClaim:
110-
```yaml
111-
apiVersion: v1
112-
kind: PersistentVolumeClaim
113-
metadata:
114-
name: pvc-1
115-
spec:
116-
accessModes:
117-
- ReadWriteOnce
118-
resources:
119-
requests:
120-
storage: 1Gi
121-
```
110+
111+
```yaml
112+
apiVersion: v1
113+
kind: PersistentVolumeClaim
114+
metadata:
115+
name: pvc-1
116+
spec:
117+
accessModes:
118+
- ReadWriteOnce
119+
resources:
120+
requests:
121+
storage: 1Gi
122+
```
122123
123124
2. Create the PersistentVolumeClaim when there is no default StorageClass. The PVC won't provision or bind (unless there is an existing, suitable PV already present) and will remain in <code>Pending</code> state.
124-
```
125-
$ kc get pvc
126-
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
127-
pvc-1 Pending
128-
```
125+
126+
```
127+
$ kc get pvc
128+
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
129+
pvc-1 Pending
130+
```
129131

130132
3. Configure one StorageClass as default.
131-
```
132-
$ kc patch sc -p '{"metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
133-
storageclass.storage.k8s.io/my-storageclass patched
134-
```
133+
134+
```
135+
$ kc patch sc -p '{"metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
136+
storageclass.storage.k8s.io/my-storageclass patched
137+
```
135138

136139
4. Verify that PersistentVolumeClaims is now provisioned correctly and was updated retroactively with new default StorageClass.
137-
```
138-
$ kc get pvc
139-
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
140-
pvc-1 Bound pvc-06a964ca-f997-4780-8627-b5c3bf5a87d8 1Gi RWO my-storageclass 87m
141-
```
140+
141+
```
142+
$ kc get pvc
143+
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
144+
pvc-1 Bound pvc-06a964ca-f997-4780-8627-b5c3bf5a87d8 1Gi RWO my-storageclass 87m
145+
```
142146

143147
### New metrics
144148

content/en/docs/concepts/architecture/nodes.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ weight: 10
99

1010
<!-- overview -->
1111

12-
Kubernetes runs your workload by placing containers into Pods to run on _Nodes_.
12+
Kubernetes runs your {{< glossary_tooltip text="workload" term_id="workload" >}} by placing containers into Pods to run on _Nodes_.
1313
A node may be a virtual or physical machine, depending on the cluster. Each node
1414
is managed by the
1515
{{< glossary_tooltip text="control plane" term_id="control-plane" >}}
@@ -563,7 +563,7 @@ ShutdownGracePeriodCriticalPods are not configured properly. Please refer to abo
563563
section [Graceful Node Shutdown](#graceful-node-shutdown) for more details.
564564

565565
When a node is shutdown but not detected by kubelet's Node Shutdown Manager, the pods
566-
that are part of a StatefulSet will be stuck in terminating status on
566+
that are part of a {{< glossary_tooltip text="StatefulSet" term_id="statefulset" >}} will be stuck in terminating status on
567567
the shutdown node and cannot move to a new running node. This is because kubelet on
568568
the shutdown node is not available to delete the pods so the StatefulSet cannot
569569
create a new pod with the same name. If there are volumes used by the pods, the
@@ -577,7 +577,7 @@ these pods will be stuck in terminating status on the shutdown node forever.
577577
To mitigate the above situation, a user can manually add the taint `node.kubernetes.io/out-of-service` with either `NoExecute`
578578
or `NoSchedule` effect to a Node marking it out-of-service.
579579
If the `NodeOutOfServiceVolumeDetach`[feature gate](/docs/reference/command-line-tools-reference/feature-gates/)
580-
is enabled on `kube-controller-manager`, and a Node is marked out-of-service with this taint, the
580+
is enabled on {{< glossary_tooltip text="kube-controller-manager" term_id="kube-controller-manager" >}}, and a Node is marked out-of-service with this taint, the
581581
pods on the node will be forcefully deleted if there are no matching tolerations on it and volume
582582
detach operations for the pods terminating on the node will happen immediately. This allows the
583583
Pods on the out-of-service node to recover quickly on a different node.
@@ -646,9 +646,11 @@ see [KEP-2400](https://github.com/kubernetes/enhancements/issues/2400) and its
646646

647647
## {{% heading "whatsnext" %}}
648648

649-
* Learn about the [components](/docs/concepts/overview/components/#node-components) that make up a node.
650-
* Read the [API definition for Node](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#node-v1-core).
651-
* Read the [Node](https://git.k8s.io/design-proposals-archive/architecture/architecture.md#the-kubernetes-node)
652-
section of the architecture design document.
653-
* Read about [taints and tolerations](/docs/concepts/scheduling-eviction/taint-and-toleration/).
649+
Learn more about the following:
650+
* [Components](/docs/concepts/overview/components/#node-components) that make up a node.
651+
* [API definition for Node](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#node-v1-core).
652+
* [Node](https://git.k8s.io/design-proposals-archive/architecture/architecture.md#the-kubernetes-node) section of the architecture design document.
653+
* [Taints and Tolerations](/docs/concepts/scheduling-eviction/taint-and-toleration/).
654+
* [Node Resource Managers](/docs/concepts/policy/node-resource-managers/).
655+
* [Resource Management for Windows nodes](/docs/concepts/configuration/windows-resource-management/).
654656

content/en/docs/concepts/extend-kubernetes/operator.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ operator.
119119
* [kubebuilder](https://book.kubebuilder.io/)
120120
* [KubeOps](https://buehler.github.io/dotnet-operator-sdk/) (.NET operator SDK)
121121
* [KUDO](https://kudo.dev/) (Kubernetes Universal Declarative Operator)
122+
* [Mast](https://docs.ansi.services/mast/user_guide/operator/)
122123
* [Metacontroller](https://metacontroller.github.io/metacontroller/intro.html) along with WebHooks that
123124
you implement yourself
124125
* [Operator Framework](https://operatorframework.io)

content/en/docs/concepts/storage/volumes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,7 @@ spec:
549549

550550
<!-- maintenance note: OK to remove all mention of glusterfs once the v1.25 release of
551551
Kubernetes has gone out of support -->
552-
-
552+
553553
Kubernetes {{< skew currentVersion >}} does not include a `glusterfs` volume type.
554554

555555
The GlusterFS in-tree storage driver was deprecated in the Kubernetes v1.25 release

content/en/docs/reference/labels-annotations-taints/_index.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,50 @@ See [topology.kubernetes.io/zone](#topologykubernetesiozone).
310310

311311
{{< note >}} Starting in v1.17, this label is deprecated in favor of [topology.kubernetes.io/zone](#topologykubernetesiozone). {{< /note >}}
312312

313+
### pv.kubernetes.io/bind-completed {#pv-kubernetesiobind-completed}
314+
315+
Example: `pv.kubernetes.io/bind-completed: "yes"`
316+
317+
Used on: PersistentVolumeClaim
318+
319+
When this annotation is set on a PersistentVolumeClaim (PVC), that indicates that the lifecycle
320+
of the PVC has passed through initial binding setup. When present, that information changes
321+
how the control plane interprets the state of PVC objects.
322+
The value of this annotation does not matter to Kubernetes.
323+
324+
### pv.kubernetes.io/bound-by-controller {#pv-kubernetesioboundby-controller}
325+
326+
Example: `pv.kubernetes.io/bound-by-controller: "yes"`
327+
328+
Used on: PersistentVolume, PersistentVolumeClaim
329+
330+
If this annotation is set on a PersistentVolume or PersistentVolumeClaim, it indicates that a storage binding
331+
(PersistentVolume → PersistentVolumeClaim, or PersistentVolumeClaim → PersistentVolume) was installed
332+
by the {{< glossary_tooltip text="controller" term_id="controller" >}}.
333+
If the annotation isn't set, and there is a storage binding in place, the absence of that annotation means that
334+
the binding was done manually. The value of this annotation does not matter.
335+
336+
### pv.kubernetes.io/provisioned-by {#pv-kubernetesiodynamically-provisioned}
337+
338+
Example: `pv.kubernetes.io/provisioned-by: "kubernetes.io/rbd"`
339+
340+
Used on: PersistentVolume
341+
342+
This annotation is added to a PersistentVolume(PV) that has been dynamically provisioned by Kubernetes.
343+
Its value is the name of volume plugin that created the volume. It serves both user (to show where a PV
344+
comes from) and Kubernetes (to recognize dynamically provisioned PVs in its decisions).
345+
346+
### pv.kubernetes.io/migrated-to {#pv-kubernetesio-migratedto}
347+
348+
Example: `pv.kubernetes.io/migrated-to: pd.csi.storage.gke.io`
349+
350+
Used on: PersistentVolume, PersistentVolumeClaim
351+
352+
It is added to a PersistentVolume(PV) and PersistentVolumeClaim(PVC) that is supposed to be
353+
dynamically provisioned/deleted by its corresponding CSI driver through the `CSIMigration` feature gate.
354+
When this annotation is set, the Kubernetes components will "stand-down" and the `external-provisioner`
355+
will act on the objects.
356+
313357
### statefulset.kubernetes.io/pod-name {#statefulsetkubernetesiopod-name}
314358

315359
Example:
@@ -393,6 +437,12 @@ Used on: PersistentVolumeClaim
393437

394438
This annotation will be added to dynamic provisioning required PVC.
395439

440+
### volume.kubernetes.io/selected-node
441+
442+
Used on: PersistentVolumeClaim
443+
444+
This annotation is added to a PVC that is triggered by a scheduler to be dynamically provisioned. Its value is the name of the selected node.
445+
396446
### volumes.kubernetes.io/controller-managed-attach-detach
397447

398448
Used on: Node

content/en/docs/reference/networking/virtual-ips.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ network proxying service on a computer. Although the `kube-proxy` executable su
3939
to use as-is.
4040

4141
<a id="example"></a>
42-
Some of the details in this reference refer to an example: the back end Pods for a stateless
42+
Some of the details in this reference refer to an example: the backend Pods for a stateless
4343
image-processing workload, running with three replicas. Those replicas are
4444
fungible&mdash;frontends do not care which backend they use. While the actual Pods that
4545
compose the backend set may change, the frontend clients should not need to be aware of that,

content/en/docs/tasks/administer-cluster/cluster-upgrade.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,4 +100,4 @@ release with a newer device plugin API version, device plugins must be upgraded
100100
both version before the node is upgraded in order to guarantee that device allocations
101101
continue to complete successfully during the upgrade.
102102

103-
Refer to [API compatiblity](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md/#api-compatibility) and [Kubelet Device Manager API Versions](/docs/reference/node/device-plugin-api-versions.md) for more details.
103+
Refer to [API compatibility](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/#api-compatibility) and [Kubelet Device Manager API Versions](/docs/reference/node/device-plugin-api-versions/) for more details.

0 commit comments

Comments
 (0)