Merge branch 'kubernetes:main' into new_branch
commit
21a2946fc3
10
config.toml
10
config.toml
|
@ -30,8 +30,7 @@ pygmentsStyle = "emacs"
|
|||
enableGitInfo = true
|
||||
|
||||
# Norwegian ("no") is sometimes but not currently used for testing.
|
||||
# Hindi is disabled because it's currently in development.
|
||||
disableLanguages = ["hi", "no"]
|
||||
disableLanguages = ["no"]
|
||||
|
||||
[caches]
|
||||
[caches.assets]
|
||||
|
@ -445,15 +444,16 @@ language_alternatives = ["en"]
|
|||
|
||||
[languages.hi]
|
||||
title = "Kubernetes"
|
||||
description = "Production-Grade Container Orchestration"
|
||||
languageName = "हिन्दी (Hindi)"
|
||||
description = "प्रोडक्शन-ग्रेड कंटेनर ऑर्केस्ट्रेशन"
|
||||
languageName = "हिन्दी (Hindi)"
|
||||
languageNameLatinScript = "Hindi"
|
||||
weight = 12
|
||||
contentDir = "content/hi"
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.hi.params]
|
||||
time_format_blog = "01.02.2006"
|
||||
time_format_blog = "02.01.2006"
|
||||
# A list of language codes to look for untranslated content, ordered from left to right.
|
||||
language_alternatives = ["en"]
|
||||
|
||||
[languages.vi]
|
||||
|
|
|
@ -32,7 +32,7 @@ The Linux kernel offers two versions of cgroups: cgroup v1 and cgroup v2.
|
|||
cgroup v2 is the latest version of the Linux cgroup API. cgroup v2 provides a
|
||||
unified control system with enhanced resource management capabilities.
|
||||
|
||||
cgroup v2 has been development in the Linux Kernel since 2016 and in recent
|
||||
cgroup v2 has been in development in the Linux Kernel since 2016 and in recent
|
||||
years has matured across the container ecosystem. With Kubernetes 1.25, cgroup
|
||||
v2 support has graduated to general availability.
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ Volume management components are shipped as Kubernetes volume
|
|||
[plugin](/docs/concepts/storage/volumes/#types-of-volumes).
|
||||
The following broad classes of Kubernetes volume plugins are supported on Windows:
|
||||
|
||||
* [`FlexVolume plugins`](/docs/concepts/storage/volumes/#flexVolume)
|
||||
* [`FlexVolume plugins`](/docs/concepts/storage/volumes/#flexvolume-deprecated)
|
||||
* Please note that FlexVolumes have been deprecated as of 1.23
|
||||
* [`CSI Plugins`](/docs/concepts/storage/volumes/#csi)
|
||||
|
||||
|
|
|
@ -212,28 +212,29 @@ sudo systemctl enable --now kubelet
|
|||
Install CNI plugins (required for most pod network):
|
||||
|
||||
```bash
|
||||
CNI_VERSION="v0.8.2"
|
||||
CNI_PLUGINS_VERSION="v1.1.1"
|
||||
ARCH="amd64"
|
||||
sudo mkdir -p /opt/cni/bin
|
||||
curl -L "https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/cni-plugins-linux-${ARCH}-${CNI_VERSION}.tgz" | sudo tar -C /opt/cni/bin -xz
|
||||
DEST="/opt/cni/bin"
|
||||
sudo mkdir -p "$DEST"
|
||||
curl -L "https://github.com/containernetworking/plugins/releases/download/${CNI_PLUGINS_VERSION}/cni-plugins-linux-${ARCH}-${CNI_PLUGINS_VERSION}.tgz" | sudo tar -C "$DEST" -xz
|
||||
```
|
||||
|
||||
Define the directory to download command files
|
||||
|
||||
{{< note >}}
|
||||
The `DOWNLOAD_DIR` variable must be set to a writable directory.
|
||||
If you are running Flatcar Container Linux, set `DOWNLOAD_DIR=/opt/bin`.
|
||||
If you are running Flatcar Container Linux, set `DOWNLOAD_DIR="/opt/bin"`.
|
||||
{{< /note >}}
|
||||
|
||||
```bash
|
||||
DOWNLOAD_DIR=/usr/local/bin
|
||||
sudo mkdir -p $DOWNLOAD_DIR
|
||||
DOWNLOAD_DIR="/usr/local/bin"
|
||||
sudo mkdir -p "$DOWNLOAD_DIR"
|
||||
```
|
||||
|
||||
Install crictl (required for kubeadm / Kubelet Container Runtime Interface (CRI))
|
||||
|
||||
```bash
|
||||
CRICTL_VERSION="v1.22.0"
|
||||
CRICTL_VERSION="v1.25.0"
|
||||
ARCH="amd64"
|
||||
curl -L "https://github.com/kubernetes-sigs/cri-tools/releases/download/${CRICTL_VERSION}/crictl-${CRICTL_VERSION}-linux-${ARCH}.tar.gz" | sudo tar -C $DOWNLOAD_DIR -xz
|
||||
```
|
||||
|
|
|
@ -16,61 +16,82 @@ min-kubernetes-server-version: v1.18
|
|||
|
||||
{{< feature-state state="beta" for_k8s_version="v1.18" >}}
|
||||
|
||||
An increasing number of systems leverage a combination of CPUs and hardware accelerators to support latency-critical execution and high-throughput parallel computation. These include workloads in fields such as telecommunications, scientific computing, machine learning, financial services and data analytics. Such hybrid systems comprise a high performance environment.
|
||||
An increasing number of systems leverage a combination of CPUs and hardware accelerators to
|
||||
support latency-critical execution and high-throughput parallel computation. These include
|
||||
workloads in fields such as telecommunications, scientific computing, machine learning, financial
|
||||
services and data analytics. Such hybrid systems comprise a high performance environment.
|
||||
|
||||
In order to extract the best performance, optimizations related to CPU isolation, memory and device locality are required. However, in Kubernetes, these optimizations are handled by a disjoint set of components.
|
||||
In order to extract the best performance, optimizations related to CPU isolation, memory and
|
||||
device locality are required. However, in Kubernetes, these optimizations are handled by a
|
||||
disjoint set of components.
|
||||
|
||||
_Topology Manager_ is a Kubelet component that aims to coordinate the set of components that are responsible for these optimizations.
|
||||
_Topology Manager_ is a Kubelet component that aims to coordinate the set of components that are
|
||||
responsible for these optimizations.
|
||||
|
||||
|
||||
|
||||
## {{% heading "prerequisites" %}}
|
||||
|
||||
|
||||
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
|
||||
|
||||
|
||||
|
||||
<!-- steps -->
|
||||
|
||||
## How Topology Manager Works
|
||||
|
||||
Prior to the introduction of Topology Manager, the CPU and Device Manager in Kubernetes make resource allocation decisions independently of each other.
|
||||
This can result in undesirable allocations on multiple-socketed systems, performance/latency sensitive applications will suffer due to these undesirable allocations.
|
||||
Undesirable in this case meaning for example, CPUs and devices being allocated from different NUMA Nodes thus, incurring additional latency.
|
||||
Prior to the introduction of Topology Manager, the CPU and Device Manager in Kubernetes make
|
||||
resource allocation decisions independently of each other. This can result in undesirable
|
||||
allocations on multiple-socketed systems, performance/latency sensitive applications will suffer
|
||||
due to these undesirable allocations. Undesirable in this case meaning for example, CPUs and
|
||||
devices being allocated from different NUMA Nodes thus, incurring additional latency.
|
||||
|
||||
The Topology Manager is a Kubelet component, which acts as a source of truth so that other Kubelet components can make topology aligned resource allocation choices.
|
||||
The Topology Manager is a Kubelet component, which acts as a source of truth so that other Kubelet
|
||||
components can make topology aligned resource allocation choices.
|
||||
|
||||
The Topology Manager provides an interface for components, called *Hint Providers*, to send and receive topology information. Topology Manager has a set of node level policies which are explained below.
|
||||
The Topology Manager provides an interface for components, called *Hint Providers*, to send and
|
||||
receive topology information. Topology Manager has a set of node level policies which are
|
||||
explained below.
|
||||
|
||||
The Topology manager receives Topology information from the *Hint Providers* as a bitmask denoting NUMA Nodes available and a preferred allocation indication. The Topology Manager policies perform a set of operations on the hints provided and converge on the hint determined by the policy to give the optimal result, if an undesirable hint is stored the preferred field for the hint will be set to false. In the current policies preferred is the narrowest preferred mask.
|
||||
The selected hint is stored as part of the Topology Manager. Depending on the policy configured the pod can be accepted or rejected from the node based on the selected hint.
|
||||
The hint is then stored in the Topology Manager for use by the *Hint Providers* when making the resource allocation decisions.
|
||||
The Topology manager receives Topology information from the *Hint Providers* as a bitmask denoting
|
||||
NUMA Nodes available and a preferred allocation indication. The Topology Manager policies perform
|
||||
a set of operations on the hints provided and converge on the hint determined by the policy to
|
||||
give the optimal result, if an undesirable hint is stored the preferred field for the hint will be
|
||||
set to false. In the current policies preferred is the narrowest preferred mask.
|
||||
The selected hint is stored as part of the Topology Manager. Depending on the policy configured
|
||||
the pod can be accepted or rejected from the node based on the selected hint.
|
||||
The hint is then stored in the Topology Manager for use by the *Hint Providers* when making the
|
||||
resource allocation decisions.
|
||||
|
||||
### Enable the Topology Manager feature
|
||||
|
||||
Support for the Topology Manager requires `TopologyManager` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) to be enabled. It is enabled by default starting with Kubernetes 1.18.
|
||||
Support for the Topology Manager requires `TopologyManager`
|
||||
[feature gate](/docs/reference/command-line-tools-reference/feature-gates/) to be enabled.
|
||||
It is enabled by default starting with Kubernetes 1.18.
|
||||
|
||||
## Topology Manager Scopes and Policies
|
||||
|
||||
The Topology Manager currently:
|
||||
- Aligns Pods of all QoS classes.
|
||||
- Aligns the requested resources that Hint Provider provides topology hints for.
|
||||
|
||||
- Aligns Pods of all QoS classes.
|
||||
- Aligns the requested resources that Hint Provider provides topology hints for.
|
||||
|
||||
If these conditions are met, the Topology Manager will align the requested resources.
|
||||
|
||||
In order to customise how this alignment is carried out, the Topology Manager provides two distinct knobs: `scope` and `policy`.
|
||||
|
||||
The `scope` defines the granularity at which you would like resource alignment to be performed (e.g. at the `pod` or `container` level). And the `policy` defines the actual strategy used to carry out the alignment (e.g. `best-effort`, `restricted`, `single-numa-node`, etc.).
|
||||
In order to customise how this alignment is carried out, the Topology Manager provides two
|
||||
distinct knobs: `scope` and `policy`.
|
||||
|
||||
The `scope` defines the granularity at which you would like resource alignment to be performed
|
||||
(e.g. at the `pod` or `container` level). And the `policy` defines the actual strategy used to
|
||||
carry out the alignment (e.g. `best-effort`, `restricted`, `single-numa-node`, etc.).
|
||||
Details on the various `scopes` and `policies` available today can be found below.
|
||||
|
||||
{{< note >}}
|
||||
To align CPU resources with other requested resources in a Pod Spec, the CPU Manager should be enabled and proper CPU Manager policy should be configured on a Node. See [control CPU Management Policies](/docs/tasks/administer-cluster/cpu-management-policies/).
|
||||
To align CPU resources with other requested resources in a Pod Spec, the CPU Manager should be
|
||||
enabled and proper CPU Manager policy should be configured on a Node.
|
||||
See [control CPU Management Policies](/docs/tasks/administer-cluster/cpu-management-policies/).
|
||||
{{< /note >}}
|
||||
|
||||
{{< note >}}
|
||||
To align memory (and hugepages) resources with other requested resources in a Pod Spec, the Memory Manager should be enabled and proper Memory Manager policy should be configured on a Node. Examine [Memory Manager](/docs/tasks/administer-cluster/memory-manager/) documentation.
|
||||
To align memory (and hugepages) resources with other requested resources in a Pod Spec, the Memory
|
||||
Manager should be enabled and proper Memory Manager policy should be configured on a Node. Examine
|
||||
[Memory Manager](/docs/tasks/administer-cluster/memory-manager/) documentation.
|
||||
{{< /note >}}
|
||||
|
||||
### Topology Manager Scopes
|
||||
|
@ -80,43 +101,61 @@ The Topology Manager can deal with the alignment of resources in a couple of dis
|
|||
* `container` (default)
|
||||
* `pod`
|
||||
|
||||
Either option can be selected at a time of the kubelet startup, with `--topology-manager-scope` flag.
|
||||
Either option can be selected at a time of the kubelet startup, with `--topology-manager-scope`
|
||||
flag.
|
||||
|
||||
### container scope
|
||||
|
||||
The `container` scope is used by default.
|
||||
|
||||
Within this scope, the Topology Manager performs a number of sequential resource alignments, i.e., for each container (in a pod) a separate alignment is computed. In other words, there is no notion of grouping the containers to a specific set of NUMA nodes, for this particular scope. In effect, the Topology Manager performs an arbitrary alignment of individual containers to NUMA nodes.
|
||||
Within this scope, the Topology Manager performs a number of sequential resource alignments, i.e.,
|
||||
for each container (in a pod) a separate alignment is computed. In other words, there is no notion
|
||||
of grouping the containers to a specific set of NUMA nodes, for this particular scope. In effect,
|
||||
the Topology Manager performs an arbitrary alignment of individual containers to NUMA nodes.
|
||||
|
||||
The notion of grouping the containers was endorsed and implemented on purpose in the following scope, for example the `pod` scope.
|
||||
The notion of grouping the containers was endorsed and implemented on purpose in the following
|
||||
scope, for example the `pod` scope.
|
||||
|
||||
### pod scope
|
||||
|
||||
To select the `pod` scope, start the kubelet with the command line option `--topology-manager-scope=pod`.
|
||||
|
||||
This scope allows for grouping all containers in a pod to a common set of NUMA nodes. That is, the Topology Manager treats a pod as a whole and attempts to allocate the entire pod (all containers) to either a single NUMA node or a common set of NUMA nodes. The following examples illustrate the alignments produced by the Topology Manager on different occasions:
|
||||
This scope allows for grouping all containers in a pod to a common set of NUMA nodes. That is, the
|
||||
Topology Manager treats a pod as a whole and attempts to allocate the entire pod (all containers)
|
||||
to either a single NUMA node or a common set of NUMA nodes. The following examples illustrate the
|
||||
alignments produced by the Topology Manager on different occasions:
|
||||
|
||||
* all containers can be and are allocated to a single NUMA node;
|
||||
* all containers can be and are allocated to a shared set of NUMA nodes.
|
||||
|
||||
The total amount of particular resource demanded for the entire pod is calculated according to [effective requests/limits](/docs/concepts/workloads/pods/init-containers/#resources) formula, and thus, this total value is equal to the maximum of:
|
||||
The total amount of particular resource demanded for the entire pod is calculated according to
|
||||
[effective requests/limits](/docs/concepts/workloads/pods/init-containers/#resources) formula, and
|
||||
thus, this total value is equal to the maximum of:
|
||||
|
||||
* the sum of all app container requests,
|
||||
* the maximum of init container requests,
|
||||
|
||||
for a resource.
|
||||
|
||||
Using the `pod` scope in tandem with `single-numa-node` Topology Manager policy is specifically valuable for workloads that are latency sensitive or for high-throughput applications that perform IPC. By combining both options, you are able to place all containers in a pod onto a single NUMA node; hence, the inter-NUMA communication overhead can be eliminated for that pod.
|
||||
Using the `pod` scope in tandem with `single-numa-node` Topology Manager policy is specifically
|
||||
valuable for workloads that are latency sensitive or for high-throughput applications that perform
|
||||
IPC. By combining both options, you are able to place all containers in a pod onto a single NUMA
|
||||
node; hence, the inter-NUMA communication overhead can be eliminated for that pod.
|
||||
|
||||
In the case of `single-numa-node` policy, a pod is accepted only if a suitable set of NUMA nodes is present among possible allocations. Reconsider the example above:
|
||||
In the case of `single-numa-node` policy, a pod is accepted only if a suitable set of NUMA nodes
|
||||
is present among possible allocations. Reconsider the example above:
|
||||
|
||||
* a set containing only a single NUMA node - it leads to pod being admitted,
|
||||
* whereas a set containing more NUMA nodes - it results in pod rejection (because instead of one NUMA node, two or more NUMA nodes are required to satisfy the allocation).
|
||||
* whereas a set containing more NUMA nodes - it results in pod rejection (because instead of one
|
||||
NUMA node, two or more NUMA nodes are required to satisfy the allocation).
|
||||
|
||||
To recap, Topology Manager first computes a set of NUMA nodes and then tests it against Topology Manager policy, which either leads to the rejection or admission of the pod.
|
||||
To recap, Topology Manager first computes a set of NUMA nodes and then tests it against Topology
|
||||
Manager policy, which either leads to the rejection or admission of the pod.
|
||||
|
||||
### Topology Manager Policies
|
||||
|
||||
Topology Manager supports four allocation policies. You can set a policy via a Kubelet flag, `--topology-manager-policy`.
|
||||
There are four supported policies:
|
||||
Topology Manager supports four allocation policies. You can set a policy via a Kubelet flag,
|
||||
`--topology-manager-policy`. There are four supported policies:
|
||||
|
||||
* `none` (default)
|
||||
* `best-effort`
|
||||
|
@ -124,7 +163,9 @@ There are four supported policies:
|
|||
* `single-numa-node`
|
||||
|
||||
{{< note >}}
|
||||
If Topology Manager is configured with the **pod** scope, the container, which is considered by the policy, is reflecting requirements of the entire pod, and thus each container from the pod will result with **the same** topology alignment decision.
|
||||
If Topology Manager is configured with the **pod** scope, the container, which is considered by
|
||||
the policy, is reflecting requirements of the entire pod, and thus each container from the pod
|
||||
will result with **the same** topology alignment decision.
|
||||
{{< /note >}}
|
||||
|
||||
### none policy {#policy-none}
|
||||
|
@ -133,40 +174,44 @@ This is the default policy and does not perform any topology alignment.
|
|||
|
||||
### best-effort policy {#policy-best-effort}
|
||||
|
||||
For each container in a Pod, the kubelet, with `best-effort` topology
|
||||
management policy, calls each Hint Provider to discover their resource availability.
|
||||
Using this information, the Topology Manager stores the
|
||||
preferred NUMA Node affinity for that container. If the affinity is not preferred,
|
||||
Topology Manager will store this and admit the pod to the node anyway.
|
||||
For each container in a Pod, the kubelet, with `best-effort` topology management policy, calls
|
||||
each Hint Provider to discover their resource availability. Using this information, the Topology
|
||||
Manager stores the preferred NUMA Node affinity for that container. If the affinity is not
|
||||
preferred, Topology Manager will store this and admit the pod to the node anyway.
|
||||
|
||||
The *Hint Providers* can then use this information when making the
|
||||
resource allocation decision.
|
||||
|
||||
### restricted policy {#policy-restricted}
|
||||
|
||||
For each container in a Pod, the kubelet, with `restricted` topology
|
||||
management policy, calls each Hint Provider to discover their resource availability.
|
||||
Using this information, the Topology Manager stores the
|
||||
preferred NUMA Node affinity for that container. If the affinity is not preferred,
|
||||
Topology Manager will reject this pod from the node. This will result in a pod in a `Terminated` state with a pod admission failure.
|
||||
For each container in a Pod, the kubelet, with `restricted` topology management policy, calls each
|
||||
Hint Provider to discover their resource availability. Using this information, the Topology
|
||||
Manager stores the preferred NUMA Node affinity for that container. If the affinity is not
|
||||
preferred, Topology Manager will reject this pod from the node. This will result in a pod in a
|
||||
`Terminated` state with a pod admission failure.
|
||||
|
||||
Once the pod is in a `Terminated` state, the Kubernetes scheduler will **not** attempt to reschedule the pod. It is recommended to use a ReplicaSet or Deployment to trigger a redeploy of the pod.
|
||||
An external control loop could be also implemented to trigger a redeployment of pods that have the `Topology Affinity` error.
|
||||
Once the pod is in a `Terminated` state, the Kubernetes scheduler will **not** attempt to
|
||||
reschedule the pod. It is recommended to use a ReplicaSet or Deployment to trigger a redeploy of
|
||||
the pod. An external control loop could be also implemented to trigger a redeployment of pods that
|
||||
have the `Topology Affinity` error.
|
||||
|
||||
If the pod is admitted, the *Hint Providers* can then use this information when making the
|
||||
resource allocation decision.
|
||||
|
||||
### single-numa-node policy {#policy-single-numa-node}
|
||||
|
||||
For each container in a Pod, the kubelet, with `single-numa-node` topology
|
||||
management policy, calls each Hint Provider to discover their resource availability.
|
||||
Using this information, the Topology Manager determines if a single NUMA Node affinity is possible.
|
||||
If it is, Topology Manager will store this and the *Hint Providers* can then use this information when making the
|
||||
resource allocation decision.
|
||||
If, however, this is not possible then the Topology Manager will reject the pod from the node. This will result in a pod in a `Terminated` state with a pod admission failure.
|
||||
For each container in a Pod, the kubelet, with `single-numa-node` topology management policy,
|
||||
calls each Hint Provider to discover their resource availability. Using this information, the
|
||||
Topology Manager determines if a single NUMA Node affinity is possible. If it is, Topology
|
||||
Manager will store this and the *Hint Providers* can then use this information when making the
|
||||
resource allocation decision. If, however, this is not possible then the Topology Manager will
|
||||
reject the pod from the node. This will result in a pod in a `Terminated` state with a pod
|
||||
admission failure.
|
||||
|
||||
Once the pod is in a `Terminated` state, the Kubernetes scheduler will **not** attempt to reschedule the pod. It is recommended to use a Deployment with replicas to trigger a redeploy of the Pod.
|
||||
An external control loop could be also implemented to trigger a redeployment of pods that have the `Topology Affinity` error.
|
||||
Once the pod is in a `Terminated` state, the Kubernetes scheduler will **not** attempt to
|
||||
reschedule the pod. It is recommended to use a Deployment with replicas to trigger a redeploy of
|
||||
the Pod.An external control loop could be also implemented to trigger a redeployment of pods
|
||||
that have the `Topology Affinity` error.
|
||||
|
||||
### Pod Interactions with Topology Manager Policies
|
||||
|
||||
|
@ -179,8 +224,7 @@ spec:
|
|||
image: nginx
|
||||
```
|
||||
|
||||
This pod runs in the `BestEffort` QoS class because no resource `requests` or
|
||||
`limits` are specified.
|
||||
This pod runs in the `BestEffort` QoS class because no resource `requests` or `limits` are specified.
|
||||
|
||||
```yaml
|
||||
spec:
|
||||
|
@ -196,8 +240,10 @@ spec:
|
|||
|
||||
This pod runs in the `Burstable` QoS class because requests are less than limits.
|
||||
|
||||
If the selected policy is anything other than `none`, Topology Manager would consider these Pod specifications. The Topology Manager would consult the Hint Providers to get topology hints. In the case of the `static`, the CPU Manager policy would return default topology hint, because these Pods do not have explicitly request CPU resources.
|
||||
|
||||
If the selected policy is anything other than `none`, Topology Manager would consider these Pod
|
||||
specifications. The Topology Manager would consult the Hint Providers to get topology hints.
|
||||
In the case of the `static`, the CPU Manager policy would return default topology hint, because
|
||||
these Pods do not have explicitly request CPU resources.
|
||||
|
||||
```yaml
|
||||
spec:
|
||||
|
@ -215,7 +261,8 @@ spec:
|
|||
example.com/device: "1"
|
||||
```
|
||||
|
||||
This pod with integer CPU request runs in the `Guaranteed` QoS class because `requests` are equal to `limits`.
|
||||
This pod with integer CPU request runs in the `Guaranteed` QoS class because `requests` are equal
|
||||
to `limits`.
|
||||
|
||||
|
||||
```yaml
|
||||
|
@ -234,8 +281,8 @@ spec:
|
|||
example.com/device: "1"
|
||||
```
|
||||
|
||||
This pod with sharing CPU request runs in the `Guaranteed` QoS class because `requests` are equal to `limits`.
|
||||
|
||||
This pod with sharing CPU request runs in the `Guaranteed` QoS class because `requests` are equal
|
||||
to `limits`.
|
||||
|
||||
```yaml
|
||||
spec:
|
||||
|
@ -250,21 +297,37 @@ spec:
|
|||
example.com/deviceA: "1"
|
||||
example.com/deviceB: "1"
|
||||
```
|
||||
|
||||
This pod runs in the `BestEffort` QoS class because there are no CPU and memory requests.
|
||||
|
||||
The Topology Manager would consider the above pods. The Topology Manager would consult the Hint Providers, which are CPU and Device Manager to get topology hints for the pods.
|
||||
The Topology Manager would consider the above pods. The Topology Manager would consult the Hint
|
||||
Providers, which are CPU and Device Manager to get topology hints for the pods.
|
||||
|
||||
In the case of the `Guaranteed` pod with integer CPU request, the `static` CPU Manager policy would return topology hints relating to the exclusive CPU and the Device Manager would send back hints for the requested device.
|
||||
In the case of the `Guaranteed` pod with integer CPU request, the `static` CPU Manager policy
|
||||
would return topology hints relating to the exclusive CPU and the Device Manager would send back
|
||||
hints for the requested device.
|
||||
|
||||
In the case of the `Guaranteed` pod with sharing CPU request, the `static` CPU Manager policy would return default topology hint as there is no exclusive CPU request and the Device Manager would send back hints for the requested device.
|
||||
In the case of the `Guaranteed` pod with sharing CPU request, the `static` CPU Manager policy
|
||||
would return default topology hint as there is no exclusive CPU request and the Device Manager
|
||||
would send back hints for the requested device.
|
||||
|
||||
In the above two cases of the `Guaranteed` pod, the `none` CPU Manager policy would return default topology hint.
|
||||
In the above two cases of the `Guaranteed` pod, the `none` CPU Manager policy would return default
|
||||
topology hint.
|
||||
|
||||
In the case of the `BestEffort` pod, the `static` CPU Manager policy would send back the default topology hint as there is no CPU request and the Device Manager would send back the hints for each of the requested devices.
|
||||
In the case of the `BestEffort` pod, the `static` CPU Manager policy would send back the default
|
||||
topology hint as there is no CPU request and the Device Manager would send back the hints for each
|
||||
of the requested devices.
|
||||
|
||||
Using this information the Topology Manager calculates the optimal hint for the pod and stores this information, which will be used by the Hint Providers when they are making their resource assignments.
|
||||
Using this information the Topology Manager calculates the optimal hint for the pod and stores
|
||||
this information, which will be used by the Hint Providers when they are making their resource
|
||||
assignments.
|
||||
|
||||
### Known Limitations
|
||||
1. The maximum number of NUMA nodes that Topology Manager allows is 8. With more than 8 NUMA nodes there will be a state explosion when trying to enumerate the possible NUMA affinities and generating their hints.
|
||||
|
||||
2. The scheduler is not topology-aware, so it is possible to be scheduled on a node and then fail on the node due to the Topology Manager.
|
||||
1. The maximum number of NUMA nodes that Topology Manager allows is 8. With more than 8 NUMA nodes
|
||||
there will be a state explosion when trying to enumerate the possible NUMA affinities and
|
||||
generating their hints.
|
||||
|
||||
2. The scheduler is not topology-aware, so it is possible to be scheduled on a node and then fail
|
||||
on the node due to the Topology Manager.
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ spec:
|
|||
hostNetwork: true
|
||||
containers:
|
||||
- name: konnectivity-server-container
|
||||
image: us.gcr.io/k8s-artifacts-prod/kas-network-proxy/proxy-server:v0.0.16
|
||||
image: registry.k8s.io/kas-network-proxy/proxy-server:v0.0.32
|
||||
command: ["/proxy-server"]
|
||||
args: [
|
||||
"--logtostderr=true",
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
---
|
||||
title: "प्रोडक्शन-ग्रेड कंटेनर ऑर्केस्ट्रेशन"
|
||||
abstract: "स्वचालित कंटेनर डिप्लॉयमेंट, स्केलिंग और प्रबंधन"
|
||||
cid: home
|
||||
sitemap:
|
||||
priority: 1.0
|
||||
---
|
||||
|
||||
{{< blocks/section id="oceanNodes" >}}
|
||||
{{% blocks/feature image="flower" %}}
|
||||
[कुबेरनेट्स]({{< relref "/docs/concepts/overview/what-is-kubernetes" >}}), जो K8s के रूप में भी जाना जाता है, कंटेनरीकृत एप्लीकेशन के डिप्लॉयमेंट, स्केलिंग और प्रबंधन को स्वचालित करने के लिए एक ओपन-सोर्स सिस्टम है।
|
||||
|
||||
यह आसान प्रबंधन और खोज के लिए लॉजिकल इकाइयों में एक एप्लीकेशन बनाने वाले कंटेनरों को समूहित करता है। कुबेरनेट्स [Google में उत्पादन कार्यभार चलाने के 15 वर्षों के अनुभव](http://queue.acm.org/detail.cfm?id=2898444) पर निर्माणित है, जो समुदाय के सर्वोत्तम-नस्लीय विचारों और प्रथाओं के साथ संयुक्त है।
|
||||
{{% /blocks/feature %}}
|
||||
|
||||
{{% blocks/feature image="scalable" %}}
|
||||
#### वैश्विक स्केल क्षमता <!--Planet Scale-->
|
||||
|
||||
उन्हीं सिद्धांतों पर डिज़ाइन किया गया है जो Google को एक सप्ताह में अरबों कंटेनर चलाने की अनुमति देता है, कुबेरनेट्स आपकी ऑप्स टीम को बढ़ाए बिना स्केल कर सकता है।
|
||||
|
||||
{{% /blocks/feature %}}
|
||||
|
||||
{{% blocks/feature image="blocks" %}}
|
||||
#### आवश्यकता अनुसार विकसित होना <!--Never Outgrow-->
|
||||
|
||||
चाहे स्थानीय स्तर पर परीक्षण हो या वैश्विक उद्यम चलाना, कुबेरनेट्स आपके एप्लीकेशन को लगातार और आसानी से वितरित करने के लिए बढ़ता है, चाहे आपकी आवश्यकता कितनी भी जटिल क्यों न हो।
|
||||
|
||||
{{% /blocks/feature %}}
|
||||
|
||||
{{% blocks/feature image="suitcase" %}}
|
||||
#### K8s कहीं भी चलाएँ
|
||||
|
||||
कुबेरनेट्स ओपन सोर्स है जो आपको ऑन-प्रिमाइसेस, हाइब्रिड या पब्लिक क्लाउड इन्फ्रास्ट्रक्चर का लाभ उठाने की स्वतंत्रता देता है, जिससे आप आसानी से वर्कलोड को उस स्थान पर ले जा सकते हैं जहां यह आपके लिए मायने रखता है।
|
||||
|
||||
{{% /blocks/feature %}}
|
||||
|
||||
{{< /blocks/section >}}
|
||||
|
||||
{{< blocks/section id="video" background-image="kub_video_banner_homepage" >}}
|
||||
<div class="light-text">
|
||||
<h2>150+ माइक्रोसर्विसेज को कुबेरनेट्स में माइग्रेट करने की चुनौतियाँ</h2>
|
||||
<p>Sarah Wells द्वारा, Technical Director for Operations and Reliability, Financial Times</p>
|
||||
<button id="desktopShowVideoButton" onclick="kub.showVideo()">वीडियो देखें</button>
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/?utm_source=kubernetes.io&utm_medium=nav&utm_campaign=kccncna21" button id="desktopKCButton">अक्टूबर 11-15, 2021 को KubeCon North America में भाग लें</a>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe-2022/?utm_source=kubernetes.io&utm_medium=nav&utm_campaign=kccnceu22" button id="desktopKCButton">मई 17-20, 2022 को KubeCon Europe में भाग लें</a>
|
||||
</div>
|
||||
<div id="videoPlayer">
|
||||
<iframe data-url="https://www.youtube.com/embed/H06qrNmGqyE?autoplay=1" frameborder="0" allowfullscreen></iframe>
|
||||
<button id="closeButton"></button>
|
||||
</div>
|
||||
{{< /blocks/section >}}
|
||||
|
||||
{{< blocks/kubernetes-features >}}
|
||||
|
||||
{{< blocks/case-studies >}}
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
title: वैयक्तिक अध्ययन
|
||||
linkTitle: वैयक्तिक अध्ययन
|
||||
bigheader: कुबेरनेट्स उपयोगकर्ता वैयक्तिक अध्ययन
|
||||
abstract: उत्पादन में कुबेरनेट्स उपयोग करने वाले उपयोगकर्ताओं का एक संग्रह।
|
||||
layout: basic
|
||||
class: gridPage
|
||||
cid: caseStudies
|
||||
---
|
|
@ -0,0 +1,95 @@
|
|||
---
|
||||
title: कुबेरनेट्स क्या है?
|
||||
description: >
|
||||
कुबेरनेट्स कंटेनरीकृत वर्कलोड और सेवाओं के प्रबंधन के लिए एक पोर्टेबल, एक्स्टेंसिबल, ओपन-सोर्स प्लेटफॉर्म है, जो घोषणात्मक कॉन्फ़िगरेशन और स्वचालन दोनों की सुविधा प्रदान करता है। इसका एक बड़ा, तेजी से बढ़ता हुआ पारिस्थितिकी तंत्र है। कुबेरनेट्स सेवाएँ, समर्थन और उपकरण व्यापक रूप से उपलब्ध हैं।
|
||||
content_type: concept
|
||||
weight: 10
|
||||
card:
|
||||
name: concepts
|
||||
weight: 10
|
||||
sitemap:
|
||||
priority: 0.9
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
यह पृष्ठ कुबेरनेट्स का एक अवलोकन है।
|
||||
|
||||
<!-- body -->
|
||||
कुबेरनेट्स कंटेनरीकृत वर्कलोड और सेवाओं के प्रबंधन के लिए एक पोर्टेबल, एक्स्टेंसिबल, ओपन-सोर्स प्लेटफॉर्म है, जो घोषणात्मक कॉन्फ़िगरेशन और स्वचालन दोनों की सुविधा प्रदान करता है। इसका एक बड़ा, तेजी से बढ़ता हुआ पारिस्थितिकी तंत्र है। कुबेरनेट्स सेवाएँ, समर्थन और उपकरण व्यापक रूप से उपलब्ध हैं।
|
||||
|
||||
कुबेरनेट्स नाम ग्रीक से उत्पन्न हुआ है, जिसका अर्थ है हेल्समैन या पायलट।
|
||||
K8s एक संक्षिप्त नाम के रूप में "K" और "s" के बीच आठ अक्षरों को गिनने का परिणाम है। Google ने 2014 में कुबेरनेट्स प्रोजेक्ट को ओपन-सोर्स किया। कुबेरनेट्स [गूगल के 15 से अधिक वर्षों के अनुभव](/blog/2015/04/borg-predecessor-to-kubernetes/) को समुदाय से सर्वोत्तम नस्ल के विचारों और प्रथाओं के साथ बड़े पैमाने पर उत्पादन कार्यभार को जोड़ती है।
|
||||
|
||||
## काल में वापस जाना
|
||||
|
||||
आइए काल में वापस जाकर एक नज़र डालते हैं कि कुबेरनेट्स इतना उपयोगी क्यों है।
|
||||
|
||||
![डिप्लॉयमेंट का विकास](/images/docs/Container_Evolution.svg)
|
||||
|
||||
**पारंपरिक डिप्लॉयमेंट युग:**
|
||||
प्रारंभ में, संगठनों ने भौतिक (physical) सर्वरों पर एप्लिकेशन चलाए। भौतिक (physical) सर्वर में एप्लिकेशनो के लिए संसाधन सीमाओं को परिभाषित करने का कोई तरीका नहीं था, और इससे संसाधन आवंटन समस्याएं उत्पन्न हुईं। उदाहरण के लिए, यदि एक से अधिक एप्लिकेशने एक भौतिक सर्वर पर चलते हैं, तो ऐसे उदाहरण हो सकते हैं जहां एक एप्लिकेशन अधिकांश संसाधनों को ले लेगा, और इसके परिणामस्वरूप, अन्य एप्लिकेशने खराब प्रदर्शन करेंगे। इसका एक समाधान यह होगा कि प्रत्येक एप्लिकेशन को एक अलग भौतिक सर्वर पर चलाया जाए। लेकिन यह पैमाना नहीं था क्योंकि संसाधनों का कम उपयोग किया गया था, और संगठनों के लिए कई भौतिक सर्वरों को बनाए रखना महंगा था।
|
||||
|
||||
**वर्चुअलाइज्ड डिप्लॉयमेंट युग:** एक समाधान के रूप में, वर्चुअलाइजेशन पेश किया गया था। यह आपको एक भौतिक सर्वर के सीपीयू (CPU) पर कई वर्चुअल मशीन (वीएम) चलाने की अनुमति देता है। वर्चुअलाइजेशन एप्लिकेशनो को वीएम (VM) के बीच अलग-थलग करने की अनुमति देता है और सुरक्षा का एक स्तर प्रदान करता है क्योंकि एक एप्लिकेशन की जानकारी को दूसरे एप्लिकेशन द्वारा स्वतंत्र रूप से एक्सेस नहीं किया जा सकता है।
|
||||
|
||||
वर्चुअलाइजेशन एक भौतिक सर्वर में संसाधनों के बेहतर उपयोग की अनुमति देता है और बेहतर मापनीयता की अनुमति देता है क्योंकि एक एप्लिकेशन को आसानी से जोड़ा या अपडेट किया जा सकता है, हार्डवेयर लागत को कम करता है, और बहुत कुछ। वर्चुअलाइजेशन के साथ आप भौतिक संसाधनों का एक सेट डिस्पोजेबल वर्चुअल मशीनों के समूह के रूप में प्रस्तुत कर सकते हैं।
|
||||
|
||||
प्रत्येक वीएम वर्चुअलाइज्ड हार्डवेयर के शीर्ष पर अपने स्वयं के ऑपरेटिंग सिस्टम सहित सभी घटकों को चलाने वाली एक पूर्ण मशीन है।
|
||||
|
||||
**कंटेनर डिप्लॉयमेंट युग:** कंटेनर VMs के समान होते हैं, लेकिन उनके पास एप्लिकेशनो के बीच ऑपरेटिंग सिस्टम (OS) को साझा करने के लिए अलगाव गुण होते हैं। इसलिए, कंटेनरों को हल्का माना जाता है। वीएम (VM) के समान, एक कंटेनर का अपना फाइल सिस्टम, सीपीयू का हिस्सा, मेमोरी, प्रोसेस स्पेस और बहुत कुछ होता है। चूंकि वे अंतर्निहित बुनियादी ढांचे से अलग हो गए हैं, वे बादलों और ओएस (OS) वितरण में पोर्टेबल हैं।
|
||||
|
||||
कंटेनर लोकप्रिय हो गए हैं क्योंकि वे अतिरिक्त लाभ प्रदान करते हैं, जैसे:
|
||||
|
||||
* अजाइल (Agile) एप्लिकेशन निर्माण और डिप्लॉयमेंट: VM इमेज उपयोग की तुलना में कंटेनर इमेज निर्माण की आसानी और दक्षता में वृद्धि हुई है।
|
||||
* निरंतर विकास, एकीकरण और डिप्लॉयमेंट: विश्वसनीय और लगातार कंटेनर इमेज निर्माण और त्वरित और कुशल रोलबैक के साथ तैनाती (इमेज अपरिवर्तनीयता के कारण) प्रदान करता है।
|
||||
* डेव (Dev) और ऑप्स (Ops) चिंताओं का पृथक्करण: डिप्लॉयमेंट समय के बजाय बिल्ड/रिलीज़ समय पर एप्लिकेशन कंटेनर इमेजेस (images) बनाएं, जिससे बुनियादी ढांचे से एप्लिकेशनो को अलग किया जा सके।
|
||||
* अवलोकन: न केवल ओएस-स्तर की जानकारी और मेट्रिक्स को सतह पर रखता है, बल्कि एप्लिकेशन स्वास्थ्य और अन्य संकेतों को भी लागू करता है।
|
||||
* विकास, परीक्षण और उत्पादन में पर्यावरणीय स्थिरता: लैपटॉप पर वैसे ही चलता है जैसे क्लाउड में चलता है।
|
||||
* क्लाउड और ओएस (OS) वितरण पोर्टेबिलिटी: उबंटू, RHEL, coreOS, ऑन-प्रिमाइसेस, प्रमुख सार्वजनिक क्लाउड पर और कहीं भी चलता है।
|
||||
* एप्लिकेशन-केंद्रित प्रबंधन: वर्चुअल हार्डवेयर पर OS चलाने से लेकर तार्किक संसाधनों का उपयोग करके OS पर एप्लिकेशन चलाने तक अमूर्तता के स्तर को बढ़ाता है ।
|
||||
* शिथिल युग्मित, वितरित, लोचदार, मुक्त सूक्ष्म सेवाएँ: एप्लिकेशन को छोटे, स्वतंत्र टुकड़ों में तोड़ा जाता है और उन्हें गतिशील रूप से तैनात और प्रबंधित किया जा सकता है - एक बड़ी एकल-उद्देश्य वाली मशीन पर चलने वाला एक मोनोलिथिक स्टैक नहीं।
|
||||
* संसाधन अलगाव: अनुमानित एप्लिकेशन प्रदर्शन।
|
||||
* संसाधन उपयोग: उच्च दक्षता और घनत्व।
|
||||
|
||||
## आपको कुबेरनेट्स की आवश्यकता क्यों है और यह क्या कर सकता है {#why-you-need-kubernetes-and-what-can-it-do}
|
||||
|
||||
कंटेनर आपके एप्लिकेशनो को बंडल करने और चलाने का एक अच्छा तरीका है। उत्पादन के माहौल में, आप को उन कंटेनरों को प्रबंधित करने की आवश्यकता होती है जो एप्लिकेशने चलाते हैं और सुनिश्चित करते हैं कि कोई डाउनटाइम नहीं है। उदाहरण के लिए, यदि एक कंटेनर बंद हो जाता है, तो दूसरे कंटेनर को शुरू करने की आवश्यकता होती है। क्या यह आसान नहीं होगा यदि इस व्यवहार को एक प्रणाली द्वारा नियंत्रित किया जा सके ?
|
||||
|
||||
इस तरह कुबेरनेट्स बचाव के लिए आता है! कुबेरनेट्स आपको वितरित सिस्टम को लचीलेपन से चलाने के लिए एक ढांचा प्रदान करता है। यह आपके एप्लिकेशन के लिए स्केलिंग और फेलओवर का ख्याल रखता है, डिप्लॉयमेंट पैटर्न प्रदान करता है, और भी बहुत कुछ। उदाहरण के लिए, कुबेरनेट्स आपके सिस्टम के लिए कैनरी डिप्लॉयमेंट को आसानी से प्रबंधित कर सकता है।
|
||||
|
||||
## कुबेरनेट्स आपको प्रदान करता है:
|
||||
|
||||
* **सेवा की खोज और लोड संतुलन**
|
||||
कुबेरनेट्स DNS नाम का उपयोग करके या अपने स्वयं के आईपी (IP) पते का उपयोग करके एक कंटेनर को उजागर कर सकता हैं। यदि एक कंटेनर में ट्रैफ़िक अधिक है, तो कुबेरनेट्स लोड बैलेंस करने और नेटवर्क ट्रैफ़िक को वितरित करने में सक्षम है ताकि डिप्लॉयमेंट स्थिर हो।
|
||||
* **स्टोरेज ऑर्केस्ट्रेशन**
|
||||
कुबेरनेट्स आपको अपनी पसंद के स्टोरेज सिस्टम को स्वचालित रूप से माउंट करने की अनुमति देता है, जैसे कि स्थानीय स्टोरेज, पब्लिक क्लाउड प्रोवाइडर, और बहुत कुछ।
|
||||
* **स्वचालित रोलआउट और रोलबैक**
|
||||
आप कुबेरनेट्स का उपयोग करके अपने तैनात कंटेनरों के लिए वांछित स्थिति का वर्णन कर सकते हैं, और यह वास्तविक स्थिति को नियंत्रित दर पर वांछित स्थिति में बदल सकता है। उदाहरण के लिए, आप अपने डिप्लॉयमेंट के लिए नए कंटेनर बनाने के लिए कुबेरनेट्स को स्वचालित कर सकते हैं, मौजूदा कंटेनरों को हटा सकते हैं और उनके सभी संसाधनों को नए कंटेनर में अपना सकते हैं।
|
||||
* **स्वचालित बिन पैकिंग **
|
||||
आप कुबेरनेट्स को नोड्स के एक समूह के साथ प्रदान करते हैं जिसका उपयोग वह कंटेनरीकृत कार्यों को चलाने के लिए कर सकता है। आप कुबेरनेट्स को बताते हैं कि प्रत्येक कंटेनर को कितना सीपीयू और मेमोरी (रैम) चाहिए। कुबेरनेट्स आपके संसाधनों का सर्वोत्तम उपयोग करने के लिए कंटेनरों को आपके नोड्स में फिट कर सकता है।
|
||||
* **सेल्फ-हीलिंग**
|
||||
कुबेरनेट्स विफल कंटेनरों को फिर से शुरू करता है, कंटेनरों को बदल देता है, उन कंटेनरों को नष्ट कर देता है जो आपकी उपयोगकर्ता-परिभाषित स्वास्थ्य जांच का जवाब नहीं देते हैं, और जब तक वे सेवा के लिए तैयार नहीं होते हैं, तब तक ग्राहकों को उनका विज्ञापन नहीं करते हैं।
|
||||
* **सीक्रेट और कॉन्फ़िगरेशन प्रबंधन**
|
||||
कुबेरनेट्स आपको पासवर्ड, OAuth टोकन और SSH कुंजियों जैसी संवेदनशील जानकारी को संग्रहीत और प्रबंधित करने देता है। आप अपनी कंटेनर इमेजेस (images) के पुनर्निर्माण के बिना, और अपने स्टैक कॉन्फ़िगरेशन में रहस्यों को उजागर किए बिना रहस्यों और एप्लिकेशन कॉन्फ़िगरेशन को तैनात और अपडेट कर सकते हैं।
|
||||
|
||||
## कुबेरनेट्स क्या नहीं है :
|
||||
|
||||
कुबेरनेट्स एक पारंपरिक, सर्व-समावेशी PaaS (एक सेवा के रूप में प्लेटफ़ॉर्म) प्रणाली नहीं है। चूंकि कुबेरनेट्स हार्डवेयर स्तर के बजाय कंटेनर स्तर पर काम करता है, यह कुछ सामान्य रूप से लागू सुविधाओं को प्रदान करता है, जैसे कि तैनाती, स्केलिंग, लोड बैलेंसिंग, और उपयोगकर्ताओं को उनके लॉगिंग, निगरानी और अलर्ट समाधान को एकीकृत करने देता है। हालाँकि, कुबेरनेट्स मोनोलिथिक नहीं है, और ये डिफ़ॉल्ट समाधान वैकल्पिक और प्लग करने योग्य हैं। कुबेरनेट्स डेवलपर प्लेटफॉर्म के निर्माण के लिए बिल्डिंग ब्लॉक्स प्रदान करता है, लेकिन जहां यह महत्वपूर्ण है वहां उपयोगकर्ता की पसंद और लचीलेपन को बरकरार रखता है।
|
||||
|
||||
कुबेरनेट्स:
|
||||
|
||||
* समर्थित एप्लिकेशनो के प्रकारों को सीमित नहीं करता है। कुबेरनेट्स का उद्देश्य स्टेटलेस, स्टेटफुल और डेटा-प्रोसेसिंग वर्कलोड सहित अत्यंत विविध प्रकार के वर्कलोड का समर्थन करना है। यदि कोई एप्लिकेशन कंटेनर में चल सकता है, तो उसे कुबेरनेट्स पर बहुत अच्छा चलना चाहिए।
|
||||
* स्रोत कोड डेप्लॉय नहीं करता है और आपके एप्लिकेशन का निर्माण नहीं करता है। कंटीन्यूअस इंटीग्रेशन, डिलीवरी और डिप्लॉयमेंट(CI/CD) कार्यप्रवाह संगठन संस्कृतियों और प्राथमिकताओं के साथ-साथ तकनीकी आवश्यकताओं द्वारा निर्धारित किए जाते हैं।
|
||||
* एप्लिकेशन-स्तरीय सेवाएं प्रदान नहीं करता है, जैसे कि मिडलवेयर (उदाहरण के लिए, message buses), डेटा-प्रोसेसिंग फ्रेमवर्क (उदाहरण के लिए, spark), डेटाबेस (उदाहरण के लिए, MySQL), कैश, और न ही क्लस्टर स्टोरेज सिस्टम (उदाहरण के लिए, Ceph) अंतर्निहित सेवाओं के रूप में। ऐसे घटक कुबेरनेट्स पर चल सकते हैं, और/या [ओपन सर्विस ब्रोकर](https://openservicebrokerapi.org/) जैसे पोर्टेबल तंत्र के माध्यम से कुबेरनेट्स पर चल रहे एप्लिकेशनो द्वारा एक्सेस किए जा सकते हैं।
|
||||
* लॉगिंग, मॉनिटरिंग या अलर्टिंग सॉल्यूशंस को निर्देशित नहीं करता है। यह अवधारणा के प्रमाण के रूप में कुछ एकीकरण प्रदान करता है, और मेट्रिक्स एकत्र करने और निर्यात करने के लिए तंत्र प्रदान करता है।
|
||||
* कॉन्फ़िगरेशन भाषा/सिस्टम (उदाहरण के लिए, Jsonnet) प्रदान नहीं करता है और न ही अनिवार्य करता है। यह एक घोषणात्मक API प्रदान करता है जिसे घोषणात्मक विनिर्देशों के मनमाने रूपों द्वारा लक्षित किया जा सकता है।
|
||||
* कोई व्यापक मशीन कॉन्फ़िगरेशन, रखरखाव, प्रबंधन, या स्वयं-उपचार प्रणाली प्रदान नहीं करता है और न ही अपनाता है।
|
||||
* इसके अतिरिक्त, कुबेरनेट्स केवल एक ऑर्केस्ट्रेशन प्रणाली नहीं है। वास्तव में, यह ऑर्केस्ट्रेशन की आवश्यकता को समाप्त करता है। ऑर्केस्ट्रेशन की तकनीकी परिभाषा एक परिभाषित वर्कफ़्लो का निष्पादन है: पहले ए (A) करें, फिर बी (B), फिर सी (C)। इसके विपरीत, कुबेरनेट्स में स्वतंत्र, कंपोज़ेबल नियंत्रण प्रक्रियाओं का एक सेट शामिल है जो वर्तमान स्थिति को प्रदान की गई वांछित स्थिति की ओर लगातार चलता है। इससे कोई फर्क नहीं पड़ता कि आप ए से सी कैसे प्राप्त करते हैं। केंद्रीकृत नियंत्रण की भी आवश्यकता नहीं है। इसका परिणाम एक ऐसी प्रणाली में होता है जो उपयोग में आसान और अधिक शक्तिशाली, मजबूत, लचीला और एक्स्टेंसिबल है।
|
||||
|
||||
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
* [कुबेरनेट्स के घटक ](/docs/concepts/overview/components/)पर एक नज़र डालें ।
|
||||
* क्या आप [शुरू करने के लिए तैयार हैं](/docs/setup/)?
|
||||
|
|
@ -0,0 +1,182 @@
|
|||
---
|
||||
content_type: सिद्धांत
|
||||
title: कुबेरनेटेस डॉक्स में योगदान दे
|
||||
linktitle: योगदान
|
||||
main_menu: true
|
||||
no_list: true
|
||||
weight: 80
|
||||
card:
|
||||
name: योगदान
|
||||
weight: 10
|
||||
title: कुबेरनेटेस मे योगदान देना शुरू करे
|
||||
---
|
||||
|
||||
<!-- अवलोकन -->
|
||||
|
||||
*कुबेरनेटस सभी योगदानकर्ताओ से सुधार का स्वागत करता है चाहे वो नए हो या अनुभवी!*
|
||||
|
||||
{{< note >}}
|
||||
कुबेरनेटस मे योगदान करने के बारे मे अधिक जानकारी के लिए
|
||||
[योगदानकर्ता प्रलेखन](https://www.kubernetes.dev/docs/) देखें।
|
||||
{{< /note >}}
|
||||
|
||||
इस वेबसाइट की देख रेख [कुबेरनेटस SIG Docs](/docs/contribute/#get-involved-with-sig-docs) द्वारा की जाती है।
|
||||
|
||||
कुबेरनेटस प्रलेखन योगदानकर्ता :
|
||||
|
||||
- मौजूदा विषयों को सुधारते हैं
|
||||
- नए विषय बनाते हैं
|
||||
- प्रलेखन का अनुवाद करते हैं
|
||||
- कुबेरनेटस रिलीज चक्र मे प्रलेखन की देख रेख और प्रकाशन करते हैं
|
||||
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## शुरू करना
|
||||
|
||||
कोई भी प्रलेखन के बारे मे इशू खोल सकता है या कुबेरनेटस वेबसाइट
|
||||
[`kubernetes/website` GitHub रिपॉजिटरी](https://github.com/kubernetes/website)
|
||||
मे बदलाव पुल अनुरोध (PR) द्वारा कर सकता है।
|
||||
आपको [Git](https://git-scm.com/) और
|
||||
[Github](https://lab.github.com/)
|
||||
की जानकारी होनी चाहिए ताकि आप कुबेरनेटेस समुदाय मे प्रभावी रूप से काम कर सकें।
|
||||
|
||||
प्रलेखन मे सहयोग करने के लिए:
|
||||
|
||||
1. [योगदानकर्ता समझौता लाइसेन्स](https://github.com/kubernetes/community/blob/master/CLA.md) पर हस्ताक्षर करें।
|
||||
2. [प्रलेखन रिपॉजिटरी](https://github.com/kubernetes/website)
|
||||
और वेबसाइट की [स्टैटिक साइट जनरेटर](https://gohugo.io) से खुद को परिचित करें।
|
||||
3. सुनिश्चित करें की आपको
|
||||
[पुल अनुरोध करना](/docs/contribute/new-content/open-a-pr/) और
|
||||
[बदलाओ की समीक्षा](/docs/contribute/review/reviewing-prs/) करना आता हो।
|
||||
|
||||
<!-- इस चित्र की लाइव-एडिटर URL के लिए https://github.com/kubernetes/website/issues/28808 देखें -->
|
||||
<!-- आप मरमेड (mermaid) कोड को लाइव-एडिटर https://mermaid-js.github.io/mermaid-live-editor में कट/पेस्ट करके भी संपादित कर सकते हैं -->
|
||||
|
||||
{{< mermaid >}}
|
||||
flowchart TB
|
||||
subgraph third[PR ओपन करे]
|
||||
direction TB
|
||||
U[ ] -.-
|
||||
Q[विषय सुधारे] --- N[विषय निर्माण करे]
|
||||
N --- O[डॉक्स का अनुवाद करे]
|
||||
O --- P[K8s रिलीज़ चक्र के प्रलेखन<br>को संचालित /प्रकाशित करें]
|
||||
|
||||
end
|
||||
|
||||
subgraph second[समीक्षा]
|
||||
direction TB
|
||||
T[ ] -.-
|
||||
D[K8s/website<br>रिपॉजिटरी<br>को देखें] --- E[Hugo स्टैटिक साइट<br>जनरेटर<br>को देखें]
|
||||
E --- F[मूलभूत GitHub<br>कमांड समझें]
|
||||
F --- G[ओपन PR की समीक्षा करे<br>और समीक्षा प्रक्रिया<br>को बदलें]
|
||||
end
|
||||
|
||||
subgraph first[साइनअप]
|
||||
direction TB
|
||||
S[ ] -.-
|
||||
B[CNCF<br>योगदानकर्ता<br>लइसेंस समझौता<br>पर हस्ताक्षर करें] --- C[sig-docs स्लैक चैनल<br>में जुड़ें]
|
||||
C --- V[kubernetes-sig-docs<br>मेलिंग लिस्ट में जुड़ें]
|
||||
V --- M[साप्ताहिक<br>sig-docs कॉल<br>या स्लैक बैठक में शामिल हों]
|
||||
end
|
||||
|
||||
A([fa:fa-user नए<br>योगदानकर्ता]) --> first
|
||||
A --> second
|
||||
A --> third
|
||||
A --> H[सवाल पूछे!!!]
|
||||
|
||||
|
||||
classDef grey fill:#dddddd,stroke:#ffffff,stroke-width:px,color:#000000, font-size:15px;
|
||||
classDef white fill:#ffffff,stroke:#000,stroke-width:px,color:#000,font-weight:bold
|
||||
classDef spacewhite fill:#ffffff,stroke:#fff,stroke-width:0px,color:#000
|
||||
class A,B,C,D,E,F,G,H,M,Q,N,O,P,V grey
|
||||
class S,T,U spacewhite
|
||||
class first,second,third white
|
||||
{{</ mermaid >}}
|
||||
***आकृति - नए योगदानकर्ताओं के लिए योगदान शुरू करने का रास्ता***
|
||||
|
||||
ऊपर दी गई आकृति नए योगदानकर्ता के लिए दिशानिर्देश हैं। `Sign up` या `review` के लिए आप इनमे से कुछ या सभी निर्देशों का पालन कर सकते हैं। अब आप PR ओपन करने के लिए तैयार हैं जो आपके योगदान के उद्देश को पूरा करे जो `Open PR` खंड मे सूचीबद्ध हैं। आपके सभी प्रश्नों का सदैव स्वागत है।
|
||||
|
||||
कुबेरनेटस समुदाय मे कुछ कार्यों के लिए अधिक विश्वास और अभिगम की आवश्यकता होती है।
|
||||
भूमिका और अनुमति के बारे मे ज्यादा जानकारी के लिए
|
||||
[SIG Docs मे भाग लेना](/docs/contribute/participate/) को देखें।
|
||||
|
||||
## आपका पहला योगदान
|
||||
|
||||
आप अपने पहले योगदान की तैयारी के लिए दिए गए दिशानिर्देश को देख सकते हैं। नीचे दिया हुआ चित्र दिशानिर्देश और उसकी विस्तार मे जानकारी देता है।
|
||||
|
||||
<!-- इस चित्र की लाइव-एडिटर URL के लिए https://github.com/kubernetes/website/issues/28808 देखें -->
|
||||
<!-- आप मरमेड (mermaid) कोड को लाइव-एडिटर https://mermaid-js.github.io/mermaid-live-editor में कट/पेस्ट करके भी संपादित कर सकते हैं -->
|
||||
|
||||
{{< mermaid >}}
|
||||
flowchart LR
|
||||
subgraph second[पहला योगदान]
|
||||
direction TB
|
||||
S[ ] -.-
|
||||
G[दूसरे K8s मेम्बर्स के<br>PRs की समीक्षा करें] -->
|
||||
A[अपने पहले इशू (गुफ फर्स्ट इशू)<br>के लिए K8s/website<br>की इशू सूची पर जाएं] --> B[PR ओपन करें!!]
|
||||
end
|
||||
subgraph first[सूचित तैयारी]
|
||||
direction TB
|
||||
T[ ] -.-
|
||||
D[योगदान अवलोकन को पढे] -->E[K8s विषय<br>और विषय गाइड को पढ़ें]
|
||||
E --> F[Hugo पेज<br>विषय के प्रकार<br>और shortcodes के बारे मे जाने]
|
||||
end
|
||||
|
||||
|
||||
first ----> second
|
||||
|
||||
|
||||
classDef grey fill:#dddddd,stroke:#ffffff,stroke-width:px,color:#000000, font-size:15px;
|
||||
classDef white fill:#ffffff,stroke:#000,stroke-width:px,color:#000,font-weight:bold
|
||||
classDef spacewhite fill:#ffffff,stroke:#fff,stroke-width:0px,color:#000
|
||||
class A,B,D,E,F,G grey
|
||||
class S,T spacewhite
|
||||
class first,second white
|
||||
{{</ mermaid >}}
|
||||
**आकृति - आपके पहले योगदान की तैयारी**
|
||||
|
||||
- योगदान करने के विभिन्न तरीकों को जानने के लिए [योगदानकर्ता अवलोकन](/docs/contribute/new-content/overview/) को पढ़ें।
|
||||
- अच्छे प्रवेश बिन्दु के लिए [`kubernetes/website` इशू सूची](https://github.com/kubernetes/website/issues/)
|
||||
को जाचें।
|
||||
- मौजूदा प्रलेखन पर [Github का प्रयोग करते हुए पुल अनुरोध करॆ](/docs/contribute/new-content/open-a-pr/#changes-using-github)
|
||||
और इशू दाखिल करने के बारे मे अधिक जानें।
|
||||
- भाषा और सटीकता के लिए अन्य कुबेरनेटस समुदाय के सदस्यों के
|
||||
[पुल अनुरोध की समीक्षा करें](/docs/contribute/review/reviewing-prs/)।
|
||||
- कुबेरनेटस [प्रकरण ](/docs/contribute/style/content-guide/) और
|
||||
[स्टाइल मार्गदर्शक](/docs/contribute/style/style-guide/) को पढ़ें ताकि आप सूचित टिप्पणी दे सकें।
|
||||
- [पेज प्रलेखन टाइप](/docs/contribute/style/page-content-types/)
|
||||
और [Hugo shortcodes](/docs/contribute/style/hugo-shortcodes/) के बारे मे जानें।
|
||||
|
||||
## अगले कदम
|
||||
|
||||
- रिपॉजिटरी के [लोकल क्लोन से काम करना](/docs/contribute/new-content/open-a-pr/#fork-the-repo)
|
||||
सीखें।
|
||||
- [रिलीज़ में फीचर्स का](/docs/contribute/new-content/new-features/) आलेख करे।
|
||||
- [SIG Docs](/docs/contribute/participate/) मे भाग लें और
|
||||
[सदस्य या समीक्षक](/docs/contribute/participate/roles-and-responsibilities/) बनें।
|
||||
|
||||
- [स्थानीयकरण](/docs/contribute/localization/) शुरू करे या उसमे सहायता करें।
|
||||
|
||||
## सिग डॉक्स मे शामिल हो
|
||||
|
||||
[SIG Docs](/docs/contribute/participate/) योगदानकर्ताओ का एक समूह है
|
||||
जो कुबेरनेटेस प्रलेखन और वेबसाईट की देख रेख और उसे प्रकाशित करता है।
|
||||
SIG Docs मे शामिल होना कुबेरनेटस योगदानकर्ताओ (फीचर विकास या उससे अन्यथा) के लिए
|
||||
कुबेरनेटस परियोजना पर प्रभाव डालने का बेहतरीन तरीका है।
|
||||
|
||||
SIG Docs भिन्न प्रकार से संवाद करते हैं:
|
||||
|
||||
- [कुबेरनेटेस Slack चैनल मे #sig-docs से जुड़ें](https://slack.k8s.io/) और खुद का परिचय दें!
|
||||
- [kubernetes-sig-docs मेलिंग लिस्ट मे शामिल हो](https://groups.google.com/forum/#!forum/kubernetes-sig-docs),
|
||||
वहाँ व्यापक विचार-विमर्श होता है और आधिकारिक फैसले का अभिलेखन किया जाता है।
|
||||
- [SIG Docs विडिओ बैठक](https://github.com/kubernetes/community/tree/master/sig-docs) मे शामिल हो जो हर दो सप्ताह मे होती है। बैठक की घोषणा हमेशा `#sig-docs` पर की जाती है और [कुबेरनेटेस समुदाय बैठक कैलंडर](https://calendar.google.com/calendar/embed?src=cgnt364vd8s86hr2phapfjc6uk%40group.calendar.google.com&ctz=America/Los_Angeles) में जोड़ दिया जाता है। आपको [Zoom client](https://zoom.us/download) डाउनलोड करने की जरूरत पड़ेगी या फोन की मदद से भी डायल कर सकते हैं।
|
||||
- जिन सप्ताह मे Zoom बैठक नहीं हुई हो तब SIG Docs अतुल्यकालिक बैठक को जॉइन करे जो Slack पर होती है। बैठक की घोषणा हमेशा `#sig-docs` पर होती है। बैठक की घोषणा के बाद आप किसी भी सूत्र मे 24 घंटे तक योगदान कर सकते है।
|
||||
|
||||
## योगदान करने के अन्य तरीके
|
||||
|
||||
- [कुबेरनेटस समुदाय साइट](/community/) पर जाए। Twitter या Slack Overflow मैं भाग ले, कुबेरनेटस स्थानीय आयोजन और मिलन के बारे मे जाने ।
|
||||
- कुबेरनेटस फीचर विकास में शामिल होने के लिए [योगदानकर्ता चीटशीट](https://www.kubernetes.dev/docs/contributor-cheatsheet/) पढ़ें।
|
||||
- [कुबेरनेटस योगदानकर्ता](https://www.kubernetes.dev/) और [अतिरिक्त योगदानकर्ता साधन](https://www.kubernetes.dev/resources/) के बारे मे अधिक जानकारी के लिए योगदानकर्ता साइट पर जाएं।
|
||||
- [ब्लॉग पोस्ट या केस अध्ययन](/docs/contribute/new-content/blogs-case-studies/) प्रस्तुत करे।
|
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
title: साइट विश्लेषिकी देखना
|
||||
content_type: concept
|
||||
weight: 100
|
||||
card:
|
||||
name: योगदान
|
||||
weight: 100
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
इस पृष्ठ में Kubernetes.io विश्लेषिकी डैशबोर्ड के बारे में जानकारी है।
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
[डैशबोर्ड देखें](https://datastudio.google.com/reporting/fede2672-b2fd-402a-91d2-7473bdb10f04)।
|
||||
|
||||
यह डैशबोर्ड Google Data Studio का उपयोग करके बनाया गया है और Google Analytics का उपयोग करके Kubernetes.io पर एकत्रित जानकारी दिखाता है।
|
||||
|
||||
### डैशबोर्ड का उपयोग करना
|
||||
|
||||
डिफ़ॉल्ट रूप से, डैशबोर्ड पिछले 30 दिनों के सभी एकत्रित विश्लेषण दिखाता है। विभिन्न दिनांक सीमा मे आने वाला डेटा देखने के लिए date selector का उपयोग करें। अन्य फ़िल्टरिंग विकल्प आपको उपयोगकर्ता का स्थान, साइट तक पहुंचने के लिए उपयोग किए जाने वाले उपकरण, उपयोग किए गए दस्तावेज़ों के अनुवाद, और बहुत से चीज़ों का डेटा देखने की अनुमति देते हैं।
|
||||
|
||||
यदि आप इस डैशबोर्ड में कोई समस्या देखते हैं, या किसी सुधार का अनुरोध करना चाहते हैं, तो कृपया [एक इशू बनाएं](https://github.com/kubernetes/website/issues/new/choose)।
|
|
@ -0,0 +1,65 @@
|
|||
---
|
||||
title: कुबेरनेट्स प्रलेखन
|
||||
noedit: true
|
||||
cid: docsHome
|
||||
layout: docsportal_home
|
||||
class: gridPage gridPageHome
|
||||
linkTitle: "होम"
|
||||
main_menu: true
|
||||
weight: 10
|
||||
hide_feedback: true
|
||||
menu:
|
||||
main:
|
||||
title: "प्रलेखन"
|
||||
weight: 20
|
||||
post: >
|
||||
<p>वैचारिक, ट्यूटोरियल और संदर्भ प्रलेखन के साथ कुबेरनेट्स का उपयोग करना सीखें| आप <a href="/editdocs/" data-auto-burger-exclude data-proofer-ignore>डॉक्स में योगदान करने में मदद भी कर सकते हैं</a>!</p>
|
||||
description: >
|
||||
कुबेरनेट्स कंटेनरीकृत एप्लीकेशन के परिनियोजन, स्केलिंग और प्रबंधन को स्वचालित करने के लिए एक ओपन सोर्स कंटेनर ऑर्केस्ट्रेशन इंजन है| यह ओपन सोर्स प्रोजेक्ट Cloud Native Computing Foundation द्वारा होस्ट किया गया है।
|
||||
overview: >
|
||||
कुबेरनेट्स कंटेनरीकृत एप्लीकेशन के डिप्लॉयमेंट, स्केलिंग और प्रबंधन को स्वचालित करने के लिए एक ओपन सोर्स कंटेनर ऑर्केस्ट्रेशन इंजन है। यह ओपन सोर्स प्रोजेक्ट Cloud Native Computing Foundation द्वारा होस्ट किया गया है|(<a href="https://www.cncf.io/about">CNCF</a>).
|
||||
cards:
|
||||
- name: concepts
|
||||
title: "मूल बातें समझें"
|
||||
description: "कुबेरनेट्स और इसकी मूलभूत अवधारणाओं के बारे में जानें।"
|
||||
button: "अवधारणाओं को जानें"
|
||||
button_path: "/docs/concepts"
|
||||
- name: tutorials
|
||||
title: "कुबेरनेट्स उपयोग करने का प्रयास करें"
|
||||
description: "कुबेरनेट्स में एप्लिकेशन को डिप्लॉय करने के लिए ट्यूटोरियल का अनुसरण करें।"
|
||||
button: "ट्यूटोरियल देखें"
|
||||
button_path: "/hi/docs/tutorials"
|
||||
- name: setup
|
||||
title: "एक कुबेरनेट्स क्लस्टर सेटअप करें"
|
||||
description: "अपने संसाधनों और जरूरतों के आधार पर कुबेरनेट्स को चालू करें।"
|
||||
button: "कुबेरनेट्स सेटअप करें "
|
||||
button_path: "/hi/docs/setup"
|
||||
- name: tasks
|
||||
title: "कुबेरनेट्स का उपयोग करना सीखें"
|
||||
description: "चरणों के एक छोटे क्रम का अनुसरण करके सामान्य कार्यों को करें।"
|
||||
button: "कार्य देखें"
|
||||
button_path: "/docs/tasks"
|
||||
- name: training
|
||||
title: "प्रशिक्षण"
|
||||
description: "कुबेरनेट्स में प्रमाणित हो कर अपने क्लाउड नेटिव प्रोजेक्ट सफल बनाएं!"
|
||||
button: "प्रशिक्षण देखें"
|
||||
button_path: "/training"
|
||||
- name: reference
|
||||
title: संदर्भ जानकारी देखें
|
||||
description: शब्दावली, कमांड लाइन सिंटैक्स, API संसाधनो के प्रकार और टूल सेटअप करने के प्रलेखन।
|
||||
button: संदर्भ देखें
|
||||
button_path: /docs/reference
|
||||
- name: contribute
|
||||
title: प्रलेखन में योगदान करें
|
||||
description: कोई भी योगदान दे सकता है, चाहे आप प्रोजेक्ट में नए हैं या आप लंबे समय से हैं।
|
||||
button: प्रलेखन में योगदान करें
|
||||
button_path: /docs/contribute
|
||||
- name: release-notes
|
||||
title: कुबेरनेट्स रिलीज नोट्स
|
||||
description: यदि आप कुबेरनेट्स इंस्टॉल कर रहे हैं या नवीनतम संस्करण में अपग्रेड कर रहे हैं, तो वर्तमान रिलीज़ नोट्स देखें।
|
||||
button: कुबेरनेट्स डाउनलोड करें
|
||||
button_path: "/docs/setup/release/notes"
|
||||
- name: about
|
||||
title: प्रलेखन के बारे में
|
||||
description: इस वेबसाइट में कुबेरनेट्स के वर्तमान और पिछले 4 संस्करणों के लिए प्रलेखन हैं।
|
||||
---
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
title: प्रलेखन के उपलब्ध संस्करण
|
||||
content_type: custom
|
||||
layout: supported-versions
|
||||
card:
|
||||
name: about
|
||||
weight: 10
|
||||
title: प्रलेखन के उपलब्ध संस्करण
|
||||
---
|
||||
|
||||
इस वेबसाइट में कुबेरनेट्स के वर्तमान और चार पिछले संस्करण के प्रलेखन शामिल हैं।
|
|
@ -0,0 +1,86 @@
|
|||
---
|
||||
title: संदर्भ
|
||||
linkTitle: "संदर्भ"
|
||||
main_menu: true
|
||||
weight: 70
|
||||
content_type: concept
|
||||
no_list: true
|
||||
---
|
||||
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
कुबेरनेट्स प्रलेखन के इस खंड में संदर्भ हैं।
|
||||
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## API संदर्भ
|
||||
|
||||
* [शब्दकोष](/docs/reference/glossary/) - कुबेरनेट्स शब्दावली की एक व्यापक, मानकीकृत सूची।
|
||||
* [कुबेरनेट्स API संदर्भ](/docs/reference/kubernetes-api/)
|
||||
* [कुबेरनेट्स के लिए एक-पृष्ठ API संदर्भ {{< param "version" >}}](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/)
|
||||
* [कुबेरनेट्स API का उपयोग करना](/docs/reference/using-api/) - कुबेरनेट्स के लिए API का अवलोकन।
|
||||
* [API अभिगम नियंत्रण](/docs/reference/access-authn-authz/) - कुबेरनेट्स API एक्सेस को कैसे नियंत्रित करता है, इस पर विवरण।
|
||||
* [जाने-माने लेबल, टिप्पणी और दाग](/docs/reference/labels-annotations-taints/)
|
||||
|
||||
## आधिकारिक तौर पर समर्थित ग्राहक पुस्तकालय
|
||||
|
||||
कुबेरनेट्स API को प्रोग्रामिंग भाषा से कॉल करने के लिए, आप उपयोग कर सकते हैं
|
||||
[client libraries](/docs/reference/using-api/client-libraries/). आधिकारिक तौर पर समर्थित
|
||||
client libraries:
|
||||
|
||||
- [कुबेरनेट्स Go client library](https://github.com/kubernetes/client-go/)
|
||||
- [कुबेरनेट्स Python client library](https://github.com/kubernetes-client/python)
|
||||
- [कुबेरनेट्स Java client library](https://github.com/kubernetes-client/java)
|
||||
- [कुबेरनेट्स JavaScript client library](https://github.com/kubernetes-client/javascript)
|
||||
- [कुबेरनेट्स C# client library](https://github.com/kubernetes-client/csharp)
|
||||
- [कुबेरनेट्स Haskell client library](https://github.com/kubernetes-client/haskell)
|
||||
|
||||
## CLI
|
||||
|
||||
* [kubectl](/docs/reference/kubectl/overview/) - कमांड चलाने और कुबेरनेट्स क्लस्टर के प्रबंधन के लिए मुख्य CLI उपकरण।
|
||||
* [JSONPath](/docs/reference/kubectl/jsonpath/) - kubectl के साथ प्रयोग करने के लिए
|
||||
सिन्टैक्स्(वाक्य रचना)मार्गदर्शक [JSONPath expressions](https://goessner.net/articles/JsonPath/)
|
||||
* [kubeadm](/docs/reference/setup-tools/kubeadm/) - एक सुरक्षित कुबेरनेट्स क्लस्टर का आसानी से प्रावधान करने के लिए CLI टूल।
|
||||
|
||||
## अवयव
|
||||
|
||||
* [kubelet](/docs/reference/command-line-tools-reference/kubelet/) - प्राथमिक प्रतिनिधि(एजेंट) जो प्रत्येक नोड पर चलता है। क्यूबलेट पॉडस्पेक्स का एक सेट लेता है
|
||||
और यह सुनिश्चित करता है कि वर्णित कंटेनर चल रहे हैं और स्वस्थ हैं।
|
||||
* [kube-apiserver](/docs/reference/command-line-tools-reference/kube-apiserver/) -
|
||||
REST API जो API वस्तु जैसे पॉड्स, सेवाएं, प्रतिकृति नियंत्रक के लिए डेटा को मान्य और कॉन्फ़िगर करता है।
|
||||
* [kube-controller-manager](/docs/reference/command-line-tools-reference/kube-controller-manager/) - डेमॉन जो कुबेरनेट्स के साथ भेजे गए कोर कंट्रोल लूप्स को एम्बेड करता है।
|
||||
* [kube-proxy](/docs/reference/command-line-tools-reference/kube-proxy/) - बैक-एंड के एक सेट में साधारण TCP/UDP स्ट्रीम फॉरवर्डिंग (आगे भेजना) या राउंड-रॉबिन TCP/UDP फॉरवर्डिंग कर सकते हैं।
|
||||
* [kube-scheduler](/docs/reference/command-line-tools-reference/kube-scheduler/) -
|
||||
अनुसूचक जो उपलब्धता, प्रदर्शन और क्षमता का प्रबंधन करता है।
|
||||
|
||||
* [अनुसूचक नीतियां](/docs/reference/scheduling/policies)
|
||||
* [अनुसूचक विवरणिका ](/docs/reference/scheduling/config#profiles)
|
||||
|
||||
## कॉन्फिग APIs
|
||||
|
||||
इस खंड में "अप्रकाशित" API के लिए दस्तावेज़ शामिल हैं जिनका उपयोग कुबेरनेट्स घटकों या उपकरणों को कॉन्फ़िगर करने के लिए किया जाता है। इनमें से अधिकांश APIs, RESTful तरीके से API सर्वर द्वारा उजागर नहीं होते हैं हालांकि वे एक उपयोगकर्ता या क्लस्टर के उपयोगकर्ता या प्रबंधक के लिए आवश्यक हैं।
|
||||
|
||||
* [kube-apiserver विन्यास (v1alpha1)](/docs/reference/config-api/apiserver-config.v1alpha1/)
|
||||
* [क्यूबलेट विन्यास (v1beta1)](/docs/reference/config-api/kubelet-config.v1beta1/)
|
||||
* [kube-scheduler विन्यास (v1beta1)](/docs/reference/config-api/kube-scheduler-config.v1beta1/)
|
||||
* [kube-scheduler विन्यास (v1beta2)](/docs/reference/config-api/kube-scheduler-config.v1beta2/)
|
||||
* [kube-scheduler नीति संदर्भ (v1)](/docs/reference/config-api/kube-scheduler-policy-config.v1/)
|
||||
* [kube-proxy विन्यास (v1alpha1)](/docs/reference/config-api/kube-proxy-config.v1alpha1/)
|
||||
* [`audit.k8s.io/v1` API](/docs/reference/config-api/apiserver-audit.v1/)
|
||||
* [Client प्रमाणीकरण API (v1beta1)](/docs/reference/config-api/client-authentication.v1beta1/)
|
||||
* [WebhookAdmission विन्यास (v1)](/docs/reference/config-api/apiserver-webhookadmission.v1/)
|
||||
|
||||
## kubeadm के लिए कॉन्फिग API
|
||||
|
||||
* [v1beta2](/docs/reference/config-api/kubeadm-config.v1beta2/)
|
||||
* [v1beta3](/docs/reference/config-api/kubeadm-config.v1beta3/)
|
||||
|
||||
## डिज़ाइन दस्तावेज़
|
||||
|
||||
कुबेरनेट्स कार्यक्षमता के लिए डिज़ाइन से संबंधित दस्तावेज़ों का एक संग्रह। अच्छे शुरुआती बिंदु हैं
|
||||
[कुबेरनेट्स वास्तुकला](https://git.k8s.io/community/contributors/design-proposals/architecture/architecture.md) और
|
||||
[कुबेरनेट्स डिज़ाइन अवलोकन](https://git.k8s.io/community/contributors/design-proposals).
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
title: क्लस्टर ऑपरेटर (Cluster Operator)
|
||||
id: cluster-operator
|
||||
date: 2018-04-12
|
||||
full_link:
|
||||
short_description: >
|
||||
एक व्यक्ति जो क्लस्टर को कॉन्फ़िगर, नियंत्रित और मॉनिटर करता है।
|
||||
|
||||
aka:
|
||||
tags:
|
||||
- user-type
|
||||
---
|
||||
|
||||
एक व्यक्ति जो क्लस्टर को कॉन्फ़िगर, नियंत्रित और मॉनिटर करता है।
|
||||
|
||||
<!--more-->
|
||||
|
||||
उनकी प्राथमिक जिम्मेदारी एक क्लस्टर को चालू रखना और चलाना है, जिसमें आवधिक रखरखाव गतिविधियां या उन्नयन शामिल हो सकते हैं।<br>
|
||||
|
||||
{{< note >}}
|
||||
क्लस्टर ऑपरेटर [ऑपरेटर पैटर्न](https://www.openshift.com/learn/topics/operators) से भिन्न होते हैं जो कुबेरनेट्स एपीआई का विस्तार करते है।
|
||||
{{< /note >}}
|
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
title: क्लाउड नेटिव कंप्यूटिंग फाउंडेशन (CNCF)
|
||||
id: cncf
|
||||
date: 2019-05-26
|
||||
full_link: https://cncf.io/
|
||||
short_description: >
|
||||
क्लाउड नेटिव कंप्यूटिंग फाउंडेशन
|
||||
|
||||
aka:
|
||||
tags:
|
||||
- community
|
||||
---
|
||||
क्लाउड नेटिव कंप्यूटिंग फाउंडेशन (CNCF) स्थायी पारिस्थितिकी तंत्र का निर्माण करता है और
|
||||
[परियोजना](https://www.cncf.io/projects/) के आसपास समुदाय को बढ़ावा देता है जो
|
||||
एक माइक्रोसर्विस आर्किटेक्चर के हिस्से के रूप में कंटेनरों को ओर्केस्ट्रेट करता है।
|
||||
|
||||
कुबेरनेट्स एक CNCF परियोजना है।
|
||||
|
||||
<!--more-->
|
||||
|
||||
CNCF [Linux फाउंडेशन](https://www.linuxfoundation.org/) का एक उप-संस्थान है।
|
||||
इसका लक्ष्य क्लाउड नेटिव कंप्यूटिंग को सर्वव्यापी बनाना है।
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
title: कंटेनर नेटवर्क इंटरफ़ेस (CNI)
|
||||
id: cni
|
||||
date: 2018-05-25
|
||||
full_link: /docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/#cni
|
||||
short_description: >
|
||||
कंटेनर नेटवर्क इंटरफेस (CNI) प्लगइन्स एक प्रकार का नेटवर्क प्लगइन हैं जो appc/CNI विनिर्देश का पालन करते हैं।
|
||||
|
||||
|
||||
aka:
|
||||
tags:
|
||||
- networking
|
||||
---
|
||||
कंटेनर नेटवर्क इंटरफ़ेस (CNI) प्लगइन एक प्रकार का नेटवर्क प्लगइन हैं जो appc/CNI विनिर्देश का पालन करते हैं।
|
||||
<!--more-->
|
||||
|
||||
* कुबेरनेट्स और CNI के बारे में जानकारी के लिए [यह](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/#cni) देखें।
|
||||
* कुबेरनेट्स और CNI के बारे में जानकारी के लिए, ["नेटवर्क प्लगइन्स"](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/#cni) देखें।
|
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
title: कंटेनर रनटाइम इंटरफ़ेस (Container Runtime Interface)
|
||||
id: container-runtime-interface
|
||||
date: 2021-11-24
|
||||
full_link: /docs/concepts/architecture/cri
|
||||
short_description: >
|
||||
क्यूबलेट और कंटेनर रनटाइम के बीच संचार के लिए मुख्य प्रोटोकॉल।
|
||||
|
||||
aka:
|
||||
tags:
|
||||
- cri
|
||||
---
|
||||
|
||||
क्यूबलेट और कंटेनर रनटाइम के बीच संचार के लिए मुख्य प्रोटोकॉल।
|
||||
|
||||
<!--more-->
|
||||
|
||||
[क्लस्टर घटक](/docs/concepts/overview/components/#node-components) {{< glossary_tooltip text="क्यूबलेट" term_id="kubelet" >}} और {{< glossary_tooltip text="कंटेनर रनटाइम" term_id="container-runtime" >}} के बीच संचार के लिए कुबेरनेट्स कंटेनर रनटाइम इंटरफेस (सीआरआई) मुख्य [gRPC](https://grpc.io) प्रोटोकॉल को परिभाषित करता है।
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
title: शब्दकोष
|
||||
layout: glossary
|
||||
noedit: true
|
||||
default_active_tag: fundamental
|
||||
weight: 5
|
||||
card:
|
||||
name: reference
|
||||
weight: 10
|
||||
title: शब्दकोष
|
||||
---
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: शेडुलिंग
|
||||
weight: 70
|
||||
toc-hide: true
|
||||
---
|
|
@ -0,0 +1,48 @@
|
|||
---
|
||||
title: शुरू करना
|
||||
main_menu: true
|
||||
weight: 20
|
||||
content_type: concept
|
||||
no_list: true
|
||||
card:
|
||||
name: setup
|
||||
weight: 20
|
||||
anchors:
|
||||
- anchor: "#सीखने-का-वातावरण"
|
||||
title: सीखने का वातावरण
|
||||
- anchor: "#प्रोडक्शन-वातावरण"
|
||||
title: प्रोडक्शन वातावरण
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
यह भाग कुबेरनेट्स को सेटअप करने और चलाने के विभिन्न तरीकों को सूचीबद्ध करता है। जब आप कुबेरनेट्स सेटअप करते हैं, तो इसके आधार पर एक इंस्टॉलेशन प्रकार चुनें: रखरखाव में आसानी, सुरक्षा, नियंत्रण, उपलब्ध संसाधन और क्लस्टर के संचालन और प्रबंधन के लिए आवश्यक विशेषज्ञता।
|
||||
|
||||
कुबेरनेट्स क्लस्टर को स्थानीय मशीन पर, क्लाउड में, या अपने स्वयं के डेटासेंटर में डिप्लॉय करने के लिए आप [कुबेरनेट्स डाउनलोड](/releases/download/) कर सकते हैं।
|
||||
|
||||
यदि आप कुबेरनेट्स क्लस्टर को स्वयं संभालना नहीं चाहते हैं, तो आप एक संचालन सेवा चुन सकते हैं, जैसे ये [प्रमाणित प्लेटफॉर्म](/hi/docs/setup/production-environment/turnkey-solutions/)।
|
||||
क्लाउड की विस्तृत श्रृंखला और बेयर मेटल वातावरण के लिए अन्य मानकीकृत और कस्टम समाधान भी उपलब्ध हैं।
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## सीखने का वातावरण
|
||||
|
||||
यदि आप कुबेरनेट्स सीख रहे हैं, तो कुबेरनेट्स समुदाय द्वारा समर्थित टूल का उपयोग करें,
|
||||
या स्थानीय मशीन पर कुबेरनेट्स क्लस्टर सेटअप करने के लिए इकोसिस्टम में उपलब्ध टूल का उपयोग करें।
|
||||
[इंस्टॉल टूल्स](/hi/docs/tasks/tools/) देखें।
|
||||
|
||||
## प्रोडक्शन वातावरण
|
||||
|
||||
[प्रोडक्शन वातावरण](/hi/docs/setup/production-environment/) के लिए समाधान का मूल्यांकन करते समय, विचार करें कि कुबेरनेट्स क्लस्टर के किन पहलुओं (या _abstractions_) का संचालन आप स्वयं प्रबंधित करना चाहते हैं और किसे आप एक प्रदाता को सौंपना पसंद करते हैं।
|
||||
|
||||
स्वयं प्रबंधित कर रहे कुबेरनेट्स क्लस्टर डिप्लॉय करने के लिए [kubeadm](/docs/setup/production-environment/tools/kubeadm/) आधिकारिक टूल है।
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
- [कुबेरनेट्स डाउनलोड करें](/releases/download/)
|
||||
- `kubectl` सहित डाउनलोड और [टूल इंस्टॉल](/hi/docs/tasks/tools/) करें।
|
||||
- अपने नए क्लस्टर के लिए [कंटेनर रनटाइम](/hi/docs/setup/production-environment/container-runtimes/) चुनें।
|
||||
- क्लस्टर सेटअप के लिए [सर्वोत्तम प्रक्रियाओं](/hi/docs/setup/best-practices/) के बारे में जानें।
|
||||
|
||||
कुबेरनेट्स के {{< glossary_tooltip term_id="control-plane" text="कण्ट्रोल प्लेन" >}} को Linux पर चलाने के लिए डिज़ाइन किया गया है। अपने क्लस्टर के अंदर आप Linux या अन्य ऑपरेटिंग सिस्टम पर एप्लिकेशन चला सकते हैं, जिसमें windows भी शामिल हैं।
|
||||
- [windows नोड्स के साथ क्लस्टर सेट अप करना](/hi/docs/setup/production-environment/windows/) सीखें।
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: उत्तम प्रथाएं
|
||||
weight: 40
|
||||
---
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
title: सीखने का माहौल
|
||||
weight: 20
|
||||
---
|
||||
|
||||
<!--
|
||||
{{/* There is a Netlify redirect from this page to /docs/tasks/tools/ */}}
|
||||
{{/* This page content only exists to provide a navigation stub */}}
|
||||
{{/* and to protect in case that redirect is one day removed. */}}
|
||||
|
||||
{{/* If you're localizing this page, you only need to copy the front matter */}}
|
||||
{{/* and add a redirect into "/static/_redirects", for YOUR localization. */}}
|
||||
-->
|
||||
|
|
@ -0,0 +1,135 @@
|
|||
---
|
||||
title: "उत्पादन वातावरण"
|
||||
description: एक उत्पादन-गुणवत्ता वाला कुबेरनेट्स क्लस्टर बनाएं
|
||||
weight: 30
|
||||
no_list: true
|
||||
---
|
||||
<!-- overview -->
|
||||
|
||||
उत्पादन-गुणवत्ता वाले कुबेरनेट्स क्लस्टर के लिए योजना और तैयारी की आवश्यकता होती है।
|
||||
यदि आपका कुबेरनेट्स क्लस्टर महत्वपूर्ण कार्यभार चलाने के लिए है, तो इसे लचीला होने के लिए कॉन्फ़िगर किया जाना चाहिए।
|
||||
यह पेज उन चरणों के बारे में बताता है जो आप उत्पादन के लिए तैयार क्लस्टर सेटअप करने के लिए,
|
||||
या उत्पादन के उपयोग के लिए मौजूदा क्लस्टर को अपग्रेड करने के लिए उठा सकते हैं।
|
||||
यदि आप पहले से ही उत्पादन सेटअप से परिचित हैं और लिंक चाहते हैं, तो
|
||||
[आगे जाएं](#what-s-next)।
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## उत्पादन विचार
|
||||
|
||||
आमतौर पर, उत्पादन कुबेरनेट्स क्लस्टर वातावरण में व्यक्तिगत सीखने, विकास या परीक्षण वातावरण कुबेरनेट्स की तुलना में अधिक आवश्यकताएं होती हैं। एक उत्पादन वातावरण की आवश्यकता ये हो सकती है, जैसे: कई उपयोगकर्ताओं द्वारा सुरक्षित पहुंच, लगातार उपलब्धता, और बदलती मांगों के लिए संसाधनों को अनुकूलित करना।
|
||||
|
||||
जैसा कि आप तय करते हैं कि आप अपने उत्पादन कुबेरनेट्स वातावरण को कहाँ रखना चाहते हैं (परिसर या क्लाउड में) और प्रबंधन की मात्रा जिसे आप दूसरों को देना या सौंपना चाहते हैं, विचार करें कि कुबेरनेट्स क्लस्टर के लिए आपकी आवश्यकताएं निम्नलिखित मुद्दों से कैसे प्रभावित होती हैं:
|
||||
|
||||
- *उपलब्धता*: सिंगल-मशीन कुबेरनेट्स [सीखने का माहौल](/docs/setup/#learning-environment) में विफलता का एक बिंदु है। अत्यधिक उपलब्ध क्लस्टर बनाने का अर्थ है:
|
||||
- कण्ट्रोल प्लेन को वर्कर नोड्स से अलग करना।
|
||||
- कई नोड्स पर कण्ट्रोल प्लेन घटकों की प्रतिकृति।
|
||||
- क्लस्टर के लिए संतुलन यातायात लोड करें{{< glossary_tooltip term_id="kube-apiserver" text="API server" >}}.
|
||||
- पर्याप्त वर्कर नोड्स उपलब्ध होना, या जल्दी से उपलब्ध होने में सक्षम होना, क्योंकि बदलते वर्कलोड इसे वारंट करते हैं।
|
||||
|
||||
- *स्केल*: यदि आप उम्मीद करते हैं कि आपके उत्पादन कुबेरनेट्स पर्यावरण को मांग की एक स्थिर मात्रा प्राप्त होगी, तो आप उस क्षमता के लिए सेटअप करने में सक्षम हो सकते हैं जिसकी आपको आवश्यकता है और किया जा सकता है। हालाँकि, यदि आप समय के साथ मांग बढ़ने की उम्मीद करते हैं या मौसम या विशेष घटनाओं जैसी चीजों के आधार पर अचानक से बदलते हैं, तो आपको योजना बनाने की आवश्यकता है कि कण्ट्रोल प्लेन और वर्कर नोड्स के लिए अधिक अनुरोधों से बढ़े दबाव को कैसे दूर किया जाए या अप्रयुक्त संसाधनों को कम करने के लिए स्केल किया जाए।
|
||||
|
||||
- *सुरक्षा और एक्सेस मैनेजमेंट*: आपके अपने कुबेरनेट्स लर्निंग क्लस्टर पर पूर्ण व्यवस्थापकीय विशेषाधिकार हैं। लेकिन महत्वपूर्ण कार्यभार के साथ साझा क्लस्टर, और एक या दो से अधिक उपयोगकर्ता, को क्लस्टर संसाधनों तक कौन और क्या एक्सेस कर सकता है, इसके लिए अधिक परिष्कृत दृष्टिकोण की आवश्यकता होती है। आप यह सुनिश्चित करने के लिए ([भूमिका-आधारित एक्सेस कण्ट्रोल](/docs/reference/access-authn-authz/rbac/)) और अन्य सुरक्षा तंत्रों का उपयोग कर सकते हैं कि उपयोगकर्ता और कार्यभार उन संसाधनों तक पहुँच प्राप्त कर सकते हैं जिनकी उन्हें आवश्यकता है, साथ ही में कार्यभार और क्लस्टर को साथ में सुरक्षित रख सके।
|
||||
आप [नीतियों](/docs/concepts/policy/) और [कंटेनर संसाधन](/docs/concepts/configuration/manage-resources-containers/) को प्रबंधित करके उन संसाधनों की सीमा निर्धारित कर सकते हैं जिन तक उपयोगकर्ता और कार्यभार पहुंच सकते हैं।
|
||||
|
||||
कुबेरनेट्स उत्पादन वातावरण को स्वयं बनाने से पहले, इस कार्य में से कुछ या सभी को सौंपने पर विचार करें
|
||||
[टर्नकी क्लाउड सॉल्यूशंस](/docs/setup/production-environment/turnkey-solutions/) प्रदाता या अन्य [कुबेरनेट्स पार्टनर्स](https://kubernetes.io/partners/) विकल्पों में शामिल हैं:
|
||||
|
||||
- *सर्वरलेस*: किसी क्लस्टर को प्रबंधित किए बिना केवल तृतीय-पक्ष उपकरण पर कार्यभार चलाएं। आपसे सीपीयू उपयोग, मेमोरी और डिस्क अनुरोध जैसी चीज़ों के लिए शुल्क लिया जाएगा।
|
||||
- *व्यवस्थित कण्ट्रोल प्लेन*: प्रदाता को क्लस्टर के कण्ट्रोल प्लेन के पैमाने और उपलब्धता का प्रबंधन करने दें, साथ ही पैच और अपग्रेड को भी संभालें।
|
||||
- *व्यवस्थित वर्कर नोड्स*: अपनी आवश्यकताओं को पूरा करने के लिए नोड्स के पूल को कॉन्फ़िगर करें, फिर प्रदाता सुनिश्चित करता है कि वे नोड उपलब्ध हैं और जरूरत पड़ने पर अपग्रेड को लागू करने के लिए तैयार हैं।
|
||||
- *एकीकरण*: ऐसे प्रदाता हैं जो कुबेरनेट्स को अन्य सेवाओं के साथ एकीकृत करते हैं जिनकी आपको आवश्यकता हो सकती है, जैसे भंडारण, कंटेनर रजिस्ट्रियां, प्रमाणीकरण तरीके, और विकास उपकरण।
|
||||
|
||||
चाहे आप कुबेरनेट्स क्लस्टर का निर्माण स्वयं करें या भागीदारों के साथ काम करें, अपनी आवश्यकताओं का मूल्यांकन करने के लिए निम्नलिखित अनुभागों की समीक्षा करें क्योंकि वे आपके क्लस्टर से संबंधित हैं *कण्ट्रोल प्लेन*, *वर्कर नोड्स*, *यूज़र एक्सेस*, और *वर्कलोड रिसोर्सस*.
|
||||
|
||||
## उत्पादन क्लस्टर सेटअप
|
||||
|
||||
उत्पादन-गुणवत्ता वाले कुबेरनेट्स क्लस्टर में, कण्ट्रोल प्लेन क्लस्टर को उन सेवाओं से प्रबंधित करता है जिन्हें विभिन्न तरीकों से कई कंप्यूटरों में फैलाया जा सकता है। हालाँकि, प्रत्येक वर्कर नोड एक एकल इकाई का प्रतिनिधित्व करता है जिसे कुबेरनेट्स पॉड चलाने के लिए कॉन्फ़िगर किया गया है।
|
||||
|
||||
### उत्पादन कण्ट्रोल प्लेन
|
||||
|
||||
सबसे सरल कुबेरनेट्स क्लस्टर में एक ही मशीन पर चलने वाले संपूर्ण कण्ट्रोल प्लेन और वर्कर नोड सेवाएं होती हैं। आप वर्कर नोड्स को जोड़कर उस वातावरण को विकसित कर सकते हैं, जैसा कि [कुबेरनेट्स कंपोनेंट्स](/docs/concepts/overview/components/) के डायग्राम में दर्शाया गया है। यदि क्लस्टर थोड़े समय के लिए उपलब्ध होने के लिए है, या अगर कुछ गंभीर रूप से गलत हो जाता है, तो इसे छोड़ दिया जा सकता है, यह आपकी आवश्यकताओं को पूरा कर सकता है।
|
||||
|
||||
यदि आपको अधिक स्थायी, अत्यधिक उपलब्ध क्लस्टर की आवश्यकता है, तो आपको कण्ट्रोल प्लेन को विस्तारित करने के तरीकों पर विचार करना चाहिए। डिजाइन के अनुसार, एक मशीन पर चलने वाली एक-मशीन कण्ट्रोल प्लेन सेवाएं अत्यधिक उपलब्ध नहीं हैं। यदि क्लस्टर को चालू रखना और यह सुनिश्चित करना कि कुछ गलत होने पर इसकी मरम्मत की जा सकती है, महत्वपूर्ण है, तो इन चरणों पर विचार करें:
|
||||
|
||||
- *डिप्लॉयमेंट टूल्स चुनें*: आप kubeadm, kops, और kubespray जैसे टूल का उपयोग करके एक कण्ट्रोल प्लेन को तैनात कर सकते हैं। उनमें से प्रत्येक डिप्लॉयमेंट विधियों का उपयोग करके उत्पादन-गुणवत्ता डिप्लॉयमेंट के लिए युक्तियों को जानने के लिए [डिप्लॉयमेंट टूल्स के साथ कुबेरनेट्स स्थापित करना](/docs/setup/production-environment/tools/) देखें। आपके डिप्लॉयमेंट के साथ उपयोग करने के लिए विभिन्न [कंटेनर रनटाइम](/docs/setup/production-environment/container-runtimes/) उपलब्ध हैं।
|
||||
- *सर्टिफ़िकेट प्रबंधित करे*: कण्ट्रोल प्लेन सेवाओं के बीच सुरक्षित संचार सर्टिफ़िकेटस का उपयोग करके कार्यान्वित किया जाता है। डिप्लॉयमेंट के दौरान सर्टिफ़िकेट स्वचालित रूप से उत्पन्न होते हैं या आप अपने स्वयं के सर्टिफ़िकेट अथॉरिटी का उपयोग करके उन्हें उत्पन्न कर सकते हैं।
|
||||
विवरण के लिए [PKI सर्टिफ़िकेटस और आवश्यकताएं](/docs/setup/best-practices/certificates/) देखें।
|
||||
- *एपिसर्वर के लिए लोड बैलेंसर कॉन्फ़िगर करें*: विभिन्न नोड्स पर चल रहे एपिसर्वर सर्विस इंस्टेंस के लिए बाहरी एपीआई अनुरोधों को वितरित करने के लिए लोड बैलेंसर को कॉन्फ़िगर करें।
|
||||
विवरण के लिए [एक बाहरी लोड बैलेंसर बनाना](/docs/tasks/access-application-cluster/create-external-load-balancer/) देखें।
|
||||
- *अलग और बैकअप etcd सेवा*: अतिरिक्त सुरक्षा और उपलब्धता के लिए etcd सेवाएं या तो अन्य कंट्रोल प्लेन सेवाओं के समान मशीनों पर चल सकती हैं या अलग मशीनों पर चल सकती हैं। क्योंकि etcd क्लस्टर कॉन्फ़िगरेशन डेटा संग्रहीत करता है, etcd डेटाबेस का बैकअप नियमित रूप से किया जाना चाहिए ताकि यह सुनिश्चित हो सके कि यदि आवश्यक हो तो आप उस डेटाबेस की मरम्मत कर सकते हैं।
|
||||
etcd को कॉन्फ़िगर करने और उपयोग करने के विवरण के लिए [etcd अक्सर पूछे जाने वाले प्रश्न](https://etcd.io/docs/v3.4/faq/) देखें।
|
||||
विवरण के लिए [कुबेरनेट्स के लिए ऑपरेटिंग etcd क्लस्टर](/docs/tasks/administer-cluster/configure-upgrade-etcd/) और [kubeadm के साथ एक उच्च उपलब्धता etcd क्लस्टर स्थापित करें](/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm/) देखें।
|
||||
- *मल्टीपल कण्ट्रोल प्लेन सिस्टम बनाएं*: उच्च उपलब्धता के लिए, कण्ट्रोल प्लेन एक मशीन तक सीमित नहीं होना चाहिए। यदि कण्ट्रोल प्लेन सेवाएं एक init सेवा (जैसे systemd) द्वारा चलाई जाती हैं, तो प्रत्येक सेवा को कम से कम तीन मशीनों पर चलना चाहिए। हालाँकि, कुबेरनेट्स में पॉड्स के रूप में कण्ट्रोल प्लेन सेवाएं चलाना सुनिश्चित करता है कि आपके द्वारा अनुरोधित सेवाओं की प्रतिकृति संख्या हमेशा उपलब्ध रहेगी।
|
||||
अनुसूचक फॉल्ट सहने वाला होना चाहिए, लेकिन अत्यधिक उपलब्ध नहीं होना चाहिए। कुबेरनेट्स सेवाओं के नेता चुनाव करने के लिए कुछ डिप्लॉयमेंट उपकरण [राफ्ट](https://raft.github.io/) सर्वसम्मति एल्गोरिथ्म की स्थापना करते हैं। यदि प्राथमिक चला जाता है, तो दूसरी सेवा स्वयं को चुनती है और कार्यभार संभालती है।
|
||||
- *कई क्षेत्रों में विस्तार करना*: यदि अपने क्लस्टर को हर समय उपलब्ध रखना महत्वपूर्ण है, तो एक ऐसा क्लस्टर बनाने पर विचार करें, जो कई डेटा केंद्रों पर चलता हो, जिसे क्लाउड वातावरण में ज़ोन के रूप में संदर्भित किया जाता है। ज़ोन(zone) के समूहों को रीजन(region) कहा जाता है। एक ही क्षेत्र में कई क्षेत्रों में एक क्लस्टर फैलाकर, यह इस संभावना में सुधार कर सकता है कि एक क्षेत्र अनुपलब्ध होने पर भी आपका क्लस्टर कार्य करना जारी रखेगा।
|
||||
विवरण के लिए [Running in multiple zones](/docs/setup/best-practices/multiple-zones/) देखें।
|
||||
- *चल रही सुविधाओं का प्रबंधन*: यदि आप अपने क्लस्टर को समय के साथ रखने की योजना बनाते हैं, तो इसके स्वास्थ्य और सुरक्षा को बनाए रखने के लिए आपको कुछ कार्य करने होंगे। उदाहरण के लिए, यदि आपने kubeadm के साथ स्थापित किया है, तो आपको [सर्टिफिकेट प्रबंधन](/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/) और [kubeadm क्लस्टर्स को अपग्रेड करने](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/) में मदद करने के लिए निर्देश दिए गए हैं, कुबेरनेट्स प्रशासनिक कार्यों की लंबी सूची के लिए [क्लस्टर का एडमिनिस्टर](/docs/tasks/administer-cluster/) देखें।
|
||||
|
||||
जब आप कण्ट्रोल प्लेन सेवाएं चलाते हैं, तो उपलब्ध विकल्पों के बारे में जानने के लिए, [kube-apiserver](/docs/reference/command-line-tools-reference/kube-apiserver/), [क्यूब-कंट्रोलर-मैनेजर](/docs/reference/command-line-tools-reference/kube-controller-manager/), देखें।
|
||||
और [क्यूब-शेड्यूलर](/docs/reference/command-line-tools-reference/kube-scheduler/) कॉम्पोनेन्ट पेज। अत्यधिक उपलब्ध कंट्रोल प्लेन उदाहरणों के लिए [अत्यधिक उपलब्ध टोपोलॉजी के लिए विकल्प](/docs/setup/production-environment/tools/kubeadm/ha-topology/),
|
||||
[kubeadm के साथ अत्यधिक उपलब्ध क्लस्टर बनाना](/docs/setup/production-environment/tools/kubeadm/high-availability/), और [कुबेरनेट्स के लिए ऑपरेटिंग etcd क्लस्टर](/docs/tasks/administer-cluster/configure-upgrade-etcd/)। etcd बैकअप योजना बनाने के बारे में जानकारी के लिए [etcd क्लस्टर का बैकअप लेना](/docs/tasks/administer-cluster/configure-upgrade-etcd/#backing-up-an-etcd-cluster) देखें।
|
||||
|
||||
### उत्पादन वर्कर नोड्स
|
||||
|
||||
उत्पादन-गुणवत्ता वाले कार्यभार को लचीला होने की आवश्यकता है और वे जिस चीज पर भरोसा करते हैं वह लचीला होना चाहिए (जैसे कि CoreDNS)। चाहे आप अपने स्वयं के कंट्रोल प्लेन का प्रबंधन करें या क्लाउड प्रदाता आपके लिए इसे करें, आपको अभी भी यह विचार करने की आवश्यकता है कि आप अपने वर्कर नोड्स को कैसे प्रबंधित करना चाहते हैं (इसे बस *नोड्स* के रूप में भी संदर्भित किया गया है)।
|
||||
|
||||
- *नोड्स कॉन्फ़िगर करें*: नोड्स भौतिक या आभासी मशीन हो सकते हैं। यदि आप अपने स्वयं के नोड्स बनाना और प्रबंधित करना चाहते हैं, तो आप एक समर्थित ऑपरेटिंग सिस्टम स्थापित कर सकते हैं, फिर उपयुक्त जोड़ और चला सकते हैं
|
||||
[नोड सेवाएं](/docs/concepts/overview/components/#node-components)। विचार करना:
|
||||
- जब आप उपयुक्त मेमोरी, सीपीयू, और डिस्क स्पीड और स्टोरेज क्षमता उपलब्ध कराकर नोड्स सेट करते हैं तो आपके वर्कलोड की मांग।
|
||||
- क्या जेनेरिक कंप्यूटर सिस्टम करेंगे या आपके पास ऐसे वर्कलोड हैं जिन्हें GPU प्रोसेसर, Windows नोड्स या VM आइसोलेशन की आवश्यकता है।
|
||||
- *वैलिदेट(Validate) नोड*: यह सुनिश्चित करने के तरीके के बारे में जानकारी के लिए [वैलिद(Valid) नोड सेटअप](/docs/setup/best-practices/node-conformance/) देखें कि एक नोड कुबेरनेट्स क्लस्टर में शामिल होने के लिए आवश्यकताओं को पूरा करता है।
|
||||
- *क्लस्टर में नोड जोड़ें*: यदि आप अपने स्वयं के क्लस्टर का प्रबंधन कर रहे हैं, तो आप अपनी स्वयं की मशीनें स्थापित करके और या तो उन्हें मैन्युअल रूप से जोड़कर या क्लस्टर के एपिसर्वर में खुद को पंजीकृत करवाकर नोड्स जोड़ सकते हैं। इन तरीकों से नोड्स जोड़ने के लिए कुबेरनेट्स को कैसे सेट करें, इस बारे में जानकारी के लिए [नोड्स](/docs/concepts/architecture/nodes/) अनुभाग देखें।
|
||||
- *क्लस्टर में Windows नोड्स जोड़ें*: कुबेरनेट्स Windows वर्कर नोड्स के लिए समर्थन प्रदान करता है, जिससे आप Windows कंटेनरों में लागू वर्कलोड को चला सकते हैं। विवरण के लिए [कुबेरनेट्स में Windows](/docs/setup/production-environment/windows/) देखें।
|
||||
- *स्केल नोड्स*: आपके क्लस्टर को अंततः जिस क्षमता की आवश्यकता होगी, उसके विस्तार के लिए एक योजना बनाएं। आपको चलाने के लिए आवश्यक पॉड्स और कंटेनरों की संख्या के आधार पर, यह निर्धारित करने में सहायता के लिए [बड़े समूहों के लिए विचार](/docs/setup/best-practices/cluster-large/) देखें कि आपको कितने नोड्स की आवश्यकता है। यदि आप स्वयं नोड्स का प्रबंधन कर रहे हैं, तो इसका अर्थ यह हो सकता है कि आप अपने स्वयं के भौतिक उपकरण खरीदना और स्थापित करना चाहते हैं।
|
||||
- *ऑटोस्केल नोड्स*: अधिकांश क्लाउड प्रदाता अस्वस्थ नोड्स को बदलने के लिए [क्लस्टर ऑटोस्केलर](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler#readme) का समर्थन करते हैं या मांग के अनुसार नोड्स की संख्या को बढ़ाते और घटाते हैं। विभिन्न क्लाउड प्रदाताओं द्वारा इसे कैसे कार्यान्वित किया जाता है, इसके लिए [अक्सर पूछे जाने वाले प्रश्न](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md) ऑटोस्केलर कैसे काम करता है और [डिप्लॉयमेंट](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler#deployment) देखें। ऑन-प्रिमाइसेस के लिए, कुछ वर्चुअलाइजेशन प्लेटफॉर्म हैं जिन्हें मांग के आधार पर नए नोड्स को स्पिन करने के लिए स्क्रिप्ट किया जा सकता है।
|
||||
- *नोड स्वास्थ्य जांच सेट करें*: महत्वपूर्ण कार्यभार के लिए, आप यह सुनिश्चित करना चाहते हैं कि उन नोड्स पर चलने वाले नोड और पॉड स्वस्थ हैं। [नोड समस्या डिटेक्टर](/docs/tasks/debug-application-cluster/monitor-node-health/) डेमॉन का उपयोग करके, आप सुनिश्चित कर सकते हैं कि आपके नोड स्वस्थ हैं।
|
||||
|
||||
## उत्पादन उपयोगकर्ता प्रबंधन
|
||||
|
||||
उत्पादन में, आप उस मॉडल से आगे बढ़ रहे हैं जहां आप या लोगों का एक छोटा समूह क्लस्टर तक पहुंच रहा है जहां संभावित रूप से दर्जनों या सैकड़ों लोग हो सकते हैं। सीखने के माहौल या प्लेटफ़ॉर्म प्रोटोटाइप में, आप जो कुछ भी करते हैं उसके लिए आपके पास एक ही प्रशासनिक खाता हो सकता है। उत्पादन में, आप विभिन्न नेमस्पेस्सों तक पहुंच के विभिन्न स्तरों वाले अधिक खाते चाहते हैं।
|
||||
|
||||
उत्पादन-गुणवत्ता वाले क्लस्टर को लेने का अर्थ है यह तय करना कि आप कैसे हैं
|
||||
अन्य उपयोगकर्ताओं द्वारा चुनिंदा रूप से पहुंच की अनुमति देना चाहते हैं। विशेष रूप से, आपको उन लोगों की पहचान को सत्यापित करने के लिए रणनीतियों का चयन करने की आवश्यकता है जो आपके क्लस्टर (प्रमाणीकरण) तक पहुंचने का प्रयास करते हैं और यह तय करते हैं कि क्या उनके पास वह करने की अनुमति है जो वे पूछ रहे हैं (प्राधिकरण):
|
||||
|
||||
- *प्रमाणीकरण*: apiserver क्लाइंट का उपयोग करके उपयोगकर्ताओं को प्रमाणित कर सकता है
|
||||
प्रमाण पत्र, वाहक टोकन, एक प्रमाणीकरण प्रॉक्सी, या HTTP मूल प्रमाणीकरण। आप चुन सकते हैं कि आप किन प्रमाणीकरण विधियों का उपयोग करना चाहते हैं। प्लगइन्स का उपयोग करके, apiserver आपके संगठन की मौजूदा प्रमाणीकरण विधियों, जैसे LDAP या Kerberos का लाभ उठा सकता है। कुबेरनेट्स उपयोगकर्ताओं को प्रमाणित करने के इन विभिन्न तरीकों के विवरण के लिए [प्रमाणीकरण](/docs/reference/access-authn-authz/authentication/) देखो।
|
||||
- *प्राधिकरण*: जब आप अपने नियमित उपयोगकर्ताओं को अधिकृत करने के लिए निकलते हैं, तो आप शायद आरबीएसी और एबीएसी प्राधिकरण के बीच चयन करेंगे। उपयोगकर्ता खातों को अधिकृत करने के लिए विभिन्न तरीकों की समीक्षा करने के लिए [प्राधिकरण अवलोकन](/docs/reference/access-authn-authz/authorization/) देखें (साथ ही आपके क्लस्टर में सेवा खाते तक पहुंच):
|
||||
- *भूमिका-आधारित अभिगम नियंत्रण* ([RBAC](/docs/reference/access-authn-authz/rbac/)): प्रमाणित उपयोगकर्ताओं को अनुमतियों के विशिष्ट सेट की अनुमति देकर आप अपने क्लस्टर तक पहुँच प्रदान कर सकते हैं। अनुमतियाँ एक विशिष्ट नेमस्पेस्स (भूमिका) या संपूर्ण क्लस्टर (ClusterRole) के लिए असाइन की जा सकती हैं। फिर रोलबाइंडिंग और क्लस्टररोलबाइंडिंग का उपयोग करके, उन अनुमतियों को विशेष उपयोगकर्ताओं से जोड़ा जा सकता है।
|
||||
- *विशेषता-आधारित अभिगम नियंत्रण* ([ABAC](/docs/reference/access-authn-authz/abac/)): आपको क्लस्टर में संसाधन विशेषताओं के आधार पर नीतियां बनाने देता है और उन विशेषताओं के आधार पर पहुंच की अनुमति देगा या अस्वीकार करेगा। नीति फ़ाइल की प्रत्येक पंक्ति विषय (उपयोगकर्ता या समूह), संसाधन संपत्ति, गैर-संसाधन संपत्ति (/ संस्करण या / एपिस), और केवल पढ़ने के लिए संस्करण गुणों (एपीआई संस्करण और प्रकार) और विशिष्ट गुणों के मानचित्र की पहचान करती है। विवरण के लिए देखें [उदाहरण](/docs/reference/access-authn-authz/abac/#examples)।
|
||||
|
||||
जब कोई आपके उत्पादन कुबेरनेट्स क्लस्टर पर प्रमाणीकरण और प्राधिकरण सेटअप कर रहा हो, तो यहां कुछ बातों पर विचार करना चाहिए:
|
||||
|
||||
- *प्राधिकरण मोड सेट करें*: जब कुबेरनेट्स एपीआई सर्वर
|
||||
([kube-apiserver](/docs/reference/command-line-tools-reference/kube-apiserver/)) शुरू होता है, समर्थित प्रमाणीकरण मोड को *--authorization-mode* फ़्लैग का उपयोग करके सेट किया जाना चाहिए। उदाहरण के लिए, *kube-adminserver.yaml* फ़ाइल में वह फ़्लैग (*/etc/kubernetes/manifests* में) नोड, आरबीएसी पर सेट किया जा सकता है। यह प्रमाणित अनुरोधों के लिए नोड और आरबीएसी प्राधिकरण की अनुमति देगा।
|
||||
- *उपयोगकर्ता प्रमाणपत्र और रोल बाइंडिंग (RBAC) बनाएं*: यदि आप आरबीएसी प्राधिकरण का उपयोग कर रहे हैं, तो उपयोगकर्ता एक सर्टिफिकेट साइनिंग रिक्वेस्ट (सीएसआर) बना सकते हैं जिस पर क्लस्टर सीए द्वारा हस्ताक्षर किए जा सकते हैं। फिर आप प्रत्येक उपयोगकर्ता के लिए रोल्स और क्लस्टररोल्स को बाध्य कर सकते हैं।
|
||||
विवरण के लिए [प्रमाणपत्र पर हस्ताक्षर करने के अनुरोध](/docs/reference/access-authn-authz/certificate-signing-requests/) देखें।
|
||||
- *ऐसी नीतियां बनाएं जो विशेषताओं को जोड़ती हैं (ABAC)*: यदि आप एबीएसी प्राधिकरण का उपयोग कर रहे हैं, तो आप चुनिंदा उपयोगकर्ताओं या समूहों को विशेष संसाधनों (जैसे पॉड), नेमस्पेस, या एपीग्रुप तक पहुंचने के लिए अधिकृत करने के लिए नीतियां बनाने के लिए विशेषताओं के संयोजन असाइन कर सकते हैं। अधिक जानकारी के लिए देखें [उदाहरण](/docs/reference/access-authn-authz/abac/#examples)।
|
||||
- *प्रवेश नियंत्रकों पर विचार करें*: एपीआई सर्वर के माध्यम से आने वाले अनुरोधों के लिए प्राधिकरण के अतिरिक्त रूपों में शामिल हैं
|
||||
[वेबहुक टोकन प्रमाणीकरण](/docs/reference/access-authn-authz/authentication/#webhook-token-authentication)। वेबहुक और अन्य विशेष प्राधिकरण प्रकारों को एपीआई सर्वर में [प्रवेश नियंत्रक](/docs/reference/access-authn-authz/admission-controllers/) जोड़कर सक्षम करने की आवश्यकता है।
|
||||
|
||||
## कार्यभार संसाधनों पर सीमा निर्धारित करें
|
||||
|
||||
उत्पादन कार्यभार की मांग कुबेरनेट्स नियंत्रण विमान के अंदर और बाहर दोनों जगह दबाव पैदा कर सकती है। अपने क्लस्टर के वर्कलोड की जरूरतों के लिए सेट अप करते समय इन मदों पर विचार करें:
|
||||
|
||||
- *नेमस्पेस्स की सीमा निर्धारित करें*: मेमोरी और सीपीयू जैसी चीजों पर प्रति नेमस्पेस कोटा सेट करें। विवरण के लिए [मेमोरी, सीपीयू और एपीआई संसाधन प्रबंधित करें](/docs/tasks/administer-cluster/manage-resources/) देखें।
|
||||
आप इनहेरिट करने की सीमा के लिए [हिरार्चीकैल नेमस्पेस्स](/blog/2020/08/14/introducing-hierarchical-namespaces/) भी सेट कर सकते हैं।
|
||||
- *DNS मांग के लिए तैयार करें*: यदि आप वर्कलोड के बड़े पैमाने पर बढ़ने की उम्मीद करते हैं, तो आपकी DNS सेवा भी बड़े पैमाने पर तैयार होनी चाहिए।
|
||||
[क्लस्टर में DNS सेवा को ऑटोस्केल करना](/docs/tasks/administer-cluster/dns-horizontal-autoscaling/) देखें।
|
||||
- *अतिरिक्त सेवा खाते बनाएं*: उपयोगकर्ता खाते यह निर्धारित करते हैं कि उपयोगकर्ता क्लस्टर पर क्या कर सकते हैं, जबकि एक सेवा खाता किसी विशेष नेमस्पेस्स के भीतर पॉड एक्सेस को परिभाषित करता है। डिफ़ॉल्ट रूप से, एक पॉड अपने नेमस्पेस्स से डिफ़ॉल्ट सेवा खाता लेता है।
|
||||
नया सेवा खाता बनाने के बारे में जानकारी के लिए [सेवा खातों का प्रबंधन](/docs/reference/access-authn-authz/service-accounts-admin/) देखें।
|
||||
उदाहरण के लिए, आप शायद यह करना चाहें:
|
||||
- ऐसे रहस्य जोड़ें जिनका उपयोग पॉड किसी विशेष कंटेनर रजिस्ट्री से इमेज खींचने के लिए कर सकता है। उदाहरण के लिए [पॉड्स के लिए सेवा खाते कॉन्फ़िगर करें](/docs/tasks/configure-pod-container/configure-service-account/) देखें।
|
||||
- किसी सेवा खाते में RBAC अनुमतियाँ असाइन करें। विवरण के लिए [सेवा खाता अनुमतियां](/docs/reference/access-authn-authz/rbac/#service-account-permissions) देखें।
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
- तय करें कि आप अपना खुद का उत्पादन कुबेरनेट्स बनाना चाहते हैं या उपलब्ध [टर्नकी क्लाउड सॉल्यूशंस](/docs/setup/production-environment/turnkey-solutions/) से एक प्राप्त करना चाहते हैं
|
||||
या [कुबेरनेट्स पार्टनर्स](https://kubernetes.io/partners/)।
|
||||
- यदि आप अपना स्वयं का क्लस्टर बनाना चुनते हैं, तो योजना बनाएं कि आप [प्रमाणपत्र](/docs/setup/best-practices/certificates/) को कैसे संभालना चाहते हैं और [etcd](/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm/) जैसी सुविधाओं के लिए उच्च उपलब्धता सेट करें।
|
||||
और [एपीआई सर्वर](/docs/setup/production-environment/tools/kubeadm/ha-topology/)।
|
||||
- [kubeadm](/docs/setup/production-environment/tools/kubeadm/), [kops](/docs/setup/production-environment/tools/kops/) या [kubespray](/docs/setup/production-environment/tools/kubespray/) डिप्लॉयमेंट विधियों में से चुनें।
|
||||
- अपना निर्धारित करके उपयोगकर्ता प्रबंधन को कॉन्फ़िगर करें
|
||||
[प्रमाणीकरण](/docs/reference/access-authn-authz/authentication/) और [प्राधिकरण](/docs/reference/access-authn-authz/authorization/) विधियां।
|
||||
- सेटअप करके एप्लिकेशन वर्कलोड की तैयारी करें
|
||||
[संसाधन सीमाएं](/docs/tasks/administer-cluster/manage-resources/), [DNS ऑटोस्केलिंग](/docs/tasks/administer-cluster/dns-horizontal-autoscaling/) और [सेवा खाते](/docs/reference/access-authn-authz/service-accounts-admin/)।
|
|
@ -0,0 +1,391 @@
|
|||
---
|
||||
title: कंटेनर रनटाइम
|
||||
content_type: concept
|
||||
weight: 20
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
आपको क्लस्टर में प्रत्येक नोड में एक {{< glossary_tooltip text="कंटेनर रनटाइम" term_id="container-runtime" >}}
|
||||
इंस्टॉल करना होगा ताकि पॉड वहां चल सकें।
|
||||
यह पृष्ठ बताता है कि क्या शामिल है और
|
||||
नोड्स की स्थापना के लिए संबंधित कार्यों का वर्णन करता है।
|
||||
|
||||
<!-- body -->
|
||||
|
||||
कुबेरनेट्स {{< skew currentVersion >}} के लिए आवश्यक है कि आप एक रनटाइम का उपयोग करें जो
|
||||
{{< glossary_tooltip term_id="cri" text="कंटेनर रनटाइम इंटरफ़ेस">}} (CRI)
|
||||
के अनुरूप है।
|
||||
|
||||
अधिक जानकारी के लिए [CRI version support](#cri-versions) देखें।
|
||||
|
||||
यह पृष्ठ Linux पर कुबेरनेट्स के साथ कई सामान्य कंटेनर रनटाइम का उपयोग करने के विवरण सूचीबद्ध करता है:
|
||||
|
||||
- [containerd](#containerd)
|
||||
- [CRI-O](#cri-o)
|
||||
- [Docker Engine](#docker)
|
||||
- [Mirantis Container Runtime](#mcr)
|
||||
|
||||
{{< note >}}
|
||||
अन्य ऑपरेटिंग सिस्टम के लिए, अपने प्लेटफ़ॉर्म के अनुसार विशिष्ट प्रलेखन देखें।
|
||||
{{< /note >}}
|
||||
|
||||
## Cgroup ड्राइवर
|
||||
|
||||
प्रक्रियाओं के लिए आवंटित संसाधनों को सीमित करने के लिए कण्ट्रोल ग्रुप का उपयोग किया जाता है।
|
||||
|
||||
जब Linux वातावरण के लिए init सिस्टम, [systemd (https://www.freedesktop.org/wiki/Software/systemd/)
|
||||
को चुना जाता है, तब init प्रक्रिया रुट(root) control group (`cgroup`) उत्पन्न करती है और उपभोग करती है तथा cgroup मैनेजर की तरह काम करता है।
|
||||
Systemd और cgroups एकीकृत हैं और प्रत्येक systemd यूनिट को एक cgroup आवंटित होता है। अपने कन्टैनर रनटाइम और kubelet को `cgroupfs` प्रयोग करने के लिए कॉन्फ़िगर करना संभव है। systemd के साथ `cgroupfs` प्रयोग करने के कारण दो अलग cgroup मैनेजर होंगे।
|
||||
|
||||
एक एकल cgroup प्रबंधक इस दृष्टिकोण को सरल बनाता है कि कौन से संसाधन आवंटित किए जा रहे हैं और डिफ़ॉल्ट रूप से उपलब्ध और उपयोग में आने वाले संसाधनों के बारे में अधिक सुसंगत दृश्य होगा।
|
||||
जब एक सिस्टम पर दो cgroup मैनेजर होते हैं, तो आपको उन रिसोर्सेज के दो व्यू मिलते हैं। क्षेत्र में, लोगों ने ऐसे मामलों की सूचना दी है जहां नोड्स जो kubelet और डॉकर के लिए `cgroupfs` का उपयोग करने के लिए कॉन्फ़िगर किए गए हैं, लेकिन बाकी प्रक्रियाओं के लिए `systemd` संसाधन दबाव के कारण अस्थिर हो जाते हैं।
|
||||
|
||||
सेटिंग्स को इस तरह बदलना कि आपका कंटेनर रनटाइम और kubelet `systemd` का उपयोग करें क्योंकि cgroup ड्राइवर सिस्टम को स्थिर करता है। डॉकर के लिए इसे कॉन्फ़िगर करने के लिए, `native.cgroupdriver=systemd` सेट करें।
|
||||
|
||||
{{< caution >}}
|
||||
क्लस्टर में शामिल होने वाले नोड के cgroup ड्राइवर को बदलना एक संवेदनशील ऑपरेशन है। यदि kubelet ने एक सीग्रुप ड्राइवर के सिमेंटिक्स (semantics) का उपयोग करके पॉड्स बनाए हैं, तो कंटेनर रनटाइम को दूसरे सीग्रुप ड्राइवर में बदलने से मौजूदा पॉड्स के पॉड सैंडबॉक्स को फिर से बनाते समय त्रुटियां हो सकती हैं। kubelet को पुनरारंभ करने से ऐसी त्रुटियों का समाधान नहीं हो सकता है।
|
||||
|
||||
यदि आपके पास स्वचालन है जो इसे व्यवहार्य बनाता है, तो अद्यतन किए गए कॉन्फ़िगरेशन का उपयोग करके नोड को दूसरे के साथ बदलें, या स्वचालन का उपयोग करके इसे पुनर्स्थापित करें।
|
||||
{{< /caution >}}
|
||||
|
||||
## Cgroup v2
|
||||
|
||||
Cgroup v2, cgroup Linux API का अगला संस्करण है। Cgroup v1 से अलग, प्रत्येक कंट्रोलर के लिए एक अलग अनुक्रम के बजाय एक पदानुक्रम है।
|
||||
|
||||
नया संस्करण cgroup v1 पर कई सुधार प्रदान करता है, इनमें से कुछ सुधार हैं:
|
||||
|
||||
- API का उपयोग करने का स्पष्ट और आसान तरीका
|
||||
- कंटेनरों के लिए सुरक्षित उप-वृक्ष प्रतिनिधिमंडल
|
||||
- प्रेशर स्टॉल की जानकारी जैसी नई सुविधाएँ
|
||||
|
||||
भले ही कर्नेल हाइब्रिड कॉन्फ़िगरेशन का समर्थन करता हो, जहां कुछ नियंत्रक cgroup v1 द्वारा प्रबंधित किए जाते हैं और कुछ अन्य cgroup v2 द्वारा, Kubernetes सभी नियंत्रकों को प्रबंधित करने के लिए केवल उसी cgroup संस्करण का समर्थन करता है।
|
||||
|
||||
यदि सिस्टमड (Systemd) डिफ़ॉल्ट रूप से cgroup v2 का उपयोग नहीं करता है, तो आप कर्नेल कमांड लाइन में `systemd.unified_cgroup_hierarchy=1` जोड़कर सिस्टम को इसका उपयोग करने के लिए कॉन्फ़िगर कर सकते हैं।
|
||||
|
||||
```shell
|
||||
# यह उदाहरण एक Linux OS के लिए है जो DNF पैकेज मैनेजर का उपयोग करता है
|
||||
# आपका सिस्टम कमांड लाइन सेट करने के लिए एक अलग विधि का उपयोग कर सकता है
|
||||
# लिनक्स कर्नेल का उपयोग करता है।
|
||||
sudo dnf install -y grubby && \
|
||||
sudo grubby \
|
||||
--update-kernel=ALL \
|
||||
--args="systemd.unified_cgroup_hierarchy=1"
|
||||
```
|
||||
|
||||
यदि आप कर्नेल के लिए कमांड लाइन बदलते हैं, तो आपको अपने से पहले नोड को रिबूट करना होगा
|
||||
परिवर्तन प्रभावी होता है।
|
||||
|
||||
Cgroup v2 में स्विच करते समय उपयोगकर्ता अनुभव में कोई उल्लेखनीय अंतर नहीं होना चाहिए, जब तक कि उपयोगकर्ता सीग्रुप फाइल सिस्टम को सीधे नोड पर या कंटेनरों के भीतर से एक्सेस कर रहे हैं।
|
||||
|
||||
इसका उपयोग करने के लिए, Cgroup v2 को CRI रनटाइम द्वारा भी सपोर्टेड (supported) होना चाहिए।
|
||||
|
||||
### Kubeadm प्रबंधित क्लस्टर में `systemd` ड्राइवर में माइग्रेट करना
|
||||
|
||||
यदि आप मौजूदा kubeadm प्रबंधित क्लस्टर में `systemd` cgroup ड्राइवर में माइग्रेट करना चाहते हैं, तो [माइग्रेशन गाइड](/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) का पालन करें।
|
||||
|
||||
## CRI संस्करण समर्थन {#cri-versions}
|
||||
|
||||
आपके कंटेनर रनटाइम को कंटेनर रनटाइम इंटरफ़ेस के कम से कम v1alpha2 का समर्थन करना चाहिए।
|
||||
|
||||
कुबेरनेट्स {{< skew currentVersion >}} डिफ़ॉल्ट रूप से CRI API के v1 का उपयोग करता है।
|
||||
यदि कंटेनर रनटाइम v1 API का समर्थन नहीं करता है, तो क्यूबलेट वापस आ जाता है
|
||||
इसके बजाय (बहिष्कृत) v1alpha2 API का उपयोग करना।
|
||||
|
||||
## कंटेनर रनटाइम
|
||||
|
||||
{{% thirdparty-content %}}
|
||||
|
||||
|
||||
### कंटेनरडी {#containerd}
|
||||
|
||||
यह खंड कंटेनरडी को CRI रनटाइम के रूप में उपयोग करने के लिए आवश्यक कदम है।
|
||||
|
||||
अपने सिस्टम पर containerd इंस्टॉल करने के लिए निम्नलिखित कमांड का उपयोग करें:
|
||||
|
||||
पूर्वापेक्षाएँ इंस्टॉल और कॉन्फ़िगर करें:
|
||||
|
||||
```shell
|
||||
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
|
||||
overlay
|
||||
br_netfilter
|
||||
EOF
|
||||
sudo modprobe overlay
|
||||
sudo modprobe br_netfilter
|
||||
# सेटअप आवश्यक sysctl params, ये रिबूट के दौरान बने रहते हैं।
|
||||
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
|
||||
net.bridge.bridge-nf-call-iptables = 1
|
||||
net.ipv4.ip_forward = 1
|
||||
net.bridge.bridge-nf-call-ip6tables = 1
|
||||
EOF
|
||||
# रिबूट के बिना sysctl params लागू करें
|
||||
sudo sysctl --system
|
||||
```
|
||||
|
||||
कंटेनरडी इंस्टॉल करें:
|
||||
|
||||
{{< tabs name="tab-cri-containerd-installation" >}}
|
||||
{{% tab name="Linux" %}}
|
||||
|
||||
1. आधिकारिक डॉकर रिपॉजिटरी से `containerd.io` पैकेज इंस्टॉल करें।
|
||||
अपने संबंधित लिनक्स वितरण के लिए डॉकर रिपॉजिटरी इंस्टॉल करने और `containerd.io` पैकेज इंस्टॉल करने के निर्देश यहां देखे जा सकते हैं
|
||||
[डॉकर इंजन इंस्टॉल करें](https://docs.docker.com/engine/install/#server).
|
||||
|
||||
2. कंटेनरडी कॉन्फ़िगर करें:
|
||||
|
||||
```shell
|
||||
sudo mkdir -p /etc/containerd
|
||||
containerd config default | sudo tee /etc/containerd/config.toml
|
||||
```
|
||||
|
||||
3. कंटेनरडी को पुनरारंभ करें:
|
||||
|
||||
```shell
|
||||
sudo systemctl restart containerd
|
||||
```
|
||||
|
||||
{{% /tab %}}
|
||||
{{% tab name="Windows (PowerShell)" %}}
|
||||
|
||||
Powershell सत्र प्रारंभ करें, `$Version` को वांछित संस्करण पर सेट करें (उदाहरण: `$Version=1.4.3`), और फिर निम्न आदेश चलाएँ:
|
||||
|
||||
1. कंटेनरडी डाउनलोड करें:
|
||||
|
||||
```powershell
|
||||
curl.exe -L https://github.com/containerd/containerd/releases/download/v$Version/containerd-$Version-windows-amd64.tar.gz -o containerd-windows-amd64.tar.gz
|
||||
tar.exe xvf .\containerd-windows-amd64.tar.gz
|
||||
```
|
||||
|
||||
2. एक्सट्रेक्ट एंड कॉन्फ़िगर:
|
||||
|
||||
```powershell
|
||||
Copy-Item -Path ".\bin\" -Destination "$Env:ProgramFiles\containerd" -Recurse -Force
|
||||
cd $Env:ProgramFiles\containerd\
|
||||
.\containerd.exe config default | Out-File config.toml -Encoding ascii
|
||||
# कॉन्फ़िगरेशन की समीक्षा करें। सेटअप के आधार पर आप समायोजित करना चाह सकते हैं:
|
||||
# - सैंडबॉक्स_इमेज (कुबेरनेट्स पॉज़ इमेज)
|
||||
# - cni bin_dir और conf_dir स्थान
|
||||
Get-Content config.toml
|
||||
# (वैकल्पिक - लेकिन अत्यधिक अनुशंसित) विंडोज डिफेंडर स्कैन से कंटेनर को बाहर करें
|
||||
Add-MpPreference -ExclusionProcess "$Env:ProgramFiles\containerd\containerd.exe"
|
||||
```
|
||||
|
||||
3. कंटेनरडी शुरू करें:
|
||||
|
||||
```powershell
|
||||
.\containerd.exe --register-service
|
||||
Start-Service containerd
|
||||
```
|
||||
|
||||
{{% /tab %}}
|
||||
{{< /tabs >}}
|
||||
|
||||
#### systemd` cgroup ड्राइवर का उपयोग करें {#containerd-systemd}
|
||||
`systemd` cgroup ड्राइवर {#containerd-systemd} का उपयोग करना
|
||||
`runc` के साथ `/etc/containerd/config.toml` में `systemd` cgroup ड्राइवर का उपयोग करने के लिए, सेट करें
|
||||
```
|
||||
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
|
||||
...
|
||||
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
|
||||
SystemdCgroup = true
|
||||
```
|
||||
यदि आप इस परिवर्तन को लागू करते हैं,तो सुनिश्चित करें कि आप फिर से कंटेनरडी को पुनरारंभ करें:
|
||||
```shell
|
||||
sudo systemctl restart containerd
|
||||
```
|
||||
|
||||
जब आप kubeadm का उपयोग करें, मैन्युअल रूप से कॉन्फ़िगर करें
|
||||
[क्यूबलेट के लिए cgroup ड्राइवर](/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#configure-cgroup-driver-used-by-kubelet-on-control-plane-node) मैन्युअल रूप से कॉन्फ़िगर करें।
|
||||
|
||||
### CRI-O
|
||||
|
||||
इस खंड में CRI-O को कंटेनर रनटाइम के रूप में इंस्टॉल करने के लिए आवश्यक जानकारी है।
|
||||
|
||||
अपने सिस्टम पर CRI-O इंस्टॉल करने के लिए निम्नलिखित कमांड का उपयोग करें:
|
||||
|
||||
{{< note >}}
|
||||
CRI-O के प्रमुख और छोटे संस्करणों को Kubernetes के प्रमुख और छोटे संस्करणों से मेल खाना चाहिए।
|
||||
अधिक जानकारी के लिए [CRI-O compatibility matrix](https://github.com/cri-o/cri-o#compatibility-matrix-cri-o--kubernetes) देखें।
|
||||
{{< /note >}}
|
||||
|
||||
पूर्वापेक्षाएँ इंस्टॉल और कॉन्फ़िगर करें:
|
||||
|
||||
```shell
|
||||
# बूटअप पर मॉड्यूल लोड करने के लिए .conf फाइल बनाएं
|
||||
cat <<EOF | sudo tee /etc/modules-load.d/crio.conf
|
||||
overlay
|
||||
br_netfilter
|
||||
EOF
|
||||
sudo modprobe overlay
|
||||
sudo modprobe br_netfilter
|
||||
# आवश्यक sysctl params सेट करें, ये रिबूट के दौरान बने रहते हैं।
|
||||
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
|
||||
net.bridge.bridge-nf-call-iptables = 1
|
||||
net.ipv4.ip_forward = 1
|
||||
net.bridge.bridge-nf-call-ip6tables = 1
|
||||
EOF
|
||||
sudo sysctl --system
|
||||
```
|
||||
|
||||
{{< tabs name="tab-cri-cri-o-installation" >}}
|
||||
{{% tab name="Debian" %}}
|
||||
|
||||
निम्नलिखित ऑपरेटिंग सिस्टम पर CRI-O स्थापित करने के लिए, एनवायरनमेंट वेरिएबल`OS` को निम्न तालिका से उपयुक्त मान पर सेट करें:
|
||||
|
||||
| ऑपरेटिंग सिस्टम | `$OS` |
|
||||
| ---------------- | ----------------- |
|
||||
| Debian Unstable | `Debian_Unstable` |
|
||||
| Debian Testing | `Debian_Testing` |
|
||||
|
||||
<br />
|
||||
फिर, सेट करें `$VERSION`CRI-O संस्करण में जो आपके Kubernetes संस्करण से मेल खाता है।
|
||||
उदाहरण के लिए, यदि आप CRI-O 1.20 इंस्टॉल करना चाहते हैं, तो `VERSION=1.20` सेट करें।
|
||||
आप अपनी स्थापना को किसी विशिष्ट रिलीज़ पर पिन कर सकते हैं।
|
||||
संस्करण 1.20.0 स्थापित करने के लिए, `VERSION=1.20:1.20.0` सेट करें।
|
||||
<br />
|
||||
|
||||
कृपया यह करें
|
||||
```shell
|
||||
cat <<EOF | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
|
||||
deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /
|
||||
EOF
|
||||
cat <<EOF | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list
|
||||
deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/ /
|
||||
EOF
|
||||
curl -L https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/Release.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/libcontainers.gpg add -
|
||||
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/Release.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/libcontainers.gpg add -
|
||||
sudo apt-get update
|
||||
sudo apt-get install cri-o cri-o-runc
|
||||
```
|
||||
|
||||
{{% /tab %}}
|
||||
|
||||
{{% tab name="Ubuntu" %}}
|
||||
|
||||
निम्नलिखित ऑपरेटिंग सिस्टम पर स्थापित करने के लिए, एनवायरनमेंट वेरिएबल `OS` सेट करें
|
||||
निम्न तालिका में उपयुक्त फ़ील्ड के लिए:
|
||||
|
||||
| ऑपरेटिंग सिस्टम | `$OS` |
|
||||
| ---------------- | ----------------- |
|
||||
| Ubuntu 20.04 | `xUbuntu_20.04` |
|
||||
| Ubuntu 19.10 | `xUbuntu_19.10` |
|
||||
| Ubuntu 19.04 | `xUbuntu_19.04` |
|
||||
| Ubuntu 18.04 | `xUbuntu_18.04` |
|
||||
|
||||
<br />
|
||||
फिर, `$VERSION` को CRI-O संस्करण में सेट करें जो आपके Kubernetes संस्करण से मेल खाता हो।
|
||||
उदाहरण के लिए, यदि आप CRI-O 1.20 इंस्टॉल करना चाहते हैं, तो `VERSION=1.20` सेट करें।
|
||||
आप अपनी स्थापना को किसी विशिष्ट रिलीज़ पर पिन कर सपर पिन कर सकते हैं।
|
||||
संस्करण 1.20.0 स्थापित करने के लिए, `VERSION=1.20:1.20.0` सेट करें।
|
||||
<br />
|
||||
|
||||
कृपया यह करें
|
||||
```shell
|
||||
cat <<EOF | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
|
||||
deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /
|
||||
EOF
|
||||
cat <<EOF | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list
|
||||
deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/ /
|
||||
EOF
|
||||
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/Release.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/libcontainers.gpg add -
|
||||
curl -L https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/Release.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/libcontainers-cri-o.gpg add -
|
||||
sudo apt-get update
|
||||
sudo apt-get install cri-o cri-o-runc
|
||||
```
|
||||
{{% /tab %}}
|
||||
|
||||
{{% tab name="CentOS" %}}
|
||||
|
||||
निम्नलिखित ऑपरेटिंग सिस्टम पर स्थापित करने के लिए, एनवायरनमेंट वे वेरिएबल
|
||||
`OS` सेट करें निम्न तालिका में उपयुक्त फ़ील्ड के लिए:
|
||||
| ऑपरेटिंग सिस्टम | `$OS` |
|
||||
| ---------------- | ----------------- |
|
||||
| Centos 8 | `CentOS_8` |
|
||||
| Centos 8 Stream | `CentOS_8_Stream` |
|
||||
| Centos 7 | `CentOS_7` |
|
||||
|
||||
<br />
|
||||
फिर, `$VERSION` को CRI-O संस्करण में सेट करें जो आपके Kubernetes संस्करण से मेल खाता हो।
|
||||
उदाहरण के लिए, यदि आप CRI-O 1.20 इंस्टॉल करना चाहते हैं, तो `VERSION=1.20` सेट करें।
|
||||
आप अपनी स्थापना को किसी विशिष्ट रिलीज़ पर पिन कर सकते हैं।
|
||||
संस्करण 1.20.0 स्थापित करने के लिए, `VERSION=1.20:1.20.0` सेट करें।
|
||||
<br />
|
||||
|
||||
कृपया यह करें
|
||||
```shell
|
||||
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/devel:kubic:libcontainers:stable.repo
|
||||
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo
|
||||
sudo yum install cri-o
|
||||
```
|
||||
|
||||
{{% /tab %}}
|
||||
|
||||
{{% tab name="openSUSE Tumbleweed" %}}
|
||||
|
||||
```shell
|
||||
sudo zypper install cri-o
|
||||
```
|
||||
{{% /tab %}}
|
||||
{{% tab name="Fedora" %}}
|
||||
|
||||
`$VERSION` को CRI-O संस्करण में सेट करें जो आपके Kubernetes संस्करण से मेल खाता हो।
|
||||
उदाहरण के लिए, यदि आप CRI-O 1.20, `VERSION=1.20` स्थापित करना चाहते हैं।
|
||||
|
||||
आप इसके साथ उपलब्ध संस्करण पा सकते हैं:
|
||||
```shell
|
||||
sudo dnf module list cri-o
|
||||
```
|
||||
CRI-O फेडोरा पर विशिष्ट रिलीज के लिए पिनिंग का समर्थन नहीं करता है।
|
||||
|
||||
तब इसे करें:
|
||||
```shell
|
||||
sudo dnf module enable cri-o:$VERSION
|
||||
sudo dnf install cri-o
|
||||
```
|
||||
|
||||
{{% /tab %}}
|
||||
{{< /tabs >}}
|
||||
|
||||
CRI-O शुरू करें :
|
||||
|
||||
```shell
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable crio --now
|
||||
```
|
||||
|
||||
अधिक जानकारी के लिए [CRI-O इंस्टॉलेशन गाइड](https://github.com/cri-o/cri-o/blob/master/install.md) देखें।
|
||||
|
||||
|
||||
#### cgroup ड्राइवर
|
||||
|
||||
CRI-O डिफ़ॉल्ट रूप से systemd cgroup ड्राइवर का उपयोग करता है।
|
||||
`cgroupfs` cgroup ड्राइवर पर स्विच करने के लिए, या तो `/etc/crio/crio.conf` संपादित करें या `/etc/crio/crio.conf.d/02-cgroup-manager.conf` में ड्रॉप-इन कॉन्फ़िगरेशन रखें। उदाहरण के लिए:
|
||||
|
||||
```toml
|
||||
[crio.runtime]
|
||||
conmon_cgroup = "pod"
|
||||
cgroup_manager = "cgroupfs"
|
||||
```
|
||||
कृपया बदले हुए `conmon_cgroup` पर भी ध्यान दें, जिसे `cgroupfs` के साथ CRI-O का उपयोग करते समय `पॉड` मान पर सेट करना होगा।
|
||||
आमतौर पर क्यूबलेट के cgroup ड्राइवर कॉन्फ़िगरेशन (आमतौर पर kubeadm के माध्यम से किया जाता है) और CRI-O को सिंक में रखना आवश्यक है।
|
||||
|
||||
### डॉकर इंजन {#docker}
|
||||
|
||||
डॉकर इंजन कंटेनर रनटाइम है जिसने यह सब शुरू किया। पूर्व में सिर्फ डॉकर के रूप में जाना जाता था,यह कंटेनर रनटाइम विभिन्न रूपों में उपलब्ध है। [डॉकर इंजन इंस्टॉल करें](https://docs.docker.com/engine/install/) आपके विकल्पों की व्याख्या करता है
|
||||
इस रनटाइम को इंस्टॉल करने के लिए।
|
||||
|
||||
डॉकर इंजन कुबेरनेट्स {{< skew currentVersion >}} के साथ सीधे संगत है, जो कि बहिष्कृत `dockershim` घटक का उपयोग करता है। अधिक जानकारी के लिए
|
||||
और संदर्भ, [Dockershim deprecation FAQ](/dockershim) देखें।
|
||||
|
||||
आप तृतीय-पक्ष एडेप्टर भी पा सकते हैं जो आपको कुबेरनेट्स के साथ डॉकर इंजन का उपयोग करने देता है, समर्थित {{< glossary_tooltip term_id="cri" text="Container Runtime Interface">}} के माध्यम से
|
||||
(CRI)।
|
||||
|
||||
निम्नलिखित CRI एडेप्टर डॉकर इंजन के साथ काम करने के लिए डिज़ाइन किए गए हैं:
|
||||
|
||||
- [`cri-dockerd`](https://github.com/Mirantis/cri-dockerd) Mirantis से
|
||||
|
||||
### मिरांटिस कंटेनर रनटाइम {#mcr}
|
||||
|
||||
[Mirantis Container Runtime](https://docs.mirantis.com/mcr/20.10/overview.html) (MCR) एक व्यावसायिक रूप से है उपलब्ध कंटेनर रनटाइम जिसे पहले डॉकर एंटरप्राइज एडिशन के नाम से जाना जाता था।
|
||||
|
||||
आप खुले स्रोत का उपयोग करके कुबेरनेट्स के साथ मिरांटिस कंटेनर रनटाइम का उपयोग कर सकते हैं [`cri-dockerd`](https://github.com/Mirantis/cri-dockerd) घटक, MCR के साथ शामिल है।
|
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
title: Turnkey Cloud Solutions
|
||||
content_type: concept
|
||||
weight: 30
|
||||
---
|
||||
<!-- overview -->
|
||||
|
||||
यह पृष्ठ कुबेरनेट्स प्रमाणित समाधान प्रदाताओं की एक सूची प्रदान करता है। हर एक प्रदाता पृष्ठ से आप सीख सकते हैं कि उत्पादन योग्य क्लस्टर को इंस्टॉल और सेटअप कैसे करें।
|
||||
|
||||
<!-- body -->
|
||||
|
||||
{{< cncf-landscape helpers=true category="certified-kubernetes-hosted" >}}
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: कुबेरनेट्स में Windows
|
||||
weight: 50
|
||||
---
|
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
title: कार्य
|
||||
main_menu: true
|
||||
weight: 50
|
||||
content_type: concept
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
कुबेरनेट्स प्रलेखन के इस खंड के पृष्ठ एकल कार्य करने का तरीका दिखाते हैं। आमतौर पर, कार्य पृष्ठ दिखाता है कि किसी एक काम को कई छोटे चरणों में विभाजित करके कैसे करना है।
|
||||
|
||||
यदि आप एक कार्य पृष्ठ लिखना चाहते हैं, तो देखें
|
||||
[प्रलेखन के लिए एक पुल अनुरोध (Pull Request) बनाएं](/docs/contribute/new-content/open-a-pr/).
|
|
@ -0,0 +1,64 @@
|
|||
---
|
||||
title: "उपकरण स्थापित करें"
|
||||
description: अपने कंप्यूटर पर कुबेरनेट्स टूल सेटअप करें।
|
||||
weight: 10
|
||||
no_list: true
|
||||
---
|
||||
|
||||
## kubectl
|
||||
|
||||
<!-- overview -->
|
||||
कुबेरनेट्स कमांड-लाइन टूल, [kubectl](/docs/reference/kubectl/kubectl/),
|
||||
आपको कुबेरनेट्स क्लस्टर पर कमांड चलाने की अनुमति देता है।
|
||||
|
||||
आप एप्लिकेशन को डिप्लॉय करने, क्लस्टर संसाधनों का निरीक्षण
|
||||
और प्रबंधन करने और लॉग देखने के लिए kubectl का उपयोग कर सकते हैं।
|
||||
|
||||
kubectl संचालन की पूरी सूची सहित अधिक जानकारी के लिए, देखें
|
||||
[`kubectl` संदर्भ प्रलेखन](/docs/reference/kubectl/).
|
||||
|
||||
kubectl विभिन्न प्रकार के Linux प्लेटफॉर्म, macOS और Windows पर इंस्टॉल करने योग्य है।
|
||||
नीचे अपना उपयुक्त ऑपरेटिंग सिस्टम खोजें।
|
||||
|
||||
- [kubectl Linux पर इंस्टॉल करें](/hi/docs/tasks/tools/install-kubectl-linux)
|
||||
- [kubectl macOS पर इंस्टॉल करें](/hi/docs/tasks/tools/install-kubectl-macos)
|
||||
- [kubectl Windows पर इंस्टॉल करें](/hi/docs/tasks/tools/install-kubectl-windows)
|
||||
|
||||
## kind
|
||||
|
||||
[`kind`](https://kind.sigs.k8s.io/docs/) आपको अपने कंप्यूटर पर कुबेरनेट्स चलाने देता है।
|
||||
इस उपकरण के लिए आवश्यक है कि आपके पास
|
||||
[Docker](https://docs.docker.com/get-docker/) इंस्टॉल और कॉन्फ़िगर किया गया हो।
|
||||
|
||||
kind [क्विक स्टार्ट](https://kind.sigs.k8s.io/docs/user/quick-start/)
|
||||
पृष्ठ आपको दिखाता है कि kind चलाने के लिए आपको क्या करने की आवश्यकता है।
|
||||
|
||||
<a class="btn btn-primary" href="https://kind.sigs.k8s.io/docs/user/quick-start/" role="button" aria-label="kind क्विक स्टार्ट गाइड देखें">kind क्विक स्टार्ट गाइड देखें</a>
|
||||
|
||||
## minikube
|
||||
|
||||
`kind` की तरह, [`minikube`](https://minikube.sigs.k8s.io/) एक उपकरण
|
||||
है जो आपको स्थानीय स्तर पर कुबेरनेट्स चलाने देता है। minikube आपके कंप्यूटर
|
||||
(windows, macOS और linux पीसी सहित) पर सिंगल-नोड कुबेरनेट्स क्लस्टर चलाता
|
||||
है ताकि आप कुबेरनेट्स सीख सकें या डेवलपमेंट कर सकें।
|
||||
|
||||
यदि आपका ध्यान उपकरण को इंस्टॉल करने पर है तो आप मुख्य
|
||||
[आरंभ करें!](https://minikube.sigs.k8s.io/docs/start/)
|
||||
गाइड का अनुसरण कर सकते हैं।
|
||||
|
||||
<a class="btn btn-primary" href="https://minikube.sigs.k8s.io/docs/start/" role="button" aria-label="minikube क्विक स्टार्ट गाइड देखें">minikube क्विक स्टार्ट गाइड देखें</a>
|
||||
|
||||
एक बार जब आपके पास minikube काम कर रहा हो,
|
||||
तो आप इसका उपयोग [नमूना एप्लिकेशन](/docs/tutorials/hello-minikube/)
|
||||
चलाने के लिए कर सकते हैं।
|
||||
|
||||
|
||||
## kubeadm
|
||||
|
||||
कुबेरनेट्स क्लस्टर बनाने और प्रबंधित करने के लिए आप {{< glossary_tooltip term_id="kubeadm" text="kubeadm" >}} टूल का उपयोग कर सकते हैं।
|
||||
यह उपयोगकर्ता के अनुकूल तरीके से न्यूनतम व्यवहार्य, सुरक्षित क्लस्टर बनाने और चलाने के लिए आवश्यक कार्य करता है।
|
||||
|
||||
[kubeadm इंस्टॉल](/docs/setup/production-environment/tools/kubeadm/install-kubeadm/) करना आपको दिखाता है कि kubeadm को कैसे इंस्टॉल किया जाए।
|
||||
एक बार इंस्टॉल होने के बाद, आप इसका उपयोग [क्लस्टर बनाने](/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/) के लिए कर सकते हैं।
|
||||
|
||||
<a class="btn btn-primary" href="/docs/setup/production-environment/tools/kubeadm/install-kubeadm/" role="button" aria-label="kubeadm इंस्टॉल गाइड देखें">kubeadm इंस्टॉल गाइड देखें</a>
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: "शामिल उपकरण"
|
||||
description: "स्निपेट्स को मुख्य kubectl-installs-*.md पृष्ठों में शामिल करना है "
|
||||
headless: true
|
||||
toc_hide: true
|
||||
---
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
title: "kubectl-convert अवलोकन"
|
||||
description: >-
|
||||
एक kubectl प्लगइन जो आपके मैनिफेस्ट को कुबेरनेट्स API के
|
||||
एक से दूसरे संस्करण में बदलने की अनुमति देता है।
|
||||
headless: true
|
||||
---
|
||||
|
||||
कुबेरनेट्स कमांड-लाइन टूल `kubectl` के लिए एक प्लगइन, जो आपको विभिन्न API संस्करण के बीच मैनिफ़ेस्ट को बदलने करने की अनुमति देता है।
|
||||
यह विशेष रूप से नए कुबेरनेट्स रिलीज के साथ एक गैर-बहिष्कृत API संस्करण में मैनिफेस्ट को माइग्रेट करने में सहायक हो सकता है।
|
||||
अधिक जानकारी के लिए, [गैर पदावनत एपिस में विस्थापित करें](/docs/reference/using-api/deprecation-guide/#migrate-to-non-deprecated-apis) पर जाएं।
|
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
title: "आगे क्या है?"
|
||||
description: "kubectl इंस्टॉल करने के बाद आगे क्या है।"
|
||||
headless: true
|
||||
---
|
||||
|
||||
* [मिनीक्यूब (Minikube) इंस्टॉल करें](https://minikube.sigs.k8s.io/docs/start/)
|
||||
* क्लस्टर बनाने के बारे में अधिक जानकारी के लिए [आरंभ करने की मार्गदर्शिका](/docs/setup/) देखें।
|
||||
* [अपने एप्लिकेशन को लॉन्च और एक्सपोज़ करने का तरीका जानें।](/docs/tasks/access-application-cluster/service-access-application-cluster/)
|
||||
* यदि आपको किसी ऐसे क्लस्टर को उपयोग करने की आवश्यकता है जिसे आपने नहीं बनाया है, तो
|
||||
[क्लस्टर एक्सेस दस्तावेज़ साझा करना](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/) देखें।
|
||||
* [kubectl संदर्भ प्रलेखन](/docs/reference/kubectl/kubectl/) पढ़ें।
|
|
@ -0,0 +1,52 @@
|
|||
---
|
||||
title: "Linux पर bash ऑटो-कम्पलीशन"
|
||||
description: "Linux पर bash ऑटो-कम्पलीशन के लिए कुछ वैकल्पिक कॉन्फ़िगरेशन।"
|
||||
headless: true
|
||||
---
|
||||
|
||||
## परिचय
|
||||
|
||||
Bash के लिए kubectl समापन स्क्रिप्ट `kubectl completion bash` कमांड के साथ उत्पन्न की जा सकती है। आपके शेल में समापन स्क्रिप्ट को सोर्स करने से kubectl ऑटोकम्पलीशन सक्षम हो जाती है।
|
||||
|
||||
हालाँकि, समापन की स्क्रिप्ट [**bash-completion**](https://github.com/scop/bash-completion) पर निर्भर हैं जिसका अर्थ है कि आपको पहले इस सॉफ़्टवेयर को इंस्टॉल करना होगा (आप `type _init_completion` चलाकर परीक्षण कर सकते हैं कि आपने पहले से bash-completion इंस्टॉल की है या नहीं)।
|
||||
|
||||
## Bash-completion को इंस्टॉल करें
|
||||
|
||||
कई पैकेज मैनेजर द्वारा bash-completion प्रदान की जाती है ([यहाँ](https://github.com/scop/bash-completion#installation) देखें)। आप इसे `apt-get install bash-completion` या `yum install bash-completion` आदि के साथ इंस्टॉल कर सकते हैं।
|
||||
|
||||
यह कमांड `/usr/share/bash-completion/bash_completion` उत्त्पन्न करता है, जो bash-completion की मुख्य स्क्रिप्ट है। आपके पैकेज मैनेजर के आधार पर, आपको इस फाइल को अपनी `~/.bashrc` फाइल में मैन्युअल रूप से सोर्स करना होगा।
|
||||
|
||||
यह पता लगाने के लिए, अपना शेल पुनः लोड करें और `type _init_completion` रन करे। यदि कमांड सफल होता है, तो आप पहले से ही तैयार हैं, अन्यथा अपनी `~/.bashrc` फ़ाइल में निम्नलिखित जोड़ें:
|
||||
|
||||
```bash
|
||||
source /usr/share/bash-completion/bash_completion
|
||||
```
|
||||
|
||||
अपना शेल पुनः लोड करें और `type _init_completion` टाइप करके सत्यापित करें कि बैश-कम्पलीशन सही ढंग से इंस्टॉल है।
|
||||
|
||||
## kubectl ऑटोकम्पलीशन सक्षम करे
|
||||
|
||||
अब आपको यह सुनिश्चित करने की आवश्यकता है कि kubectl समापन स्क्रिप्ट आपके सभी शेल सत्रों (sourced) में प्राप्त हो जाए। आप ऐसा दो तरीकों से कर सकते हैं:
|
||||
|
||||
- अपनी `~/.bashrc` फ़ाइल में समापन स्क्रिप्ट सॉर्स करें:
|
||||
|
||||
```bash
|
||||
echo 'source <(kubectl completion bash)' >>~/.bashr
|
||||
```
|
||||
- समापन स्क्रिप्ट को `/etc/bash_completion.d` डायरेक्टरी में जोड़ें:
|
||||
```bash
|
||||
kubectl completion bash >/etc/bash_completion.d/kubectl
|
||||
```
|
||||
|
||||
|
||||
यदि आप के पास kubectl के लिए एक अन्य नाम (alias) है, तो आप उस अन्य नाम के साथ काम करने के लिए शेल समापन को बढ़ा सकते हैं:
|
||||
|
||||
```bash
|
||||
echo 'alias k=kubectl' >>~/.bashrc
|
||||
echo 'complete -F __start_kubectl k' >>~/.bashrc
|
||||
```
|
||||
{{< note >}}
|
||||
bash-completion सभी समापन स्क्रिप्ट को `/etc/bash_completion.d` में सोर्स करता है।
|
||||
{{< /note >}}
|
||||
|
||||
दोनों दृष्टिकोण बराबर हैं। आपके शेल को पुनः लोड करने के बाद, Kubectl ऑटोकम्पलीशन कार्य करना शुरू कर देगा।
|
|
@ -0,0 +1,89 @@
|
|||
---
|
||||
title: "macOS पर bash ऑटो-कम्पलीशन"
|
||||
description: "macOS पर bash ऑटो-कम्पलीशन के लिए कुछ वैकल्पिक कॉन्फ़िगरेशन।"
|
||||
headless: true
|
||||
---
|
||||
|
||||
### परिचय
|
||||
|
||||
Bash के लिए kubectl समापन स्क्रिप्ट `kubectl completion bash` कमांड के साथ उत्पन्न की जा सकती है। आपके शेल में समापन स्क्रिप्ट को सोर्स करने से kubectl ऑटोकम्पलीशन सक्षम हो जाती है।```
|
||||
|
||||
हालाँकि, समापन की स्क्रिप्ट [**bash-completion**](https://github.com/scop/bash-completion) पर निर्भर हैं जिसका अर्थ है कि आपको पहले इस सॉफ़्टवेयर को इंस्टॉल करना होगा।
|
||||
|
||||
{{< warning >}}
|
||||
Bash-completion के लिये दो संस्करण हैं v1 और v2। v1 bash 3.2 के लिये हैं (जो macOS के लिए डिफ़ॉल्ट है), और v2 bash 4.1+ के लिए है।kubectl कम्पलीशन स्क्रिप्ट Bash-completion v1 और Bash 3.2 के साथ ठीक से **काम नहीं करती है**। इसके लिए **Bash-completion v2** और बैश 4.1+ की आवश्यकता है। इसलिए macOS पर kubectl कम्पलीशन को सही तरीके से इस्तेमाल करने के लिए , आपको bash 4.1+ इनस्टॉल और उपयोग करना होगा ([*निर्देश*](https://itnext.io/upgrading-bash-on-macos-7138bd1066ba))। निम्नलिखित निर्देश मानते हैं कि आप बैश का उपयोग करते हैं (अर्थात 4.1 का कोई भी बैश संस्करण या इससे नया)।
|
||||
{{< /warning >}}
|
||||
|
||||
### अपग्रेड बैश
|
||||
|
||||
निम्नलिखित निर्देश मानते हैं कि आप बैश 4.1+ का उपयोग करते हैं। आप अपने बैश के संस्करण को यह चलाकर देख सकते हैं:
|
||||
|
||||
```bash
|
||||
echo $BASH_VERSION
|
||||
```
|
||||
|
||||
यदि यह बहुत पुराना है, तो आप Homebrew का उपयोग करके इसे इनस्टॉल/अपग्रेड कर सकते हैं:
|
||||
|
||||
```bash
|
||||
brew install bash
|
||||
```
|
||||
|
||||
अपने शेल को पुनः लोड करें और सत्यापित करें कि इच्छित संस्करण का उपयोग किया जा रहा है:
|
||||
|
||||
```bash
|
||||
echo $BASH_VERSION $SHELL
|
||||
```
|
||||
|
||||
Homebrew आमतौर पर इसे `/usr/local/bin/bash` पर इनस्टॉल करता है।
|
||||
|
||||
### इनस्टॉल bash-completion
|
||||
|
||||
{{< note >}}
|
||||
जैसा कि उल्लेख किया गया है, ये निर्देश मानते हैं कि आप Bash 4.1+ का उपयोग करते हैं, जिसका अर्थ है कि आप bash-completion v2 इनस्टॉल करेंगे (Bash 3.2 और bash-completion v1 पर kubectl पूर्णता काम नहीं करेगी)।
|
||||
{{< /note >}}
|
||||
|
||||
आप `type_init_completion` से सत्यापित कर सकते हैं कि क्या आपके पास bash-completion v2 पहले से इनस्टॉल है। यदि नहीं, तो आप इसे Homebrew से इनस्टॉल कर सकते हैं
|
||||
|
||||
```bash
|
||||
brew install bash-completion@2
|
||||
```
|
||||
|
||||
जैसा कि इस कमांड के आउटपुट में बताया गया है, अपनी `~/.bash_profile` फ़ाइल में निम्नलिखित जोड़ें:
|
||||
|
||||
```bash
|
||||
export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d"
|
||||
|
||||
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
|
||||
```
|
||||
|
||||
अपने शेल को पुनः लोड करें और `type_init_completion` से सत्यापित करें कि bash-completion v2 सही ढंग से इनस्टॉल है।
|
||||
|
||||
### kubectl ऑटोकम्पलीशन सक्षम करें
|
||||
|
||||
अब आपको यह सुनिश्चित करने की आवश्यकता है कि kubectl समापन स्क्रिप्ट आपके सभी शेल सत्रों (sourced) में प्राप्त हो जाए। इसे हासिल करने के कई तरीके हैं:
|
||||
|
||||
- अपने कम्पलीशन स्क्रिप्ट को `~/.bash_profile` में सोर्स करें:
|
||||
|
||||
```bash
|
||||
echo 'source <(kubectl completion bash)' >>~/.bash_profile
|
||||
```
|
||||
|
||||
- कम्पलीशन स्क्रिप्ट को `/usr/local/etc/bash_completion.d` डायरेक्टरी में जोड़ें:
|
||||
|
||||
```bash
|
||||
kubectl completion bash >/usr/local/etc/bash_completion.d/kubectl
|
||||
```
|
||||
|
||||
- यदि आपके पास kubectl के लिए एक नाम (alias) है, तो आप उस उपनाम के साथ काम करने के लिए शेल कम्पलीशन को बढ़ा सकते हैं:
|
||||
|
||||
```bash
|
||||
echo 'alias k=kubectl' >>~/.bash_profile
|
||||
echo 'complete -F __start_kubectl k' >>~/.bash_profile
|
||||
```
|
||||
|
||||
- यदि आपने Homebrew के साथ kubectl इनस्टॉल किया है (जैसा कि यहां बताया गया है), तो kubectl कम्पलीशन स्क्रिप्ट पहले से ही `/usr/local/etc/bash_completion.d/kubectl` में होनी चाहिए। ऐसे में आपको कुछ भी करने की जरूरत नहीं है।
|
||||
|
||||
{{< note >}}
|
||||
bash-completion Homebrew से इनस्टॉल होने पर, सारे फाइल्स को `BASH_COMPLETION_COMPAT_DIR` डायरेक्टरी में सोर्स कर देता है। इसलिए आखरी दो तरीके काम करते हैं।
|
||||
{{< /note >}}
|
||||
किसी भी स्थिति में, आपके शेल को पुनः लोड करने के बाद, Kubectl पूर्णता कार्य करना चाहिए।
|
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
title: "zsh ऑटो-कम्पलीशन"
|
||||
description: "zsh ऑटो-कम्पलीशन के लिए कुछ वैकल्पिक कॉन्फ़िगरेशन।"
|
||||
headless: true
|
||||
---
|
||||
|
||||
Zsh के लिए kubectl कम्पलीशन स्क्रिप्ट `kubectl completion zsh` कमांड के साथ उत्पन्न की जा सकती है। आपके शेल में कम्पलीशन स्क्रिप्ट को सोर्स करने से kubectl ऑटो-कम्पलीशन सक्षम हो जाती है।
|
||||
|
||||
अपने सभी शेल सत्रों में ऐसा करने के लिए, निम्नलिखित को अपनी `~/.zshrc` फ़ाइल में जोड़ें:
|
||||
|
||||
```zsh
|
||||
source <(kubectl completion zsh)
|
||||
```
|
||||
|
||||
यदि आपके पास kubectl के लिए एक उपनाम है, तो आप उस उपनाम के साथ काम करने के लिए शेल कम्पलीशन को बढ़ा सकते हैं:
|
||||
|
||||
```zsh
|
||||
echo 'alias k=kubectl' >>~/.zshrc
|
||||
echo 'complete -F __start_kubectl k' >>~/.zshrc
|
||||
```
|
||||
|
||||
अपने शेल को पुनः लोड करने के बाद, kubectl ऑटो-कम्पलीशन कार्य करना चाहिए।
|
||||
|
||||
यदि आपको कोई त्रुटि मिलती है जैसे `complete:13: command not found: compdef`, तो अपनी `~/.zshrc` फ़ाइल की शुरुआत में निम्नलिखित जोड़ें:
|
||||
|
||||
```zsh
|
||||
autoload -Uz compinit
|
||||
compinit
|
||||
```
|
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
title: "kubectl इंस्टॉल सत्यापित करें"
|
||||
description: "kubectl कैसे सत्यापित करें।"
|
||||
headless: true
|
||||
---
|
||||
|
||||
kubectl को कुबेरनेट्स क्लस्टर को खोजने और एक्सेस करने के लिए, उसे
|
||||
[क्यूबकॉन्फिग फाइल](/docs/concepts/configuration/organize-cluster-access-kubeconfig/)(kubeconfig) की आवश्यकता होती है,
|
||||
जो स्वचालित रूप से तब बनता है जब आप
|
||||
[kube-up.sh](https://github.com/kubernetes/kubernetes/blob/master/cluster/kube-up.sh) का उपयोग करके क्लस्टर बनाते हैं
|
||||
या मिनीक्यूब क्लस्टर को सफलतापूर्वक डिप्लॉय करते हैं।
|
||||
डिफ़ॉल्ट रूप से, kubectl कॉन्फ़िगरेशन `~/.kube/config` पर स्थित होता है।
|
||||
|
||||
जाँच करें कि क्लस्टर स्टेट प्राप्त करके kubectl को ठीक से कॉन्फ़िगर किया गया है:
|
||||
|
||||
```shell
|
||||
kubectl cluster-info
|
||||
```
|
||||
|
||||
यदि आपको एक URL प्रतिक्रिया दिखती हैं, तो kubectl आपके क्लस्टर तक पहुँचने के लिए सही ढंग से कॉन्फ़िगर हुआ है।
|
||||
|
||||
यदि आपको निम्नलिखित संदेश दिखाई देता है, तो kubectl ठीक से कॉन्फ़िगर नहीं हुआ है या कुबेरनेट्स क्लस्टर से कनेक्ट करने में सक्षम नहीं है।
|
||||
|
||||
```
|
||||
The connection to the server <server-name:port> was refused - did you specify the right host or port?
|
||||
```
|
||||
|
||||
उदाहरण के लिए, यदि आप अपने लैपटॉप (स्थानीय रूप से) पर कुबेरनेट्स क्लस्टर चलाना चाहते हैं, तो आपको पहले मिनीक्यूब (minikube) जैसे टूल को इंस्टॉल करना होगा और ऊपर बताए गए कमांड को फिर से चलाना होगा।
|
||||
|
||||
यदि kubectl cluster-info URL प्रतिक्रिया देता है, लेकिन आप अपने क्लस्टर को एक्सेस नहीं कर पा रहें हैं, तो यह जाँचने के लिए कि क्या यह ठीक से कॉन्फ़िगर किया गया है, इस कमांड का उपयोग करें:
|
||||
|
||||
```shell
|
||||
kubectl cluster-info dump
|
||||
```
|
|
@ -0,0 +1,244 @@
|
|||
---
|
||||
title: Linux पर kubectl इंस्टॉल और सेट अप करें
|
||||
content_type: task
|
||||
weight: 10
|
||||
card:
|
||||
name: tasks
|
||||
weight: 20
|
||||
title: Linux पर kubectl इंस्टॉल करें
|
||||
---
|
||||
|
||||
## {{% heading "prerequisites" %}}
|
||||
|
||||
आप kubectl संस्करण का उपयोग करे जो आपके क्लस्टर के एक माइनर संस्करण के भीतर हो। उदाहरण के लिए, v{{< skew latestVersion >}} क्लाइंट v{{< skew prevMinorVersion >}}, v{{< skew latestVersion >}} और v{{< skew nextMinorVersion >}} कण्ट्रोल प्लेन के साथ संवाद कर सकते हैं।
|
||||
kubectl के नवीनतम संस्करण का उपयोग करने से अप्रत्याशित मुद्दों से बचने में मदद मिलती है।
|
||||
|
||||
## Linux पर kubectl इंस्टॉल करें
|
||||
|
||||
Linux पर kubectl संस्थापित करने के लिए निम्नलिखित विधियाँ मौजूद हैं:
|
||||
|
||||
- [Linux पर curl के माध्यम से kubectl बाइनरी इंस्टॉल करें](#install-kubectl-binary-with-curl-on-linux)
|
||||
- [नेटिव पैकेज मैनेजमेंट के माध्यम से इंस्टॉल करें](#install-using-native-package-management)
|
||||
- [अन्य पैकेज मैनेजमेंट के माध्यम से इंस्टॉल करें](#install-using-other-package-management)
|
||||
|
||||
### Linux पर curl के माध्यम से kubectl बाइनरी इंस्टॉल करें {#install-kubectl-binary-with-curl-on-linux}
|
||||
|
||||
1. कमांड से नवीनतम रिलीज डाउनलोड करें:
|
||||
|
||||
```bash
|
||||
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
एक विशिष्ट संस्करण डाउनलोड करने के लिए, कमांड के `$(curl -L -s https://dl.k8s.io/release/stable.txt)` हिस्से को विशिष्ट संस्करण से बदलें।
|
||||
|
||||
उदाहरण के लिए, लिनक्स पर {{< param "fullversion" >}} संस्करण डाउनलोड करने के लिए, टाइप करें:
|
||||
|
||||
```bash
|
||||
curl -LO https://dl.k8s.io/release/{{< param "fullversion" >}}/bin/linux/amd64/kubectl
|
||||
```
|
||||
{{< /note >}}
|
||||
|
||||
1. बाइनरी को मान्य करें (वैकल्पिक)
|
||||
|
||||
kubectl चेकसम फाइल डाउनलोड करें:
|
||||
|
||||
```bash
|
||||
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
|
||||
```
|
||||
|
||||
चेकसम फ़ाइल से kubectl बाइनरी को मान्य करें:
|
||||
|
||||
```bash
|
||||
echo "$(<kubectl.sha256) kubectl" | sha256sum --check
|
||||
```
|
||||
|
||||
यदि मान्य है, तो आउटपुट है:
|
||||
|
||||
```console
|
||||
kubectl: OK
|
||||
```
|
||||
|
||||
अगर चेक फेल हो जाता है, तो `sha256` nonzero स्थिति के साथ बाहर निकलता है और इस आउटपुट के समान प्रिंट करता है:
|
||||
|
||||
```bash
|
||||
kubectl: FAILED
|
||||
sha256sum: WARNING: 1 computed checksum did NOT match
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
बाइनरी और चेकसम का एक ही संस्करण डाउनलोड करें।
|
||||
{{< /note >}}
|
||||
|
||||
1. kubectl इंस्टॉल करें
|
||||
|
||||
```bash
|
||||
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
यदि आपके पास टारगेट सिस्टम पर रुट एक्सेस नहीं है, आप तब भी kubectl को `~/.local/bin` डायरेक्टरी में इंस्टॉल कर सकते हैं:
|
||||
|
||||
```bash
|
||||
chmod +x kubectl
|
||||
mkdir -p ~/.local/bin/kubectl
|
||||
mv ./kubectl ~/.local/bin/kubectl
|
||||
# and then add ~/.local/bin/kubectl to $PATH
|
||||
```
|
||||
|
||||
{{< /note >}}
|
||||
|
||||
1. यह सुनिश्चित करने के लिए परीक्षण करें कि आपके द्वारा इंस्टॉल किया गया संस्करण उप-टू-डेट है:
|
||||
|
||||
```bash
|
||||
kubectl version --client
|
||||
```
|
||||
|
||||
### नेटिव पैकेज मैनेजमेंट के माध्यम से इंस्टॉल करें {#install-using-native-package-management}
|
||||
|
||||
{{< tabs name="kubectl_install" >}}
|
||||
{{% tab name="Debian-based distributions" %}}
|
||||
|
||||
1. `apt` पैकेज इंडेक्स को अपडेट करे और कुबेरनेट्स `apt` रिपॉजिटरी का उपयोग करने के लिए आवश्यक पैकेज इंस्टॉल करें:
|
||||
|
||||
```shell
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y apt-transport-https ca-certificates curl
|
||||
```
|
||||
|
||||
2. गूगल क्लाउड पब्लिक साइनिंग कुंजी (key) डाउनलोड करें:
|
||||
|
||||
```shell
|
||||
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
|
||||
```
|
||||
|
||||
3. कुबेरनेट्स `apt` रिपॉजिटरी को जोड़े:
|
||||
|
||||
```shell
|
||||
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
|
||||
```
|
||||
|
||||
4. नए रिपॉजिटरी के साथ `apt` पैकेज इंडेक्स अपडेट करें और kubectl इंस्टॉल करें:
|
||||
|
||||
```shell
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y kubectl
|
||||
```
|
||||
|
||||
{{% /tab %}}
|
||||
|
||||
{{< tab name="Red Hat-based distributions" codelang="bash" >}}
|
||||
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
|
||||
[kubernetes]
|
||||
name=Kubernetes
|
||||
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
repo_gpgcheck=1
|
||||
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
|
||||
EOF
|
||||
yum install -y kubectl
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
### अन्य पैकेज मैनेजमेंट के माध्यम से इंस्टॉल करें {#install-using-other-package-management}
|
||||
|
||||
|
||||
{{< tabs name="other_kubectl_install" >}}
|
||||
{{% tab name="Snap" %}}
|
||||
यदि आप Ubuntu या किसी अन्य Linux डिस्ट्रीब्यूशन पर हैं जो [snap](https://snapcraft.io/docs/core/install) पैकेज मैनेजर को सपोर्ट करता है, तो kubectl [snap](https://snapcraft.io/) एप्लिकेशन के रूप में उपलब्ध है।
|
||||
|
||||
```shell
|
||||
snap install kubectl --classic
|
||||
kubectl version --client
|
||||
```
|
||||
|
||||
{{% /tab %}}
|
||||
|
||||
{{% tab name="Homebrew" %}}
|
||||
यदि आप Linux पर [Homebrew](https://docs.brew.sh/Homebrew-on-Linux) पैकेज मैनेजर का उपयोग कर रहे हैं, तो kubectl [इंस्टालेशन](https://docs.brew.sh/Homebrew-on-Linux#install) के लिए उपलब्ध है।
|
||||
|
||||
```shell
|
||||
brew install kubectl
|
||||
kubectl version --client
|
||||
```
|
||||
|
||||
{{% /tab %}}
|
||||
|
||||
{{< /tabs >}}
|
||||
|
||||
## kubectl कॉन्फ़िगरेशन सत्यापित करें
|
||||
|
||||
{{< include "included/verify-kubectl.md" >}}
|
||||
|
||||
## वैकल्पिक kubectl कॉन्फ़िगरेशन और प्लगइन्स
|
||||
|
||||
### शेल ऑटोकम्प्लेशन सक्षम करें
|
||||
|
||||
kubectl Bash और Zsh के लिए ऑटोकम्प्लेशन का सपोर्ट प्रदान करता है, जो आपका काफी समय बचा सकता है।
|
||||
|
||||
नीचे Bash और Zsh के लिए ऑटोकम्प्लेशन स्थापित करने की प्रक्रियाएँ हैं।
|
||||
|
||||
{{< tabs name="kubectl_autocompletion" >}}
|
||||
{{< tab name="Bash" include="included/optional-kubectl-configs-bash-linux.md" />}}
|
||||
{{< tab name="Zsh" include="included/optional-kubectl-configs-zsh.md" />}}
|
||||
{{< /tabs >}}
|
||||
|
||||
### `kubectl convert` प्लगइन इंस्टॉल करें
|
||||
|
||||
{{< include "included/kubectl-convert-overview.md" >}}
|
||||
|
||||
1. कमांड से नवीनतम रिलीज डाउनलोड करें:
|
||||
|
||||
```bash
|
||||
curl -LO https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert
|
||||
```
|
||||
|
||||
1. बाइनरी को मान्य करें (वैकल्पिक)
|
||||
|
||||
kubectl-convert चेकसम फ़ाइल डाउनलोड करें:
|
||||
|
||||
```bash
|
||||
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert.sha256"
|
||||
```
|
||||
|
||||
चेकसम फ़ाइल से kubectl-convert बाइनरी को मान्य करें:
|
||||
|
||||
```bash
|
||||
echo "$(<kubectl-convert.sha256) kubectl-convert" | sha256sum --check
|
||||
```
|
||||
|
||||
यदि मान्य है, तो आउटपुट है:
|
||||
|
||||
```console
|
||||
kubectl-convert: OK
|
||||
```
|
||||
|
||||
अगर चेक फेल हो जाता है, तो `sha256` nonzero स्थिति के साथ बाहर निकलता है और इस आउटपुट के समान प्रिंट करता है:
|
||||
|
||||
```bash
|
||||
kubectl-convert: FAILED
|
||||
sha256sum: WARNING: 1 computed checksum did NOT match
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
बाइनरी और चेकसम का एक ही संस्करण डाउनलोड करें।
|
||||
{{< /note >}}
|
||||
|
||||
1. kubectl-convert इंस्टॉल करें
|
||||
|
||||
```bash
|
||||
sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert
|
||||
```
|
||||
|
||||
1. सत्यापित करें कि प्लगइन सफलतापूर्वक इंस्टॉल है
|
||||
|
||||
```shell
|
||||
kubectl convert --help
|
||||
```
|
||||
|
||||
यदि आपको कोई त्रुटि नहीं दिखाई देती है, तो इसका मतलब है कि प्लगइन सफलतापूर्वक इंस्टॉल हो गया है।
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
{{< include "included/kubectl-whats-next.md" >}}
|
|
@ -0,0 +1,247 @@
|
|||
---
|
||||
title: macOS पर kubectl इंस्टॉल और सेटअप करें
|
||||
content_type: task
|
||||
weight: 10
|
||||
card:
|
||||
name: tasks
|
||||
weight: 20
|
||||
title: macOS पर kubectl इंस्टॉल करें
|
||||
---
|
||||
|
||||
## {{% heading "prerequisites" %}}
|
||||
|
||||
आप kubectl संस्करण का उपयोग करे जो आपके क्लस्टर के एक माइनर संस्करण भीतर हो। उदाहरण के लिए, v{{< skew latestVersion >}} क्लाइंट v{{< skew prevMinorVersion >}}, v{{< skew latestVersion >}} और v{{< skew nextMinorVersion >}} कण्ट्रोल प्लेन के साथ कम्युनिकेट कर सकते हैं।
|
||||
kubectl के नए संस्करण का उपयोग करने से समस्या से बचत हो सकती है।
|
||||
|
||||
## macOS पर kubectl इंस्टॉल करें
|
||||
|
||||
macOS पर kubectl संस्थापित करने के लिए निम्नलिखित विधियाँ मौजूद हैं:
|
||||
|
||||
- [macOS पर curl के माध्यम से kubectl बाइनरी इंस्टॉल करें](#macOS-पर-curl-के-माध्यम-से-kubectl-बाइनरी-इंस्टॉल-करें)
|
||||
- [Homebrew के माध्यम से macOS पर इंस्टॉल करें](#Homebrew-के-माध्यम-से-macOS-पर-इंस्टॉल-करें)
|
||||
- [Macports के माध्यम से macOS पर इंस्टॉल करें](#Macports-के-माध्यम-से-macOS-पर-इंस्टॉल-करें)
|
||||
|
||||
### macOS पर curl के माध्यम से kubectl बाइनरी इंस्टॉल करें
|
||||
|
||||
1. नवीनतम रिलीज़ डाउनलोड करें:
|
||||
|
||||
{{< tabs name="download_binary_macos" >}}
|
||||
{{< tab name="Intel" codelang="bash" >}}
|
||||
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
|
||||
{{< /tab >}}
|
||||
{{< tab name="Apple Silicon" codelang="bash" >}}
|
||||
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
{{< note >}}
|
||||
एक विशिष्ट संस्करण डाउनलोड करने के लिए, कमांड के इस हिस्से `$(curl -L -s https://dl.k8s.io/release/stable.txt)` को विशिष्ट संस्करण से बदलें।
|
||||
|
||||
उदाहरण के लिए, Intel macOS पर {{< param "fullversion" >}} संस्करण डाउनलोड करने के लिए, टाइप करें:
|
||||
|
||||
```bash
|
||||
curl -LO "https://dl.k8s.io/release/{{< param "fullversion" >}}/bin/darwin/amd64/kubectl"
|
||||
```
|
||||
|
||||
और Apple Silicon macOS के लिए, टाइप करें:
|
||||
|
||||
```bash
|
||||
curl -LO "https://dl.k8s.io/release/{{< param "fullversion" >}}/bin/darwin/arm64/kubectl"
|
||||
```
|
||||
|
||||
{{< /note >}}
|
||||
|
||||
1. बाइनरी को मान्य करें (वैकल्पिक))
|
||||
|
||||
kubectl चेकसम फाइल डाउनलोड करें:
|
||||
|
||||
{{< tabs name="download_checksum_macos" >}}
|
||||
{{< tab name="Intel" codelang="bash" >}}
|
||||
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl.sha256"
|
||||
{{< /tab >}}
|
||||
{{< tab name="Apple Silicon" codelang="bash" >}}
|
||||
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl.sha256"
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
चेकसम फ़ाइल से kubectl बाइनरी को मान्य करें:
|
||||
|
||||
```bash
|
||||
echo "$(<kubectl.sha256) kubectl" | shasum -a 256 --check
|
||||
```
|
||||
|
||||
यदि मान्य है, तो आउटपुट है:
|
||||
|
||||
```console
|
||||
kubectl: OK
|
||||
```
|
||||
|
||||
अगर चेक फेल हो जाता है, तो `shasum` nonzero स्थिति के साथ बाहर निकलता है और इस आउटपुट के समान प्रिंट करता है:
|
||||
|
||||
```bash
|
||||
kubectl: FAILED
|
||||
shasum: WARNING: 1 computed checksum did NOT match
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
बाइनरी और चेकसम का एक ही संस्करण डाउनलोड करें।
|
||||
{{< /note >}}
|
||||
|
||||
1. kubectl बाइनरी को एक्सेक्यूट करने योग्य बनायें।
|
||||
|
||||
```bash
|
||||
chmod +x ./kubectl
|
||||
```
|
||||
|
||||
1. kubectl बाइनरी को अपने सिस्टम `PATH` के फ़ाइल स्थान पर ले जाएँ।
|
||||
|
||||
```bash
|
||||
sudo mv ./kubectl /usr/local/bin/kubectl
|
||||
sudo chown root: /usr/local/bin/kubectl
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
सुनिश्चित करें कि `/usr/local/bin` आपके पाथ एनवायरनमेंट वेरिएबल में है।
|
||||
{{< /note >}}
|
||||
|
||||
1. यह सुनिश्चित करने के लिए परीक्षण करें कि आपके द्वारा इंस्टॉल किया गया संस्करण उप-टू-डेट है:
|
||||
|
||||
```bash
|
||||
kubectl version --client
|
||||
```
|
||||
|
||||
### Homebrew के माध्यम से macOS पर इंस्टॉल करें
|
||||
|
||||
यदि आप macOS पर हैं और [Homebrew](https://brew.sh/) पैकेज मैनेजर का उपयोग कर रहे हैं, आप Homebrew के साथ kubectl इंस्टॉल कर सकते हैं।
|
||||
|
||||
1. इंस्टालेशन कमांड रन करें:
|
||||
|
||||
```bash
|
||||
brew install kubectl
|
||||
```
|
||||
|
||||
या
|
||||
|
||||
```bash
|
||||
brew install kubernetes-cli
|
||||
```
|
||||
|
||||
1. यह सुनिश्चित करने के लिए परीक्षण करें कि आपके द्वारा इंस्टॉल किया गया संस्करण उप-टू-डेट है:
|
||||
|
||||
```bash
|
||||
kubectl version --client
|
||||
```
|
||||
|
||||
### Macports के माध्यम से macOS पर इंस्टॉल करें
|
||||
|
||||
यदि आप macOS पर हैं और [Macports](https://macports.org/) पैकेज मैनेजर का उपयोग कर रहे हैं, आप Macports के साथ kubectl इंस्टॉल कर सकते हैं।
|
||||
|
||||
1. इंस्टालेशन कमांड रन करें:
|
||||
|
||||
```bash
|
||||
sudo port selfupdate
|
||||
sudo port install kubectl
|
||||
```
|
||||
|
||||
1. यह सुनिश्चित करने के लिए परीक्षण करें कि आपके द्वारा इंस्टॉल किया गया संस्करण उप-टू-डेट है:
|
||||
|
||||
```bash
|
||||
kubectl version --client
|
||||
```
|
||||
|
||||
## kubectl कॉन्फ़िगरेशन सत्यापित करें
|
||||
|
||||
{{< include "included/verify-kubectl.md" >}}
|
||||
|
||||
## वैकल्पिक Kubectl कॉन्फ़िगरेशन और प्लगइन्स
|
||||
|
||||
### शेल ऑटोकम्प्लेशन सक्षम करें
|
||||
|
||||
kubectl Bash और Zsh के लिए ऑटोकम्प्लेशन का सपोर्ट प्रदान करता है, जो आपका काफी समय बचा सकता है।
|
||||
|
||||
नीचे Bash और Zsh के लिए ऑटोकम्प्लेशन स्थापित करने की प्रक्रियाएँ हैं।
|
||||
|
||||
{{< tabs name="kubectl_autocompletion" >}}
|
||||
{{< tab name="Bash" include="included/optional-kubectl-configs-bash-mac.md" />}}
|
||||
{{< tab name="Zsh" include="included/optional-kubectl-configs-zsh.md" />}}
|
||||
{{< /tabs >}}
|
||||
|
||||
### `kubectl convert` प्लगइन इंस्टॉल करें
|
||||
|
||||
{{< include "included/kubectl-convert-overview.md" >}}
|
||||
|
||||
1. इस कमांड से नवीनतम रिलीज डाउनलोड करें:
|
||||
|
||||
{{< tabs name="download_convert_binary_macos" >}}
|
||||
{{< tab name="Intel" codelang="bash" >}}
|
||||
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl-convert"
|
||||
{{< /tab >}}
|
||||
{{< tab name="Apple Silicon" codelang="bash" >}}
|
||||
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl-convert"
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
1. बाइनरी को मान्य करें (वैकल्पिक)
|
||||
|
||||
kubectl-convert चेकसम फ़ाइल डाउनलोड करें:
|
||||
|
||||
{{< tabs name="download_convert_checksum_macos" >}}
|
||||
{{< tab name="Intel" codelang="bash" >}}
|
||||
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl-convert.sha256"
|
||||
{{< /tab >}}
|
||||
{{< tab name="Apple Silicon" codelang="bash" >}}
|
||||
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl-convert.sha256"
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
चेकसम फ़ाइल से kubectl-convert बाइनरी को मान्य करें:
|
||||
|
||||
```bash
|
||||
echo "$(<kubectl-convert.sha256) kubectl-convert" | shasum -a 256 --check
|
||||
```
|
||||
|
||||
यदि मान्य है, तो आउटपुट है:
|
||||
|
||||
```console
|
||||
kubectl-convert: OK
|
||||
```
|
||||
|
||||
अगर चेक फेल हो जाता है, तो `sha256` nonzero स्थिति के साथ बाहर निकलता है और इस आउटपुट के समान प्रिंट करता है:
|
||||
|
||||
```bash
|
||||
kubectl-convert: FAILED
|
||||
shasum: WARNING: 1 computed checksum did NOT match
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
बाइनरी और चेकसम का एक ही संस्करण डाउनलोड करें।
|
||||
{{< /note >}}
|
||||
|
||||
1. Kubectl-कन्वर्ट बाइनरी को एक्सेक्यूट करने योग्य बनाएं
|
||||
|
||||
```bash
|
||||
chmod +x ./kubectl-convert
|
||||
```
|
||||
|
||||
1. kubectl-convert binary बाइनरी को अपने सिस्टम `PATH` के फ़ाइल स्थान पर ले जाएँ।
|
||||
|
||||
```bash
|
||||
sudo mv ./kubectl-convert /usr/local/bin/kubectl-convert
|
||||
sudo chown root: /usr/local/bin/kubectl-convert
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
सुनिश्चित करें कि `/usr/local/bin` आपके पाथ एनवायरनमेंट वेरिएबल में है।
|
||||
{{< /note >}}
|
||||
|
||||
1. सत्यापित करें कि प्लगइन सफलतापूर्वक इंस्टॉल हो गया है
|
||||
|
||||
```shell
|
||||
kubectl convert --help
|
||||
```
|
||||
|
||||
यदि आपको कोई त्रुटि नहीं दिखाई देती है, तो इसका मतलब है कि प्लगइन सफलतापूर्वक इंस्टॉल हो गया है।
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
{{< include "included/kubectl-whats-next.md" >}}
|
|
@ -0,0 +1,184 @@
|
|||
---
|
||||
title: Windows पर kubectl इंस्टॉल और सेटअप करें
|
||||
content_type: task
|
||||
weight: 10
|
||||
card:
|
||||
name: tasks
|
||||
weight: 20
|
||||
title: Windows पर kubectl इंस्टॉल करें
|
||||
---
|
||||
|
||||
## {{% heading "prerequisites" %}}
|
||||
|
||||
आप kubectl संस्करण का उपयोग करे जो आपके क्लस्टर के एक माइनर संस्करण भीतर हो। उदाहरण के लिए, v{{< skew latestVersion >}} क्लाइंट v{{< skew prevMinorVersion >}}, v{{< skew latestVersion >}} और v{{< skew nextMinorVersion >}} कण्ट्रोल प्लेन के साथ कम्युनिकेट कर सकते हैं।
|
||||
kubectl के नए संस्करण का उपयोग करने से समस्या से बचत हो सकती है।
|
||||
|
||||
## Windows पर kubectl इंस्टॉल करें
|
||||
|
||||
Windows पर kubectl संस्थापित करने के लिए निम्नलिखित विधियाँ मौजूद हैं:
|
||||
|
||||
- [Windows पर curl के माध्यम से kubectl बाइनरी इंस्टॉल करें](#Windows-पर-curl-के-माध्यम-से-kubectl-बाइनरी-इंस्टॉल-करें)
|
||||
- [Chocolatey या Scoop का उपयोग करके Windows पर इंस्टॉल करें](#Chocolatey-या-Scoop-का-उपयोग-करके-Windows-पर-इंस्टॉल-करें)
|
||||
|
||||
### Windows पर curl के माध्यम से kubectl बाइनरी इंस्टॉल करें
|
||||
|
||||
1. [latest release {{< param "fullversion" >}}](https://dl.k8s.io/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe) डाउनलोड करें।
|
||||
|
||||
या यदि आपके पास `curl` है, तो इस कमांड का उपयोग करें:
|
||||
|
||||
```powershell
|
||||
curl -LO https://dl.k8s.io/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
नवीनतम स्थिर संस्करण का पता लगाने के लिए (जैसे, स्क्रिप्टिंग के लिए), [https://dl.k8s.io/release/stable.txt](https://dl.k8s.io/release/stable.txt) पर एक नज़र डालें।
|
||||
{{< /note >}}
|
||||
|
||||
1. बाइनरी को मान्य करें (वैकल्पिक)
|
||||
|
||||
kubectl चेकसम फाइल डाउनलोड करें:
|
||||
|
||||
```powershell
|
||||
curl -LO https://dl.k8s.io/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe.sha256
|
||||
```
|
||||
|
||||
चेकसम फ़ाइल से kubectl बाइनरी को मान्य करें:
|
||||
|
||||
- मैन्युअल रूप से कमांड प्रॉम्प्ट का उपयोग करके `CertUtil` के आउटपुट की तुलना डाउनलोडेड चेकसम फ़ाइल से करें:
|
||||
|
||||
```cmd
|
||||
CertUtil -hashfile kubectl.exe SHA256
|
||||
type kubectl.exe.sha256
|
||||
```
|
||||
|
||||
- `True` या `False` परिणाम प्राप्त करने के लिए `-eq` ऑपरेटर का उपयोग करके सत्यापन को ऑटोमेट करने के लिए powershell का उपयोग करें:
|
||||
|
||||
```powershell
|
||||
$($(CertUtil -hashfile .\kubectl.exe SHA256)[1] -replace " ", "") -eq $(type .\kubectl.exe.sha256)
|
||||
```
|
||||
|
||||
1. अपने `PATH` में बाइनरी जोड़ें।
|
||||
|
||||
1. यह सुनिश्चित करने के लिए परीक्षण करें कि `kubectl` संस्करण डाउनलोड के समान है:
|
||||
|
||||
```cmd
|
||||
kubectl version --client
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
[Windows के लिए Docker Desktop](https://docs.docker.com/docker-for-windows/#kubernetes) `kubectl` का अपना संस्करण `PATH` में जोड़ता है।
|
||||
यदि आपने पहले Docker Desktop स्थापित किया है, तो आपको Docker Desktop इंस्टॉलर द्वारा जोड़े गए एक `PATH` से पहले अपनी `PATH` प्रविष्टि डालने की आवश्यकता हो सकती है या Docker Desktop के `kubectl` को हटा दें।
|
||||
{{< /note >}}
|
||||
|
||||
### Chocolatey या Scoop का उपयोग करके Windows पर इंस्टॉल करें
|
||||
|
||||
1. Windows पर kubectl इंस्टॉल करने के लिए आप या तो [Chocolatey](https://chocolatey.org) पैकेज मैनेजर अथवा [Scoop](https://scoop.sh) कमांड-लाइन इंस्टॉलर का उपयोग कर सकते हैं।
|
||||
|
||||
{{< tabs name="kubectl_win_install" >}}
|
||||
{{% tab name="choco" %}}
|
||||
```powershell
|
||||
choco install kubernetes-cli
|
||||
```
|
||||
{{% /tab %}}
|
||||
{{% tab name="scoop" %}}
|
||||
```powershell
|
||||
scoop install kubectl
|
||||
```
|
||||
{{% /tab %}}
|
||||
{{< /tabs >}}
|
||||
|
||||
1. यह सुनिश्चित करने के लिए परीक्षण करें कि आपके द्वारा इंस्टॉल किया गया संस्करण उप-टू-डेट है:
|
||||
|
||||
```powershell
|
||||
kubectl version --client
|
||||
```
|
||||
|
||||
1. अपनी होम डायरेक्टरी पर जाएं:
|
||||
|
||||
```powershell
|
||||
# यदि आप cmd.exe का प्रयोग कर रहे हैं, तो: cd %USERPROFILE%
|
||||
cd ~
|
||||
```
|
||||
|
||||
1. `.kube` डायरेक्टरी बनाएं:
|
||||
|
||||
```powershell
|
||||
mkdir .kube
|
||||
```
|
||||
|
||||
1. आपके द्वारा अभी बनाई गई `.kube` डायरेक्टरी में जाएं:
|
||||
|
||||
```powershell
|
||||
cd .kube
|
||||
```
|
||||
|
||||
1. दूरस्थ कुबेरनेट्स क्लस्टर का उपयोग करने के लिए kubectl को कॉन्फ़िगर करें:
|
||||
|
||||
```powershell
|
||||
New-Item config -type file
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
अपनी पसंद के टेक्स्ट एडिटर जैसे नोटपैड का उपयोग कर कॉन्फिग फाइल को एडिट करें।
|
||||
{{< /note >}}
|
||||
|
||||
## kubectl कॉन्फ़िगरेशन सत्यापित करें
|
||||
|
||||
{{< include "included/verify-kubectl.md" >}}
|
||||
|
||||
## वैकल्पिक kubectl कॉन्फ़िगरेशन और प्लगइन्स
|
||||
|
||||
### शेल ऑटोकम्प्लेशन सक्षम करें
|
||||
|
||||
kubectl Bash और Zsh के लिए ऑटोकम्प्लेशन का सपोर्ट प्रदान करता है, जो आपको बहुत सारी टाइपिंग बचा सकता है।
|
||||
|
||||
नीचे Zsh के लिए ऑटोकम्प्लेशन स्थापित करने की प्रक्रियाएँ हैं, यदि आप इसे Windows पर चला रहे हैं।
|
||||
|
||||
{{< include "included/optional-kubectl-configs-zsh.md" >}}
|
||||
|
||||
### इंस्टॉल `kubectl convert` प्लगइन
|
||||
|
||||
{{< include "included/kubectl-convert-overview.md" >}}
|
||||
|
||||
1. इस कमांड से नवीनतम रिलीज डाउनलोड करें:
|
||||
|
||||
```powershell
|
||||
curl -LO https://dl.k8s.io/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl-convert.exe
|
||||
```
|
||||
|
||||
1. बाइनरी को मान्य करें (वैकल्पिक)
|
||||
|
||||
kubectl-convert चेकसम फ़ाइल डाउनलोड करें:
|
||||
|
||||
```powershell
|
||||
curl -LO https://dl.k8s.io/{{< param "fullversion" >}}/bin/windows/amd64/kubectl-convert.exe.sha256
|
||||
```
|
||||
|
||||
चेकसम फ़ाइल से kubectl-convert बाइनरी को मान्य करें:
|
||||
|
||||
- मैन्युअल रूप से कमांड प्रॉम्प्ट का उपयोग करके `CertUtil` के आउटपुट की तुलना डाउनलोड किये गये चेकसम फ़ाइल से करें:
|
||||
|
||||
```cmd
|
||||
CertUtil -hashfile kubectl-convert.exe SHA256
|
||||
type kubectl-convert.exe.sha256
|
||||
```
|
||||
|
||||
- `True` या `False` परिणाम प्राप्त करने और `-eq` ऑपरेटर का उपयोग करके सत्यापन को ऑटोमेट करने के लिए Powershell का उपयोग करें:
|
||||
|
||||
```powershell
|
||||
$($(CertUtil -hashfile .\kubectl-convert.exe SHA256)[1] -replace " ", "") -eq $(type .\kubectl-convert.exe.sha256)
|
||||
```
|
||||
|
||||
1. अपने `PATH` में बाइनरी जोड़ें।
|
||||
|
||||
1. सत्यापित करें कि प्लगइन सफलतापूर्वक इंस्टॉल हो गया है।
|
||||
|
||||
```shell
|
||||
kubectl convert --help
|
||||
```
|
||||
|
||||
यदि आपको कोई त्रुटि नहीं दिखाई देती है, तो इसका मतलब है कि प्लगइन सफलतापूर्वक इंस्टॉल हो गया है।
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
{{< include "included/kubectl-whats-next.md" >}}
|
|
@ -0,0 +1,65 @@
|
|||
---
|
||||
title: ट्यूटोरियल
|
||||
main_menu: true
|
||||
no_list: true
|
||||
weight: 60
|
||||
content_type: concept
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
प्रलेखन के इस खंड में ट्यूटोरियल हैं।
|
||||
ट्यूटोरियल दिखाता है कि किसी एकल कार्य से बड़े [लक्ष्य](/docs/tasks/) को कैसे पूरा किया जाए।
|
||||
आमतौर पर एक ट्यूटोरियल में कई खंड होते हैं,
|
||||
जिनमें से प्रत्येक में चरणों के क्रम होते हैं।
|
||||
प्रत्येक ट्यूटोरियल से परिचित होने से पहले, हम आपको
|
||||
[मानकीकृत शब्दावली](/docs/reference/glossary/) पृष्ट को बुकमार्क करने की सलाह देते हैं।
|
||||
<!-- body -->
|
||||
|
||||
## मूलभूत
|
||||
|
||||
* [मूलभूत कुबरनेट्स](/hi/docs/tutorials/kubernetes-basics/) एक गहन संवादात्मक ट्यूटोरियल है जो आपको कुबेरनेट्स प्रणाली को समझने और कुबेरनेट्स की कुछ बुनियादी सुविधाओं को आज़माने में मदद करता है।
|
||||
|
||||
* [Introduction to Kubernetes (edX)](https://www.edx.org/course/introduction-kubernetes-linuxfoundationx-lfs158x#)
|
||||
|
||||
* [Hello Minikube](/hi/docs/tutorials/hello-minikube/)
|
||||
|
||||
## विन्यास
|
||||
|
||||
* [Example: Configuring a Java Microservice
|
||||
](/docs/tutorials/configuration/configure-java-microservice/) (उदाहरण: Java माइक्रोसर्विस का विन्यास करना)
|
||||
|
||||
* [Configuring Redis Using a ConfigMap](/docs/tutorials/configuration/configure-redis-using-configmap/) (कॉन्फिग मैप का उपयोग करके Redis का विन्यास करना)
|
||||
|
||||
## स्टेटलेस एप्लीकेशन
|
||||
|
||||
|
||||
* [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/) (उदाहरण: रेडिस के साथ PHP गेस्टबुक एप्लिकेशन को उपयोग करना)
|
||||
|
||||
## स्टेटफुल एप्लीकेशन
|
||||
|
||||
* [स्टेटफुलसेट मूलभूत](/docs/tutorials/stateful-application/basic-stateful-set/)
|
||||
|
||||
* [उदाहरण: दृढ़ वॉल्यूम के साथ वर्डप्रेस और MySQL](/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/)
|
||||
|
||||
* [उदाहरण: कैसेंड्रा को स्टेटफुल सेट के साथ उपयोग करना](/docs/tutorials/stateful-application/cassandra/)
|
||||
|
||||
* [एक CP वितरित प्रणाली, ज़ूकीपर चलाना](/docs/tutorials/stateful-application/zookeeper/)
|
||||
|
||||
## क्लस्टर
|
||||
|
||||
* [AppArmor](/docs/tutorials/clusters/apparmor/)
|
||||
|
||||
* [seccomp](/docs/tutorials/clusters/seccomp/)
|
||||
|
||||
## सर्विस
|
||||
|
||||
* [सोर्स आईपी का उपयोग करना](/docs/tutorials/services/source-ip/)
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
यदि आप एक ट्यूटोरियल लिखना चाहते हैं, तो
|
||||
ट्यूटोरियल पेज प्रकार के बारे में जानकारी के लिए
|
||||
[सामग्री पृष्ठ प्रकार](/docs/contribute/style/page-content-types/) देखें।
|
|
@ -0,0 +1,306 @@
|
|||
---
|
||||
title: हेलो मिनीक्यूब
|
||||
content_type: tutorial
|
||||
weight: 5
|
||||
menu:
|
||||
main:
|
||||
title: "शुरू करते हैं"
|
||||
weight: 10
|
||||
post: >
|
||||
<p>तो क्या आप तैयार हैं? एक सामान्य ऐप चलाने के लिए के लिए एक साधारण कुबेरनेट्स क्लस्टर बनाएं।</p>
|
||||
card:
|
||||
name: tutorials
|
||||
weight: 10
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
यह ट्यूटोरियल आपको मिनिक्यूब और काटाकोडा का उपयोग करते हुए
|
||||
कुबेरनेट्स पर एक साधारण ऐप चलाने का तरीका दिखाता है।
|
||||
काटाकोडा आपके ब्राउज़र पर मुफ़्त कुबेरनेट्स वातावरण प्रदान करता है।
|
||||
|
||||
{{< note >}}
|
||||
यदि आपने अपने स्थानीय सिस्टम पर मिनीक्यूब स्थापित किया है तो आप इस ट्यूटोरियल का अनुसरण कर सकते हैं।
|
||||
स्थापाना निर्देश के लिए [मिनीक्यूब पृष्ट](https://minikube.sigs.k8s.io/docs/start/) देखें।
|
||||
{{< /note >}}
|
||||
|
||||
## {{% heading "objectives" %}}
|
||||
|
||||
* मिनीक्यूब में एक नमूना एप्लीकेशन डेप्लॉय करें।
|
||||
* ऐप को चलाएं।
|
||||
* एप्लिकेशन लॉग देखें।
|
||||
|
||||
## {{% heading "prerequisites" %}}
|
||||
|
||||
|
||||
यह ट्यूटोरियल एक कंटेनर इमेज प्रदान करता है जो सभी अनुरोधों को प्रतिध्वनित करने के लिए NGINX का उपयोग करता है।
|
||||
|
||||
|
||||
|
||||
<!-- lessoncontent -->
|
||||
|
||||
## एक मिनीक्यूब क्लस्टर बनाएं
|
||||
|
||||
1. **Launch Terminal** पर क्लिक करें।
|
||||
|
||||
{{< kat-button >}}
|
||||
|
||||
{{< note >}}
|
||||
यदि आपने स्थानीय रूप से मिनीक्यूब स्थापित किया है, तो `minikube start` चलाएँ। इससे पहले कि आप `minikube dashboard` चलाएं, आपको एक नया टर्मिनल खोलना चाहिए, वहां `minikube dashboard` शुरू करना चाहिए, और फिर मुख्य टर्मिनल पर वापस जाना चाहिए।
|
||||
{{< /note >}}
|
||||
|
||||
2. ब्राउज़र में कुबेरनेट्स डैशबोर्ड खोलें:
|
||||
|
||||
```shell
|
||||
minikube dashboard
|
||||
```
|
||||
|
||||
3. केवल काटाकोडा वातावरण के लिए: टर्मिनल फलक के शीर्ष पर, प्लस(+) चिह्न पर क्लिक करें, और फिर **Select port to view on Host 1** क्लिक करें।
|
||||
|
||||
4. केवल काटाकोडा वातावरण के लिए: `30000` टाइप करें, और फिर **Display Port** क्लिक करें।
|
||||
|
||||
{{< note >}}
|
||||
`dashboard` कमांड डैशबोर्ड ऐड-ऑन को इस्तेमाल के लिए तैयार करता है और प्रॉक्सी को डिफ़ॉल्ट वेब ब्राउज़र में खोलता है।
|
||||
आप डैशबोर्ड पर कुबेरनेट्स संसाधन जैसे डेप्लॉयमेंट और सर्विस बना सकते हैं।
|
||||
|
||||
यदि आप किसी वातावरण(environment) में रुट(root) के रूप में इस्तेमाल कर रहे हैं, तो [URL से डैशबोर्ड खोलना](#open-dashboard-with-url) देखें।
|
||||
|
||||
आमतौर पर, डैशबोर्ड केवल आंतरिक कुबेरनेट्स वर्चुअल नेटवर्क के भीतर से ही पहुँचा जा सकता है।
|
||||
डैशबोर्ड को कुबेरनेट्स वर्चुअल नेटवर्क के बाहर से एक्सेस करने योग्य बनाने के लिए `dashboard` कमांड एक अस्थायी प्रॉक्सी बनाता है।
|
||||
|
||||
प्रॉक्सी को रोकने और प्रक्रिया से बाहर निकलने के लिए `Ctrl+C` का प्रयोग करें।
|
||||
कमांड से बाहर निकलने के बाद, डैशबोर्ड कुबेरनेट्स क्लस्टर में चलता रहता है।
|
||||
आप डैशबोर्ड तक पहुंचने और प्रॉक्सी बनाने के लिए फिर से `dashboard` कमांड चला सकते हैं।
|
||||
{{< /note >}}
|
||||
|
||||
## URL से डैशबोर्ड खोलें {#open-dashboard-with-url}
|
||||
|
||||
यदि आप वेब ब्राउज़र नहीं खोलना चाहते हैं, तो URL प्राप्त करने के लिए url फ़्लैग के साथ `dashboard` कमांड चलाएँ:
|
||||
|
||||
```shell
|
||||
minikube dashboard --url
|
||||
```
|
||||
|
||||
## डेप्लॉयमेंट बनाएँ
|
||||
|
||||
कुबेरनेट्स [*पॉड*](/hi/docs/concepts/workloads/pods/) एक या अधिक कंटेनरों का एक समूह है,
|
||||
जो प्रशासन और नेटवर्किंग के उद्देश्यों के लिए एक साथ बंधे होते हैं। इस ट्यूटोरियल के
|
||||
पॉड में केवल एक कंटेनर है। कुबेरनेट्स
|
||||
[*डेप्लॉयमेंट*](/hi/docs/concepts/workloads/controllers/deployment/) आपके पॉड के स्वास्थ्य की
|
||||
जाँच करता है और यदि पॉड बंद हो जाता है तो पॉड के कंटेनर को पुनः आरंभ करता है।
|
||||
पॉड्स के निर्माण और स्केलिंग को प्रबंधित करने के लिए डेप्लॉयमेंट अनुशंसित तरीका है।
|
||||
|
||||
1. पॉड को प्रबंधित करने वाला डेप्लॉयमेंट बनाने के लिए `kubectl create` कमांड का उपयोग करें। पॉड
|
||||
प्रदान की गई डॉकर इमेज के आधार पर एक कंटेनर चलाता है।
|
||||
|
||||
```shell
|
||||
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
|
||||
```
|
||||
|
||||
2. डेप्लॉयमेंट देखें:
|
||||
|
||||
```shell
|
||||
kubectl get deployments
|
||||
```
|
||||
|
||||
आउटपुट कुछ इस समान होगा:
|
||||
|
||||
```
|
||||
NAME READY UP-TO-DATE AVAILABLE AGE
|
||||
hello-node 1/1 1 1 1m
|
||||
```
|
||||
|
||||
3. पॉड देखें:
|
||||
|
||||
```shell
|
||||
kubectl get pods
|
||||
```
|
||||
|
||||
आउटपुट कुछ इस समान होगा:
|
||||
|
||||
```
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m
|
||||
```
|
||||
|
||||
4. क्लस्टर इवेंट देखें:
|
||||
|
||||
```shell
|
||||
kubectl get events
|
||||
```
|
||||
|
||||
5. `kubectl` कॉन्फ़िगरेशन देखें:
|
||||
|
||||
```shell
|
||||
kubectl config view
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
`kubectl` कमांड के बारे में अधिक जानकारी के लिए [kubectl अवलोकन](/docs/reference/kubectl/overview/) देखें।
|
||||
{{< /note >}}
|
||||
|
||||
## सर्विस बनाएं
|
||||
|
||||
आमतौर पर, पॉड कुबेरनेट्स क्लस्टर के भीतर अपने आंतरिक IP पते से ही पहुँचा जा सकता है।
|
||||
`hello-node` कंटेनर को कुबेरनेट्स वर्चुअल नेटवर्क के
|
||||
बाहर से सुलभ बनाने के लिए,पॉड को
|
||||
कुबेरनेट्स [*Service*](/docs/concepts/services-networking/service/)(सर्विस) के रूप में बेनकाब करना होगा।
|
||||
|
||||
1. `kubectl expose` कमांड का उपयोग करके पॉड को सार्वजनिक इंटरनेट पर एक्सपोज़ करें:
|
||||
|
||||
```shell
|
||||
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
|
||||
```
|
||||
|
||||
`--type=LoadBalancer` फ्लैग इंगित करता है कि आप क्लस्टर के बाहर
|
||||
अपने सर्विस को प्रदर्शित करना चाहते हैं।
|
||||
|
||||
इमेज के अंदर एप्लिकेशन कोड `k8s.gcr.io/echoserver` केवल TCP पोर्ट 8080 पर सुनता है।
|
||||
यदि आपने किसी भिन्न पोर्ट को एक्सपोज़ करने के लिए `kubectl एक्सपोज़` का उपयोग किया है, तो क्लाइंट उस अन्य पोर्ट से जुड़ नहीं सकते।
|
||||
|
||||
2. आपके द्वारा बनाई गई सर्विस देखें:
|
||||
|
||||
```shell
|
||||
kubectl get service
|
||||
```
|
||||
|
||||
आउटपुट कुछ इस समान होगा:
|
||||
|
||||
```
|
||||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
hello-node LoadBalancer 10.108.144.78 <pending> 8080:30369/TCP 21s
|
||||
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23m
|
||||
```
|
||||
|
||||
लोड बैलेंसर्स का समर्थन करने वाले क्लाउड प्रदाताओं पर, सर्विस तक पहुंचने के
|
||||
लिए एक बाहरी IP पते का प्रावधान किया जाएगा। मिनीक्यूब पर,
|
||||
`LoadBalancer` टाइप `minikube service` कमांड से सर्विस को
|
||||
पहुंच योग्य बनाता है।
|
||||
|
||||
3. निम्न आदेश चलाएँ:
|
||||
|
||||
```shell
|
||||
minikube service hello-node
|
||||
```
|
||||
|
||||
4. केवल काटाकोडा वातावरण के लिए: प्लस(+) चिह्न पर क्लिक करें, और फिर **Select port to view on Host 1** क्लिक करें।
|
||||
|
||||
5. केवल काटाकोडा वातावरण के लिए: सेवाओं के आउटपुट में `8080` के विपरीत प्रदर्शित 5 अंकों का पोर्ट नंबर नोट करें। यह पोर्ट नंबर बेतरतीब ढंग से उत्पन्न होता है और यह आपके लिए भिन्न हो सकता है। पोर्ट नंबर टेक्स्ट बॉक्स में अपना नंबर टाइप करें, फिर डिस्प्ले पोर्ट पर क्लिक करें। पहले के उदाहरण का उपयोग करते हुए, आप `30369` टाइप करेंगे।
|
||||
|
||||
यह एक ब्राउज़र विंडो खोलता है जो आपके ऐप की प्रतिक्रिया दिखाती है।
|
||||
|
||||
## ऐडऑन सक्षम करें
|
||||
|
||||
मिनीक्यूब टूल में बिल्ट-इन {{< glossary_tooltip text="ऐडऑन" term_id="addons" >}}(add on) का एक समूह
|
||||
शामिल है जिसे स्थानीय कुबेरनेट्स वातावरण में सक्षम, अक्षम और खोला जा सकता है।
|
||||
|
||||
1. वर्तमान में उपलब्ध ऐडऑन की सूची:
|
||||
|
||||
```shell
|
||||
minikube addons list
|
||||
```
|
||||
|
||||
आउटपुट कुछ इस समान होगा:
|
||||
|
||||
```
|
||||
addon-manager: enabled
|
||||
dashboard: enabled
|
||||
default-storageclass: enabled
|
||||
efk: disabled
|
||||
freshpod: disabled
|
||||
gvisor: disabled
|
||||
helm-tiller: disabled
|
||||
ingress: disabled
|
||||
ingress-dns: disabled
|
||||
logviewer: disabled
|
||||
metrics-server: disabled
|
||||
nvidia-driver-installer: disabled
|
||||
nvidia-gpu-device-plugin: disabled
|
||||
registry: disabled
|
||||
registry-creds: disabled
|
||||
storage-provisioner: enabled
|
||||
storage-provisioner-gluster: disabled
|
||||
```
|
||||
|
||||
2. एक ऐडऑन सक्षम करें, उदाहरण के लिए, `metrics-server`:
|
||||
|
||||
```shell
|
||||
minikube addons enable metrics-server
|
||||
```
|
||||
|
||||
आउटपुट कुछ इस समान होगा:
|
||||
|
||||
```
|
||||
The 'metrics-server' addon is enabled
|
||||
```
|
||||
|
||||
3. आपके द्वारा बनाई गई पॉड और सर्विस देखें:
|
||||
|
||||
```shell
|
||||
kubectl get pod,service -n kube-system
|
||||
```
|
||||
|
||||
आउटपुट कुछ इस समान होगा:
|
||||
|
||||
```
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
pod/coredns-5644d7b6d9-mh9ll 1/1 Running 0 34m
|
||||
pod/coredns-5644d7b6d9-pqd2t 1/1 Running 0 34m
|
||||
pod/metrics-server-67fb648c5 1/1 Running 0 26s
|
||||
pod/etcd-minikube 1/1 Running 0 34m
|
||||
pod/influxdb-grafana-b29w8 2/2 Running 0 26s
|
||||
pod/kube-addon-manager-minikube 1/1 Running 0 34m
|
||||
pod/kube-apiserver-minikube 1/1 Running 0 34m
|
||||
pod/kube-controller-manager-minikube 1/1 Running 0 34m
|
||||
pod/kube-proxy-rnlps 1/1 Running 0 34m
|
||||
pod/kube-scheduler-minikube 1/1 Running 0 34m
|
||||
pod/storage-provisioner 1/1 Running 0 34m
|
||||
|
||||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
service/metrics-server ClusterIP 10.96.241.45 <none> 80/TCP 26s
|
||||
service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 34m
|
||||
service/monitoring-grafana NodePort 10.99.24.54 <none> 80:30002/TCP 26s
|
||||
service/monitoring-influxdb ClusterIP 10.111.169.94 <none> 8083/TCP,8086/TCP 26s
|
||||
```
|
||||
|
||||
4. `metrics-server`अक्षम करें:
|
||||
|
||||
```shell
|
||||
minikube addons disable metrics-server
|
||||
```
|
||||
|
||||
आउटपुट कुछ इस समान होगा:
|
||||
|
||||
```
|
||||
metrics-server was successfully disabled
|
||||
```
|
||||
|
||||
## साफ - सफाई
|
||||
|
||||
अब आप अपने क्लस्टर में बनाए गए संसाधनों को साफ कर सकते हैं:
|
||||
|
||||
```shell
|
||||
kubectl delete service hello-node
|
||||
kubectl delete deployment hello-node
|
||||
```
|
||||
|
||||
वैकल्पिक रूप से, मिनिक्यूब वर्चुअल मशीन (VM) को बंद करें:
|
||||
|
||||
```shell
|
||||
minikube stop
|
||||
```
|
||||
|
||||
वैकल्पिक रूप से, मिनिक्यूब VM को डिलीट करें:
|
||||
|
||||
```shell
|
||||
minikube delete
|
||||
```
|
||||
|
||||
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
|
||||
* [डेप्लॉयमेंट ऑब्जेक्ट](/docs/concepts/workloads/controllers/deployment/) के बारे में अधिक जाने।
|
||||
* [एप्लीकेशन डेप्लॉय](/docs/tasks/run-application/run-stateless-application-deployment/) करने के बारे में अधिक जाने।
|
||||
* [सर्विस ऑब्जेक्ट](/docs/concepts/services-networking/service/) के बारे में अधिक जाने।
|
|
@ -0,0 +1,117 @@
|
|||
---
|
||||
title: बुनियादी कुबेरनेट्स सीखें
|
||||
linkTitle: बुनियादी कुबेरनेट्स सीखें
|
||||
no_list: true
|
||||
weight: 10
|
||||
card:
|
||||
name: tutorials
|
||||
weight: 20
|
||||
title: मूल बातें
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="hi">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<h2>बुनियादी कुबेरनेट्स</h2>
|
||||
<p>यह ट्यूटोरियल कुबेरनेट्स क्लस्टर ऑर्केस्ट्रेशन सिस्टम की मूल बातों का पूर्वाभ्यास प्रदान करता है। प्रत्येक मॉड्यूल में कुबेरनेट्स की प्रमुख विशेषताओं और अवधारणाओं पर कुछ जानकारी और एक इंटरैक्टिव ऑनलाइन ट्यूटोरियल शामिल होते हैं। ये इंटरेक्टिव ट्यूटोरियल आपको अपने लिए एक साधारण क्लस्टर और इसके कंटेनरीकृत एप्लीकेशन का प्रबंधन करने देते हैं।</p>
|
||||
<p>इंटरैक्टिव ट्यूटोरियल का उपयोग करके, आप सीख सकते हैं:</p>
|
||||
<ul>
|
||||
<li>एक क्लस्टर पर कंटेनरीकृत एप्लीकेशन डिप्लॉय करें।</li>
|
||||
<li>डिप्लॉयमेंट को स्केल करें।</li>
|
||||
<li>नए सॉफ़्टवेयर संस्करण के साथ कंटेनरीकृत एप्लिकेशन को अपडेट करें।</li>
|
||||
<li>कंटेनरीकृत एप्लिकेशन को डीबग करें।</li>
|
||||
</ul>
|
||||
<p>ट्यूटोरियल आपके वेब ब्राउज़र में एक वर्चुअल टर्मिनल चलाने के लिए कटाकोडा का उपयोग करते हैं जो मिनिक्यूब नामक कुबेरनेट्स का एक छोटा स्थानीय डिप्लॉयमेंट चलाता है। कोई सॉफ़्टवेयर स्थापित करने या कुछ भी कॉन्फ़िगर करने की कोई आवश्यकता नहीं है; प्रत्येक इंटरैक्टिव ट्यूटोरियल सीधे आपके वेब ब्राउज़र से ही चलता है।</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<h2>कुबेरनेट्स आपके लिए क्या कर सकता है?</h2>
|
||||
<p>आधुनिक वेब सेवाओं के साथ उपयोगकर्ता उम्मीद करते हैं कि एप्लिकेशन 24/7 उपलब्ध होंगे, और डेवलपर्स उन एप्लिकेशन के नए संस्करणों को दिन में कई बार डिप्लॉय करने की उम्मीद करते हैं। कंटेनरीकरण पैकेज सॉफ़्टवेयर को इन लक्ष्यों को पूरा करने में मदद करता है, जिससे एप्लिकेशन बिना डाउनटाइम के रिलीज़ और अपडेट किए जा सकते हैं। कुबेरनेट्स आपको यह सुनिश्चित करने में मदद करता है कि वे कंटेनरीकृत एप्लिकेशन जहां और जब आप चाहते हैं, चलते हैं, और उन्हें उन संसाधनों और उपकरणों को खोजने में मदद करते हैं जिनकी उन्हें काम करने के लिए आवश्यकता होती है। कुबेरनेट्स एक उत्पादन के लिए तैयार, ओपन सोर्स प्लेटफॉर्म है जिसे कंटेनर ऑर्केस्ट्रेशन में गूगल के संचित अनुभव के साथ डिज़ाइन किया गया है और समुदाय के उत्तम विचारों से संयुक्त है।</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div id="basics-modules" class="content__modules">
|
||||
<h2>बुनियादी कुबेरनेट्स मॉड्यूल</h2>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail">
|
||||
<a href="/hi/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_01.svg?v=1469803628347" alt=""></a>
|
||||
<div class="caption">
|
||||
<a href="/hi/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/"><h5>1. कुबेरनेट्स क्लस्टर बनाएं</h5></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail">
|
||||
<a href="/hi/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_02.svg?v=1469803628347" alt=""></a>
|
||||
<div class="caption">
|
||||
<a href="/hi/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/"><h5>2. ऐप डिप्लॉय करें</h5></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail">
|
||||
<a href="/hi/docs/tutorials/kubernetes-basics/explore/explore-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_03.svg?v=1469803628347" alt=""></a>
|
||||
<div class="caption">
|
||||
<a href="/hi/docs/tutorials/kubernetes-basics/explore/explore-intro/"><h5>3. अपना ऐप एक्सप्लोर करें</h5></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail">
|
||||
<a href="/hi/docs/tutorials/kubernetes-basics/expose/expose-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_04.svg?v=1469803628347" alt=""></a>
|
||||
<div class="caption">
|
||||
<a href="/hi/docs/tutorials/kubernetes-basics/expose/expose-intro/"><h5>4. अपने ऐप को सार्वजनिक रूप से एक्सपोज़ करें</h5></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail">
|
||||
<a href="/hi/docs/tutorials/kubernetes-basics/scale/scale-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_05.svg?v=1469803628347" alt=""></a>
|
||||
<div class="caption">
|
||||
<a href="/hi/docs/tutorials/kubernetes-basics/scale/scale-intro/"><h5>5. अपना ऐप स्केल करें</h5></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail">
|
||||
<a href="/hi/docs/tutorials/kubernetes-basics/update/update-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_06.svg?v=1469803628347" alt=""></a>
|
||||
<div class="caption">
|
||||
<a href="/hi/docs/tutorials/kubernetes-basics/update/update-intro/"><h5>6. अपना ऐप अपडेट करें</h5></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: एक क्लस्टर बनाएं
|
||||
weight: 10
|
||||
---
|
|
@ -0,0 +1,38 @@
|
|||
---
|
||||
title: इंटरएक्टिव ट्यूटोरियल - एक क्लस्टर बनाना
|
||||
weight: 20
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="hi">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/overrides.css" rel="stylesheet">
|
||||
<script src="https://katacoda.com/embed.js"></script>
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content katacoda-content">
|
||||
|
||||
<div class="katacoda">
|
||||
<div class="katacoda__alert">
|
||||
टर्मिनल के साथ इंटरैक्ट करने के लिए स्क्रीन बहुत संकरी है, कृपया डेस्कटॉप या टैबलेट का उपयोग करें।
|
||||
</div>
|
||||
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/1" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;"></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/" role="button">होम<span class=""></span></a>
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/" role="button">मॉड्यूल 2 जारी रखें ><span class=""></span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,106 @@
|
|||
---
|
||||
title: Minikube का उपयोग कर क्लस्टर बनाना
|
||||
weight: 10
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="hi">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>Objectives</h3>
|
||||
<ul>
|
||||
<li>जानें कुबेरनेट्स क्लस्टर क्या है।</li>
|
||||
<li>जानें मिनिक्यूब क्या है।</li>
|
||||
<li>एक ऑनलाइन टर्मिनल का उपयोग करके कुबेरनेट्स क्लस्टर प्रारंभ करें।</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>कुबेरनेट्स क्लस्टर</h3>
|
||||
<p>
|
||||
<b>कुबेरनेट्स उन कंप्यूटरों के समूह को प्रबंधित करने में मदद करता है जो एक इकाई के रूप में काम करने के लिए जुड़े होते हैं।</b> कुबेरनेट्स के एब्स्ट्रैक्शन आपको कंटेनरीकृत एप्लिकेशन को अलग-अलग मशीनों में चलाए बिना क्लस्टर डिप्लॉय करने की अनुमति देता है। डिप्लॉयमेंट के इस नए मॉडल का उपयोग करने के लिए, एप्लिकेशन को इस तरह से पैक किया जाना चाहिए जो उन्हें विभिन्न होस्ट से अलग करता है: उन्हें कंटेनरीकृत किया गया हो। कंटेनरीकृत एप्लिकेशन पिछले डिप्लॉयमेंट मॉडल की तुलना में अधिक लचीले और उपलब्ध हैं, जहां विभिन्न मशीनों पर सीधे एप्लिकेशन इंस्टॉल किए गए थे क्योंकि पैकेज को होस्ट में गहराई से एकीकृत किया गया था। <b>कुबेरनेट्स एक क्लस्टर में एप्लिकेशन कंटेनरों के वितरण और शेड्यूलिंग को अधिक कुशल तरीके से स्वचालित करता है।</b> कुबेरनेट्स एक ओपन सोर्स प्लेटफॉर्म है और उत्पादन के लिए तैयार है।
|
||||
</p>
|
||||
<p>कुबेरनेट्स क्लस्टर में दो प्रकार के संसाधन होते हैं:
|
||||
<ul>
|
||||
<li><b>कंट्रोल प्लेन</b> क्लस्टर का समन्वय करता है</li>
|
||||
<li><b>नोड्स</b> वे कर्मचारी हैं जो एप्लिकेशन चलाते हैं</li>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_lined">
|
||||
<h3>सारांश:</h3>
|
||||
<ul>
|
||||
<li>कुबेरनेट्स क्लस्टर</li>
|
||||
<li>मिनिक्यूब</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>
|
||||
कुबेरनेट्स एक प्रोडक्शन-ग्रेड, ओपन-सोर्स प्लेटफॉर्म है जो कंप्यूटर क्लस्टर के भीतर और उसके भीतर एप्लिकेशन कंटेनरों के प्लेसमेंट (शेड्यूलिंग) और निष्पादन को व्यवस्थित करता है।
|
||||
</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2 style="color: #3771e3;">क्लस्टर आरेख</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_01_cluster.svg"></p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p><b>कंट्रोल प्लेन क्लस्टर के प्रबंधन के लिए जिम्मेदार है।</b> कंट्रोल प्लेन आपके क्लस्टर में सभी गतिविधियों का समन्वय करता है, जैसे एप्लिकेशन शेड्यूल करना, एप्लिकेशन की वांछित स्थिति को बनाए रखना, एप्लिकेशन को स्केल करना और नए अपडेट रोल आउट करना।</p>
|
||||
<p><b>नोड एक VM या एक भौतिक कंप्यूटर है जो कुबेरनेट्स क्लस्टर में एक वर्कर मशीन के रूप में कार्य करता है।</b> प्रत्येक नोड में एक kubelet होता है, जो नोड के प्रबंधन और कुबेरनेट्स नियंत्रण के साथ संचार करने के लिए एक एजेंट है। नोड में कंटेनर संचालन को संभालने के लिए उपकरण भी होने चाहिए, जैसे कि containerd या Docker। उत्पादन ट्रैफ़िक को संभालने वाले कुबेरनेट्स क्लस्टर में कम से कम तीन नोड होने चाहिए।</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>कंट्रोल प्लेन क्लस्टर और नोड्स को मैनेज करते हैं जिनका उपयोग रनिंग एप्लिकेशन को होस्ट करने के लिए किया जाता है।</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p>जब आप कुबेरनेट्स पर एप्लिकेशन डिप्लॉयमेंट करते हैं, तो आप कंट्रोल प्लेन को एप्लिकेशन कंटेनर शुरू करने के लिए कहते हैं। नियंत्रण विमान कंटेनरों को क्लस्टर के नोड्स पर चलाने के लिए शेड्यूल करता है। <b>नोड्स <a href="/docs/concepts/overview/kubernetes-api/">कुबेरनेट्स एपीआई</a></b> का उपयोग करके कंट्रोल प्लेन के साथ संचार करते हैं, जिसे कंट्रोल प्लेन एक्सपोज करता है। अंतिम उपयोगकर्ता भी कुबेरनेट्स एपीआई का उपयोग सीधे क्लस्टर के साथ बातचीत करने के लिए कर सकते हैं।</p>
|
||||
<p>कुबेरनेट्स क्लस्टर को भौतिक या वर्चुअल मशीनों पर तैनात किया जा सकता है। कुबेरनेट्स विकास के साथ आरंभ करने के लिए, आप मिनिक्यूब का उपयोग कर सकते हैं। मिनिक्यूब एक हल्का कुबेरनेट्स कार्यान्वयन है जो आपकी स्थानीय मशीन पर एक वीएम बनाता है और केवल एक नोड वाला एक साधारण क्लस्टर तैनात करता है। मिनिक्यूब Linux , MacOS और Windows सिस्टम के लिए उपलब्ध है। मिनिक्यूब CLI आपके क्लस्टर के साथ काम करने के लिए बुनियादी बूटस्ट्रैपिंग संचालन प्रदान करता है, जिसमें स्टार्ट, स्टॉप, स्टेटस और डिलीट शामिल हैं। हालांकि, इस ट्यूटोरियल के लिए, आप मिनीक्यूब के साथ पहले से इंस्टॉल किए गए ऑनलाइन टर्मिनल का उपयोग करेंगे।</p>
|
||||
<p>अब जब आप जानते हैं कि कुबेरनेट्स क्या है, तो आइए ऑनलाइन ट्यूटोरियल पर जाएं और अपना पहला क्लस्टर शुरू करें!</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/create-cluster/cluster-interactive/" role="button">इंटरएक्टिव ट्यूटोरियल शुरू करें <span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: डिप्लॉय ऐप
|
||||
weight: 20
|
||||
---
|
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
title: इंटरैक्टिव ट्यूटोरियल - ऐप डिप्लॉय करें
|
||||
weight: 20
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="hi">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/overrides.css" rel="stylesheet">
|
||||
<script src="https://katacoda.com/embed.js"></script>
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content katacoda-content">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<p>
|
||||
पॉड कुबेरनेट्स एप्लिकेशन की मूल निष्पादन इकाई है। प्रत्येक पॉड आपके क्लस्टर पर चल रहे कार्यभार के एक हिस्से का प्रतिनिधित्व करता है। <a href="/docs/concepts/workloads/pods/">पॉड के बारे में अधिक जानें</a>।
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
<div class="katacoda">
|
||||
<div class="katacoda__alert">
|
||||
टर्मिनल का उपयोग करने के लिए, कृपया डेस्कटॉप या टैबलेट संस्करण का उपयोग करें
|
||||
</div>
|
||||
|
||||
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/7" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/" role="button"> < मॉड्यूल 1 पर लौटें<span class=""></span></a>
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/" role="button">होम<span class=""></span></a>
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/explore/explore-intro/" role="button">मॉड्यूल 3 पर जाए ><span class=""></span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,106 @@
|
|||
---
|
||||
title: डिप्लॉयमेंट बनाने के लिए kubectl का उपयोग करना
|
||||
weight: 10
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="hi">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>उद्देश्यों</h3>
|
||||
<ul>
|
||||
<li>एप्लिकेशन डिप्लॉयमेंट के बारे में जानें।</li>
|
||||
<li>कुबेरनेट्स पर kubectl के साथ अपना पहला ऐप डिप्लॉय करें।</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>कुबेरनेट्स डिप्लॉयमेंट</h3>
|
||||
|
||||
<p>एक बार जब आपके पास कुबेरनेट्स क्लस्टर चल रहा हो, तो आप इसके ऊपर अपने कंटेनरीकृत एप्लीकेशन को तैनात कर सकते हैं। ऐसा करने के लिए, आप कुबेरनेट्स <b>डिप्लॉयमेंट</b> कॉन्फ़िगरेशन बनाते हैं। डिप्लॉयमेंट कुबेरनेट्स को निर्देश देता है कि आपके आवेदन के उदाहरण कैसे बनाएं और अपडेट करें। एक बार जब आप एक डिप्लॉयमेंट बना लेते हैं, तो कुबेरनेट्स कंट्रोल प्लेन उस डिप्लॉयमेंट में शामिल एप्लिकेशन इंस्टेंस को क्लस्टर में अलग-अलग नोड्स पर चलाने के लिए शेड्यूल करता है।</p>
|
||||
|
||||
<p>एक बार एप्लिकेशन इंस्टेंस बन जाने के बाद, कुबेरनेट्स डिप्लॉयमेंट कंट्रोलर लगातार उन इंस्टेंस की निगरानी करता है। यदि किसी इंस्टेंस को होस्ट करने वाला नोड बंद हो जाता है या हटा दिया जाता है, तो डिप्लॉयमेंट कंट्रोलर क्लस्टर में इंस्टेंस को किसी अन्य नोड के इंस्टेंस से बदल देता है। <b>यह मशीन की विफलता या रखरखाव को दूर करने के लिए एक स्व-उपचार तंत्र प्रदान करता है।</b></p>
|
||||
|
||||
<p>पूर्व-ऑर्केस्ट्रेशन की दुनिया में, इंस्टॉलेशन स्क्रिप्ट का उपयोग अक्सर एप्लीकेशन को शुरू करने के लिए किया जाता था, लेकिन वे मशीन की विफलता से पुनर्प्राप्ति की अनुमति नहीं देते हैं। कुबेरनेट्स डिप्लॉयमेंट आपके एप्लिकेशन इंस्टेंस को बनाकर और उन्हें नोड्स पर चालू रखते हुए, एप्लिकेशन प्रबंधन के लिए एक मौलिक रूप से अलग दृष्टिकोण प्रदान करता है। </p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_lined">
|
||||
<h3>सारांश:</h3>
|
||||
<ul>
|
||||
<li>डिप्लॉयमेंट</li>
|
||||
<li>kubectl</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>आपके एप्लिकेशन के इंस्टेंस बनाने और अपडेट करने के लिए एक डिप्लॉयमेंट जिम्मेदार है</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2 style="color: #3771e3;">कुबेरनेट्स पर अपना पहला ऐप डिप्लॉय करें</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_02_first_app.svg"></p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<p class="col-md-8">
|
||||
<p>आप कुबेरनेट्स कमांड लाइन इंटरफेस, <b>kubectl</b> का उपयोग करके डिप्लॉयमेंट बना और प्रबंधित कर सकते हैं। kubectl क्लस्टर के साथ बातचीत करने के लिए कुबेरनेट्स एपीआई का उपयोग करता है। इस मॉड्यूल में, आप कुबेरनेट्स क्लस्टर पर आपके एप्लिकेशन चलाने वाले डिप्लॉयमेंट बनाने के लिए आवश्यक सबसे सामान्य kubectl कमांड सीखेंगे।</p>
|
||||
|
||||
<p>जब आप कोई डिप्लॉयमेंट बनाते हैं, तो आपको अपने एप्लिकेशन के लिए कंटेनर इमेज और चलाने के लिए इच्छित प्रतिकृतियों की संख्या निर्दिष्ट करने की आवश्यकता होगी। आप अपने कामकाज को अपडेट करके बाद में उस जानकारी को बदल सकते हैं; बूटकैंप के मॉड्यूल <a href="/hi//docs/tutorials/kubernetes-basics/scale/scale-intro/">5</a> और <a href="/hi/docs/tutorials/kubernetes-basics/update/update-intro/" >6</a> चर्चा करते हैं कि आप अपने डिप्लॉयमेंट को कैसे स्केल और अपडेट कर सकते हैं।</p>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i> कुबेरनेट्स पर डिप्लॉयड होने के लिए एप्लीकेशन को समर्थित कंटेनर प्रारूपों में से एक में पैक करने की आवश्यकता है </i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p>
|
||||
अपने पहले डिप्लॉयमेंट के लिए, आप एक डॉकर कंटेनर में पैक किए गए हैलो-नोड एप्लिकेशन का उपयोग करेंगे जो सभी अनुरोधों को प्रतिध्वनित करने के लिए NGINX का उपयोग करता है। (यदि आपने पहले से हैलो-नोड एप्लिकेशन बनाने और कंटेनर का उपयोग करके इसे तैनात करने का प्रयास नहीं किया है, तो आप पहले <a href="/hi/docs/tutorials/hello-minikube/">हेलो Minikube ट्यूटोरियल</a> के निर्देशों का पालन करके ऐसा कर सकते हैं)।
|
||||
<p>
|
||||
|
||||
<p>अब जब आप जानते हैं कि डिप्लॉयमेंट क्या हैं, तो चलिए ऑनलाइन ट्यूटोरियल पर चलते हैं और अपना पहला ऐप डिप्लॉय करते हैं!</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/hi/docs/tutorials/kubernetes-basics/deploy-app/deploy-interactive/" role="button">इंटरएक्टिव ट्यूटोरियल शुरू करें <span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: ऐप का अन्वेषण करें
|
||||
weight: 30
|
||||
---
|
|
@ -0,0 +1,43 @@
|
|||
---
|
||||
title: इंटरैक्टिव ट्यूटोरियल - अपने ऐप को अन्वेषण करना
|
||||
weight: 20
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="hi">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/overrides.css" rel="stylesheet">
|
||||
<script src="https://katacoda.com/embed.js"></script>
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content katacoda-content">
|
||||
|
||||
<br>
|
||||
<div class="katacoda">
|
||||
|
||||
<div class="katacoda__alert">
|
||||
टर्मिनल के साथ उपयोग करने के लिए, कृपया डेस्कटॉप/टैबलेट संस्करण का उपयोग करें
|
||||
</div>
|
||||
|
||||
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/4" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/hi/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/" role="button">< मॉड्यूल 2 पर लौटें<span class="btn"></span></a>
|
||||
<a class="btn btn-lg btn-success" href="/hi/docs/tutorials/kubernetes-basics/" role="button">होम<span class=""></span></a>
|
||||
<a class="btn btn-lg btn-success" href="/hi/docs/tutorials/kubernetes-basics/expose/expose-intro/" role="button">मॉड्यूल 4 पर जाएं ><span class="btn"></span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,143 @@
|
|||
---
|
||||
title: पॉड्स और नोड्स की जांच करना
|
||||
weight: 10
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="hi">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>उद्देश्य</h3>
|
||||
<ul>
|
||||
<li>कुबेरनेट्स पॉड्स के बारे में जानें।</li>
|
||||
<li>कुबेरनेट्स नोड्स के बारे में जानें।</li>
|
||||
<li>डिप्लॉयड एप्लीकेशन का समस्या निवारण करें।</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8">
|
||||
<h2>कुबेरनेट्स पॉड्स</h2>
|
||||
<p>जब आपने मॉड्यूल <a href="/hi/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/">2</a> में एक एप्लीकेशन बनाया, तो कुबेरनेट्स ने आपके एप्लिकेशन इंस्टेंस को होस्ट करने के लिए एक <b>पॉड</b> बनाया। पॉड एक कुबेरनेट्स एब्स्ट्रैक्शन है जो एक या अधिक एप्लिकेशन कंटेनरों (जैसे डॉकर) के समूह और उन कंटेनरों के लिए कुछ साझा संसाधनों का प्रतिनिधित्व करता है। उन संसाधनों में शामिल हैं:</p>
|
||||
<ul>
|
||||
<li>साझा स्टोरेज, वॉल्यूम के रूप में</li>
|
||||
<li>नेटवर्किंग, एक अद्वितीय क्लस्टर IP पते के रूप में</li>
|
||||
<li>प्रत्येक कंटेनर को चलाने के तरीके के बारे में जानकारी, जैसे कंटेनर इमेज संस्करण या उपयोग करने के लिए विशिष्ट पोर्ट</li>
|
||||
</ul>
|
||||
<p>एक पॉड एक एप्लिकेशन-विशिष्ट "लॉजिकल होस्ट" मॉडल करता है और इसमें विभिन्न एप्लिकेशन कंटेनर हो सकते हैं जो अपेक्षाकृत कसकर युग्मित होते हैं। उदाहरण के लिए, एक पॉड में आपके Node.js ऐप के साथ-साथ एक अलग कंटेनर दोनों शामिल हो सकते हैं जो Node.js वेबसर्वर द्वारा प्रकाशित किए जाने वाले डेटा को फीड करता है। पॉड में कंटेनर एक IP एड्रेस और पोर्ट स्पेस साझा करते हैं जो हमेशा सह-स्थित और सह-अनुसूचित होते हैं, और एक ही नोड पर एक साझा संदर्भ में चलते हैं।</p>
|
||||
|
||||
<p>कुबेरनेट्स प्लेटफॉर्म पर पॉड्स सबसे छोटे इकाई हैं। जब हम कुबेरनेट्स पर एक डिप्लॉयमेंट बनाते हैं, तो वह डिप्लॉयमेंट अपने अंदर कंटेनरों के साथ पॉड बनाता है (नाकि सीधे कंटेनर)। प्रत्येक पॉड उस नोड से जुड़ा होता है जहां वह निर्धारित होता है, और समाप्ति (रीस्टार्ट नीति के अनुसार) या विलोपन तक वहीं रहता है। नोड की विफलता के मामले में, क्लस्टर में अन्य उपलब्ध नोड्स पर समान पॉड्स शेड्यूल किए जाते हैं।</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_lined">
|
||||
<h3>सारांश:</h3>
|
||||
<ul>
|
||||
<li>पॉड्स</li>
|
||||
<li>नोड्स</li>
|
||||
<li>kubectl के मुख्य कमांड</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>
|
||||
एक पॉड एक या एक से अधिक एप्लिकेशन कंटेनरों (जैसे डॉकर) का एक समूह है और इसमें साझा स्टोरेज (वॉल्यूम), IP पता और उन्हें चलाने के तरीके के बारे में जानकारी शामिल होती है ।
|
||||
</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2 style="color: #3771e3;">पॉड्स अवलोकन</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_03_pods.svg"></p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2>नोड्स</h2>
|
||||
<p>एक पॉड हमेशा एक <b>नोड</b> पर चलता है। कुबेरनेट्स में एक नोड एक कार्यकर्ता मशीन है और क्लस्टर के आधार पर वर्चुअल या भौतिक मशीन हो सकती है। प्रत्येक नोड को कण्ट्रोल प्लेन द्वारा प्रबंधित किया जाता है। एक नोड में कई पॉड हो सकते हैं, और कुबेरनेट्स कंट्रोल प्लेन स्वचालित रूप से क्लस्टर में नोड्स में पॉड्स को शेड्यूल करने का काम संभालता है। कंट्रोल प्लेन का स्वचालित शेड्यूलिंग प्रत्येक नोड पर उपलब्ध संसाधनों को ध्यान में रखता है।</p>
|
||||
|
||||
<p>प्रत्येक कुबेरनेट्स नोड पर कम से कम ये चलते हैं:</p>
|
||||
<ul>
|
||||
<li>क्यूबलेट, कुबेरनेट्स कण्ट्रोल प्लेन और नोड के बीच संचार के लिए जिम्मेदार एक प्रक्रिया; यह पॉड्स और मशीन पर चलने वाले कंटेनरों का प्रबंधन करता है।</li>
|
||||
<li>एक कंटेनर रनटाइम (जैसे डॉकर), एक रजिस्ट्री से कंटेनर इमेज को पुल करने, कंटेनर को अनपैक करने और एप्लिकेशन चलाने के लिए।</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i> कंटेनरों को केवल एक ही पॉड में एक साथ शेड्यूल किया जाना चाहिए यदि वे कसकर युग्मित हैं और डिस्क जैसे संसाधनों को साझा करने की आवश्यकता है। </i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2 style="color: #3771e3;">नोड अवलोकन</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_03_nodes.svg"></p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2>kubectl के साथ समस्या निवारण</h2>
|
||||
<p>मॉड्यूल <a href="/hi/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/">2</a> में, आपने कमांड लाइन इंटरफ़ेस का उपयोग किया है। डेप्लॉयड एप्लीकेशन और उनके एनवायरनमेंट के बारे में जानकारी प्राप्त करने के लिए आप मॉड्यूल 3 में इसका उपयोग करना जारी रखेंगे। सबसे आम ऑपरेशन निम्नलिखित kubectl कमांड के साथ किया जा सकता है:</p>
|
||||
<ul>
|
||||
<li><b>kubectl get</b> - संसाधनों की सूची बनाएं</li>
|
||||
<li><b>kubectl describe</b> - संसाधन के बारे में विस्तृत जानकारी दिखाएं</li>
|
||||
<li><b>kubectl logs</b> - पॉड में कंटेनर के लॉग प्रिंट करें</li>
|
||||
<li><b>kubectl exec</b> - पॉड में कंटेनर पर कमांड चलाए</li>
|
||||
</ul>
|
||||
|
||||
<p>आप इन कमांड का उपयोग यह देखने के लिए कर सकते हैं कि एप्लिकेशन कब डिप्लॉय किए गए थे, उनकी वर्तमान स्थिति क्या है, वे कहां चल रहे हैं और उनके कॉन्फ़िगरेशन क्या हैं।</p>
|
||||
|
||||
<p>अब जब हम अपने क्लस्टर कॉम्पोनेन्ट और कमांड लाइन के बारे में जानते हैं, तो आइए हमारे एप्लिकेशन को देखें।</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i> कुबेरनेट्स में एक नोड एक कार्यकर्ता मशीन है और क्लस्टर के आधार पर एक वीएम या वर्चुअल मशीन हो सकती है। एक नोड पर कई पॉड चल सकते हैं। </i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/hi/docs/tutorials/kubernetes-basics/explore/explore-interactive/" role="button">इंटरएक्टिव ट्यूटोरियल शुरू करें <span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: अपने ऐप को सार्वजनिक रूप से एक्सपोस करें
|
||||
weight: 40
|
||||
---
|
|
@ -0,0 +1,40 @@
|
|||
---
|
||||
title: इंटरएक्टिव ट्यूटोरियल - अपने ऐप को एक्सपोज़ करना
|
||||
weight: 20
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="hi">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/overrides.css" rel="stylesheet">
|
||||
<script src="https://katacoda.com/embed.js"></script>
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content katacoda-content">
|
||||
|
||||
<div class="katacoda">
|
||||
<div class="katacoda__alert">
|
||||
टर्मिनल का उपयोग करने के लिए, कृपया डेस्कटॉप या टैबलेट संस्करण का उपयोग करें
|
||||
</div>
|
||||
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/8" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/hi/docs/tutorials/kubernetes-basics/explore/explore-intro/" role="button">< मॉड्यूल 3 पर लौटें<span class=""></span></a>
|
||||
<a class="btn btn-lg btn-success" href="/hi/docs/tutorials/kubernetes-basics/" role="button">होम<span class=""></span></a>
|
||||
<a class="btn btn-lg btn-success" href="/hi/docs/tutorials/kubernetes-basics/scale/scale-intro/" role="button">मॉड्यूल 5 पर जाएं ><span class=""></span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,114 @@
|
|||
---
|
||||
title: अपने ऐप को एक्सपोज़ करने के लिए किसी सर्विस का उपयोग करना
|
||||
weight: 10
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="hi">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h3>उद्देश्य</h3>
|
||||
<ul>
|
||||
<li>कुबेरनेट्स में सर्विस के बारे में जानें</li>
|
||||
<li>समझें कि लेबल और लेबल चयनकर्ता ऑब्जेक्ट किसी सर्विस से कैसे संबंधित हैं</li>
|
||||
<li>सर्विस का उपयोग करके कुबेरनेट्स क्लस्टर के बाहर किसी एप्लिकेशन को एक्सपोज़ करें</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>कुबेरनेट्स सर्विसों का अवलोकन</h3>
|
||||
|
||||
<p>कुबेरनेट्स <a href="/docs/concepts/workloads/pods/">पॉड्स</a> नश्वर हैं। पॉड में वास्तव में एक <a href="/docs/concepts/workloads/pods/pod-lifecycle/">जीवनचक्र</a> होता है। जब एक कार्यकर्ता नोड बंद हो जाता है, तो नोड पर चलने वाले पॉड भी खो जाते हैं। एक <a href="/docs/concepts/workloads/controllers/replicaset/">रेप्लिकासेट</a> तब आपके एप्लिकेशन को चालू रखने के लिए नए पॉड्स के निर्माण करके क्लस्टर को वांछित स्थिति में वापस चला सकता है। एक अन्य उदाहरण के रूप में, 3 रेप्लिका के साथ एक इमेज प्रोसेसिंग बैकएंड पर विचार करें। वे रेप्लिका विनिमेय हैं; फ्रंट-एंड सिस्टम को बैकएंड रेप्लिका की परवाह नहीं करनी चाहिए या भले ही पॉड खो जाए और फिर से बनाया जाए। कुबेरनेट्स क्लस्टर में प्रत्येक पॉड का एक अद्वितीय IP पता होता है, यहां तक कि एक ही नोड पर पॉड्स के भी, इसलिए पॉड्स के बीच परिवर्तनों को स्वचालित रूप से समेटने का एक तरीका होना चाहिए ताकि आपके एप्लिकेशन कार्य करना जारी रखें।</p>
|
||||
|
||||
<p>कुबेरनेट्स में सर्विस एक अमूर्त है जो पॉड्स के तार्किक सेट और उन्हें एक्सेस करने के लिए एक निति परिभाषित करता है। सर्विस निर्भर पॉड्स के बीच एक युग्मन को सक्षम करती है। सभी कुबेरनेट्स ऑब्जेक्ट्स की तरह YAML <a href="/docs/concepts/configuration/overview/#general-configuration-tips">(अधिमानित)</a> या JSON का उपयोग करके एक सर्विस को परिभाषित किया जाता है। सर्विस द्वारा लक्षित पॉड्स का सेट आमतौर पर एक <i>लेबल सेलेक्टर</i> द्वारा निर्धारित किया जाता है (नीचे देखें कि आप <code>selector</code> शामिल किए बिना सर्विस क्यों उपयोग करना चाहेंगे।)</p>
|
||||
|
||||
<p>यद्यपि प्रत्येक पॉड का एक विशिष्ट आईपी पता होता है, लेकिन उन आईपी को सर्विस के बिना क्लस्टर के बाहर उजागर नहीं किया जाता है। सर्विस आपके एप्लिकेशन को ट्रैफ़िक प्राप्त करने देती हैं। ServiceSpec: में <code>type</code> निर्दिष्ट करके सर्विसों को अलग-अलग तरीकों से उजागर किया जा सकता है:</p>
|
||||
|
||||
<ul>
|
||||
<li><is>क्लस्टर IP</in> (डिफ़ॉल्ट) - क्लस्टर में किसी आंतरिक IP पर सर्विस को एक्सपोज़ करें। यह प्रकार सर्विस को केवल क्लस्टर के भीतर से ही पहुंच योग्य बनाता है।</li>
|
||||
|
||||
<li><i>नोडपोर्ट</i> - NAT का उपयोग करके क्लस्टर में प्रत्येक चयनित नोड के एक ही पोर्ट पर सेवा को प्रदर्शित करता है। <code><NodeIP>:<NodePort></code> का उपयोग करके किसी सेवा को क्लस्टर के बाहर से एक्सेस योग्य बनाता है। क्लस्टरआईपी का सुपरसेट।</li>
|
||||
|
||||
<li><i>लोड बैलेंसर</i> - मौजूदा क्लाउड (यदि समर्थित हो) में एक बाहरी लोड बैलेंसर बनाता है और सर्विस को एक निश्चित, बाहरी आईपी असाइन करता है। नोडपोर्ट का सुपरसेट।</li>
|
||||
|
||||
<li><i>एक्सटर्नल-नाम</i> - सेवा को <code>externalName</code> फ़ील्ड (जैसे <code>foo.bar.example.com</code>) की सामग्री से मैप करता है, एक लौटाकर <code>CNAME</code> अपने मान के साथ रिकॉर्ड करें। किसी भी प्रकार का कोई प्रॉक्सी सेट अप नहीं किया गया है। इस प्रकार के लिए v1.7 या उच्चतर <code>kube-dns</code>, या कोरडीएनएस संस्करण 0.0.8 या उच्चतर की आवश्यकता होती है।</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>विभिन्न प्रकार की सर्विसओं के बारे में अधिक जानकारी <a href="/docs/tutorials/services/source-ip/">स्रोत आईपी का उपयोग करना</a> ट्यूटोरियल में मिल सकती है। <a href="/docs/concepts/services-networking/connect-applications-service">एप्लिकेशन को सर्विसओं से जोड़ना</a> भी देखें।</p>
|
||||
|
||||
<p>इसके अतिरिक्त, ध्यान दें कि सर्विसओं के साथ कुछ उपयोग के मामले हैं जिनमें विनिर्देश में <code>selector</code> को परिभाषित नहीं करना शामिल है। <code>selector</code> के बिना बनाई गई सर्विस भी अनुरूप एंडपॉइन्ट ऑब्जेक्ट नहीं बनाएगी। यह उपयोगकर्ताओं को विशिष्ट एंडपॉइन्ट के लिए किसी सर्विस को मैन्युअल रूप से मैप करने की अनुमति देता है। एक और संभावना है कि कोई सलेक्टर क्यों नहीं हो सकता है, कि आप सख्ती से <code>type: ExternalName</code> का उपयोग कर रहे हैं।</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_lined">
|
||||
<h3>सारांश</h3>
|
||||
<ul>
|
||||
<li>पॉड्स को बाहरी ट्रैफ़िक में एक्सपोज़ करना</li>
|
||||
<li>एकाधिक पॉड्स में संतुलन ट्रैफ़िक लोड करें</li>
|
||||
<li>लेबल का उपयोग</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>कुबेरनेट्स सर्विस एक अमूर्त परत है जो पॉड्स के तार्किक सेट को परिभाषित करती है और उन पॉड्स के लिए बाहरी ट्रैफ़िक एक्सपोज़र, लोड बैलेंसिंग और सर्विस डिस्कवरी को सक्षम बनाती है।</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h3>सेवाएं और लेबल</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p>सेवा पॉड्स के एक सेट पर ट्रैफ़िक को रूट करती है। सेवाएँ अमूर्त हैं जो आपके एप्लिकेशन को प्रभावित किए बिना पॉड्स को कुबेरनेट्स में मरने और दोहराने की अनुमति देती हैं। निर्भर पॉड्स के बीच डिस्कवरी और रूटिंग (जैसे कि किसी एप्लिकेशन में फ्रंटएंड और बैकएंड कंपोनेंट्स) को कुबेरनेट्स सर्विसेज द्वारा नियंत्रित किया जाता है।</p>
|
||||
|
||||
<p>सर्विस <a href="/docs/concepts/overview/working-with-objects/labels">लेबल और चयनकर्ताओं</a> का उपयोग करके पॉड्स के एक सेट से मेल खाती हैं, एक समूहबद्ध आदिम जो Kubernetes में ऑब्जेक्ट पर तार्किक संचालन की अनुमति देता है . लेबल वस्तुओं से जुड़े कुंजी/मूल्य जोड़े होते हैं और इन्हें किसी भी तरह से उपयोग किया जा सकता है:</p>
|
||||
|
||||
<ul>
|
||||
<li>डिप्लॉयमेंट,परीक्षण और प्रोडक्शन के लिए वस्तुओं को नामित करें</li>
|
||||
<li>संस्करण टैग जोड़ें</li>
|
||||
<li>टैग का उपयोग करके ऑब्जेक्ट्स को वर्गीकृत करें</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_04_labels.svg"></p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p>लेबल को निर्माण के समय या बाद में ऑब्जेक्ट्स से जोड़ा जा सकता है। उन्हें किसी भी समय परिवर्तित किया जा सकता है। आइए अब सर्विस का उपयोग करके हमारे ऐप को एक्सपोज़ करें और कुछ लेबल लागू करें।</p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/expose/expose-interactive/" role="button">इंटरएक्टिव ट्यूटोरियल शुरू करें<span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: अपने ऐप को स्केल करें
|
||||
weight: 50
|
||||
---
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
title: इंटरएक्टिव ट्यूटोरियल - अपने ऐप को स्केल करना
|
||||
weight: 20
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="hi">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/overrides.css" rel="stylesheet">
|
||||
<script src="https://katacoda.com/embed.js"></script>
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content katacoda-content">
|
||||
|
||||
<div class="katacoda">
|
||||
<div class="katacoda__alert">
|
||||
टर्मिनल के साथ बातचीत करने के लिए, कृपया डेस्कटॉप/टैबलेट संस्करण का उपयोग करें
|
||||
</div>
|
||||
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/5" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/expose/expose-interactive/" role="button">< मॉड्यूल 4 पर लौटें<span class=""></span></a>
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/" role="button">होम<span class=""></span></a>
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/update/update-intro/" role="button">मॉड्यूल 6 पर आगे बढ़ें ><span class=""></span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
<a class="scrolltop" href="#top"></a>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,121 @@
|
|||
---
|
||||
title: अपने ऐप के कई इंस्टेंस चलाना
|
||||
weight: 10
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="hi">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>उद्देश्य</h3>
|
||||
<ul>
|
||||
<li>kubectl का उपयोग करके किसी ऐप को स्केल करें।</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>एक एप्लीकेशन को स्केल करना</h3>
|
||||
|
||||
<p>पिछले मॉड्यूल में हमने एक <a href="/docs/concepts/workloads/controllers/deployment/">डिप्लॉयमेंट</a> बनाया और इसे <a href="/docs/concepts/services-networking/service/">सर्विस</a> के माध्यम से सार्वजनिक रूप से प्रदर्शित किया। डिप्लॉयमेंट ने हमारे एप्लिकेशन को चलाने के लिए केवल एक पॉड बनाया। जब ट्रैफ़िक बढ़ता है, तो हमें उपयोगकर्ता की मांग को पूरा करने के लिए एप्लिकेशन को स्केल करना होता है।</p>
|
||||
|
||||
<p>डिप्लॉयमेंट में रेप्लिका की संख्या को बदलकर <b>स्केलिंग</b> पूरा किया जाता है</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_lined">
|
||||
<h3>सारांश:</h3>
|
||||
<ul>
|
||||
<li>एक डिप्लॉयमेंट को स्केल करना</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>आप kubectl create deployment कमांड के लिए --replicas पैरामीटर का उपयोग करके कई इंस्टेंस के साथ एक डिप्लॉयमेंट शुरू से बना सकते हैं।</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2 style="color: #3771e3;">स्केलिंग अवलोकन</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-1"></div>
|
||||
<div class="col-md-8">
|
||||
<div id="myCarousel" class="carousel" data-ride="carousel" data-interval="3000">
|
||||
<ol class="carousel-indicators">
|
||||
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="1"></li>
|
||||
</ol>
|
||||
<div class="carousel-inner" role="listbox">
|
||||
<div class="item carousel-item active">
|
||||
<img src="/docs/tutorials/kubernetes-basics/public/images/module_05_scaling1.svg">
|
||||
</div>
|
||||
|
||||
<div class="item carousel-item">
|
||||
<img src="/docs/tutorials/kubernetes-basics/public/images/module_05_scaling2.svg">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
|
||||
<span class="sr-only ">पिछला</span>
|
||||
</a>
|
||||
<a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
|
||||
<span class="sr-only">अगला</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
|
||||
<p>एक डिप्लॉयमेंट को स्केल करना यह सुनिश्चित करेगा कि नए पॉड बनाए गए हैं और उपलब्ध संसाधनों के साथ नोड्स के लिए शेड्यूल किए गए हैं। स्केलिंग से पॉड्स की संख्या नई वांछित स्थिति में बढ़ जाएगी। कुबेरनेट्स पॉड्स के <a href="/docs/user-guide/horizontal-pod-autoscaling/">ऑटोस्केलिंग</a> का भी समर्थन करता है, लेकिन यह इस ट्यूटोरियल के दायरे से बाहर है। शून्य पर स्केलिंग भी संभव है, और यह निर्दिष्ट डिप्लॉयमेंट के सभी पॉड्स को समाप्त कर देगा।</p>
|
||||
|
||||
<p>किसी एप्लिकेशन के कई इंस्टेंस को चलाने के लिए उन सभी को ट्रैफ़िक वितरित करने के तरीके की आवश्यकता होगी। सर्विसों में एक एकीकृत लोड-बैलेंसर होता है जो एक एक्सपोज्ड डिप्लॉयमेंट के सभी पॉड्स को नेटवर्क ट्रैफ़िक वितरित करेगा। सर्विसे एंडपॉइंट्स का उपयोग करते हुए रनिंग पॉड्स की लगातार निगरानी करेंगी यह सुनिश्चित करने के लिए कि ट्रैफ़िक केवल उपलब्ध पॉड्स को ही भेजा जाए।</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>डिप्लॉयमेंट में रेप्लिका की संख्या को बदलकर स्केलिंग को पूरा किया जाता है।</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p>एक बार जब आपके पास किसी एप्लिकेशन के चलने के कई इंस्टेंस हैं, तो आप डाउनटाइम के बिना रोलिंग अपडेट करने में सक्षम होंगे। हम इसे अगले मॉड्यूल में करेंगे। अब, ऑनलाइन टर्मिनल पर चलते हैं और हमारे एप्लिकेशन को स्केल करते हैं।</p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/scale/scale-interactive/" role="button">इंटरएक्टिव ट्यूटोरियल शुरू करें<span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: अपना ऐप अपडेट करें
|
||||
weight: 60
|
||||
---
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
title: इंटरएक्टिव ट्यूटोरियल - अपने ऐप को अपडेट करना
|
||||
weight: 20
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="hi">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/overrides.css" rel="stylesheet">
|
||||
<script src="https://katacoda.com/embed.js"></script>
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content katacoda-content">
|
||||
|
||||
<div class="katacoda">
|
||||
<div class="katacoda__alert">
|
||||
टर्मिनल का उपयोग करने के लिए, कृपया डेस्कटॉप या टैबलेट मोड का उपयोग करें
|
||||
</div>
|
||||
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/6" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/scale/scale-interactive/" role="button">< मॉड्यूल 5 पर वापस जाएं<span class=""></span></a>
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/" role="button">मुलभुत कुबेरनेट्स पर लौटें<span class=""></span></a>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
---
|
||||
title: रोलिंग अपडेट करना
|
||||
weight: 10
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="hi">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>उद्देश्य</h3>
|
||||
<ul>
|
||||
<li>kubectl का उपयोग करके रोलिंग अपडेट करें।</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>एप्लिकेशन को अपडेट करना</h3>
|
||||
|
||||
<p>उपयोगकर्ता उम्मीद करते हैं कि एप्लिकेशन हर समय उपलब्ध रहेंगे और डेवलपर्स से दिन में कई बार उनके नए संस्करणों को डिप्लॉय करने की अपेक्षा की जाती है। कुबेरनेट्स में यह रोलिंग अपडेट के साथ किया जाता है। <b>रोलिंग अपडेट</b> पॉड को नए इंस्टेंस के साथ अपडेट करके शून्य डाउनटाइम के साथ डिप्लॉयमेंट अपडेट को सक्षम करता है। नए पॉड्स उपलब्ध संसाधनों के साथ नोड्स पर शेड्यूल किए जाएंगे।</p>
|
||||
|
||||
<p>पिछले मॉड्यूल में हमने कई इंस्टेंस चलाने के लिए अपने एप्लिकेशन को स्केल किया था। एप्लिकेशन की उपलब्धता को प्रभावित किए बिना अपडेट करने के लिए यह आवश्यक है। डिफ़ॉल्ट रूप से, अपदटेस के दौरान अनुपलब्ध पॉड्स की अधिकतम संख्या और बनाए जा सकने वाले नए पॉड्स की अधिकतम संख्या एक है। दोनों विकल्पों को या तो संख्या या (पॉड्स के) प्रतिशत में कॉन्फ़िगर किया जा सकता है।
|
||||
कुबेरनेट्स में, अपदटेस को संस्करणबद्ध किया जाता है और किसी भी डिप्लॉयमेंट अपदटेस को पिछले (स्थिर) संस्करण में वापस लाया जा सकता है।</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_lined">
|
||||
<h3>सारांश:</h3>
|
||||
<ul>
|
||||
<li>ऐप अपडेट करना</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>रोलिंग अपडेट पॉड्स को नए इंस्टेंस के साथ अपडेट करके डिप्लॉयमेंट के अपडेट को शून्य डाउनटाइम के साथ होने देता है।</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2 style="color: #3771e3;">रोलिंग अपडेट अवलोकन</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-1"></div>
|
||||
<div class="col-md-8">
|
||||
<div id="myCarousel" class="carousel" data-ride="carousel" data-interval="3000">
|
||||
<ol class="carousel-indicators">
|
||||
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="1"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="2"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="3"></li>
|
||||
</ol>
|
||||
<div class="carousel-inner" role="listbox">
|
||||
<div class="item carousel-item active">
|
||||
<img src="/docs/tutorials/kubernetes-basics/public/images/module_06_rollingupdates1.svg" >
|
||||
</div>
|
||||
|
||||
<div class="item carousel-item">
|
||||
<img src="/docs/tutorials/kubernetes-basics/public/images/module_06_rollingupdates2.svg">
|
||||
</div>
|
||||
|
||||
<div class="item carousel-item">
|
||||
<img src="/docs/tutorials/kubernetes-basics/public/images/module_06_rollingupdates3.svg">
|
||||
</div>
|
||||
|
||||
<div class="item carousel-item">
|
||||
<img src="/docs/tutorials/kubernetes-basics/public/images/module_06_rollingupdates4.svg">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
|
||||
<span class="sr-only ">पिछला</span>
|
||||
</a>
|
||||
<a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
|
||||
<span class="sr-only">अगला</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
|
||||
<p>एप्लिकेशन स्केलिंग के समान, यदि कोई डिप्लॉयमेंट सार्वजनिक रूप से एक्सपोज़ होता है, तो सर्विस केवल अपडेट के दौरान उपलब्ध पॉड्स पर ट्रैफ़िक को लोड-बैलेंस करेगी। उपलब्ध पॉड एक इंस्टेंस है जो एप्लिकेशन के उपयोगकर्ताओं के लिए उपलब्ध है।</p>
|
||||
|
||||
<p>रोलिंग अपडेट निम्नलिखित क्रियाओं की अनुमति देते हैं:</p>
|
||||
<ul>
|
||||
<li>किसी एप्लिकेशन को एक एनवायरनमेंट से दूसरे एनवायरनमेंट में प्रचारित करें (कंटेनर इमेज अपडेट के माध्यम से)</li>
|
||||
<li>पिछले संस्करणों में रोलबैक करें</li>
|
||||
<li>शून्य डाउनटाइम के साथ एप्लीकेशन का निरंतर इंटीग्रेशन और निरंतर डिलीवरी</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>यदि कोई डिप्लॉयमेंट सार्वजनिक रूप से प्रकट होता है, तो सर्विस अपडेट के दौरान केवल उपलब्ध पॉड्स पर ट्रैफ़िक लोड-बैलेंस करेगी।</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p>निम्नलिखित इंटरैक्टिव ट्यूटोरियल में हम अपने एप्लिकेशन को एक नए संस्करण में अपडेट और रोलबैक करेंगे। </p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/update/update-interactive/" role="button">इंटरएक्टिव ट्यूटोरियल शुरू करें<span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,8 @@
|
|||
आपको कुबरनेट्स क्लस्टर की ज़रूरत पड़ेगी और क्यूब सीटीएल कमांड लाइन साधन को
|
||||
समनुरूप करना होगा ताकि वो आपके क्लस्टर के साथ संवाद कर सकें। हमारी सलाह है की इस टुटोरिअल को क्लस्टर में रन करने के लिए कम से कम दो नोड का इस्तेमाल करे जो कि कंट्रोल प्लेन
|
||||
होस्ट के तरह ना एक्ट करे। अगर आपके पास पहले से क्लस्टर नही है, आप
|
||||
[minikube](https://minikube.sigs.k8s.io/docs/tutorials/multi_node/)
|
||||
की मदद से वह बना सकते है या आप नीचे दिए हुए इन दो कुबरनेट्स प्लेग्राउंड का इस्तेमाल कर सकते हैं:
|
||||
|
||||
* [Katacoda](https://www.katacoda.com/courses/kubernetes/playground)
|
||||
* [प्ले विथ कुबेरनेट्स](http://labs.play-with-k8s.com/)
|
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
linktitle: रिलीज़ इतिहास
|
||||
title: रिलीज़
|
||||
type: docs
|
||||
---
|
||||
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
कुबेरनेट्स परियोजना हाल के तीन छोटी रिलीज़ ({{< skew latestVersion >}}, {{< skew prevMinorVersion >}}, {{< skew oldestMinorVersion >}}) के रिलीज़ शाखाओं को बनाए रखती है। कुबेरनेट्स 1.19 और उसके बाद के नए रिलीज़ को लगभग 1 वर्ष का पैच समर्थन प्राप्त होता है। कुबेरनेट्स 1.18 और पुराने रिलीज़ को लगभग 9 महीने का पैच समर्थन मिला।
|
||||
|
||||
कुबेरनेट्स संस्करण **x.y.z** के रूप में व्यक्त किए जाते हैं,
|
||||
जहां **x** प्रमुख संस्करण है, **y** लघु संस्करण है, और **z** [सिमेंटिक वर्जनिंग](https://semver.org/) शब्दावली का पालन करते हुए पैच संस्करण है।
|
||||
|
||||
अधिक जानकारी [संस्करण की स्क्यू नीति](/releases/version-skew-policy/) दस्तावेज़ में है।
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## रिलीज़ इतिहास
|
||||
|
||||
{{< release-data >}}
|
||||
|
||||
## आगामी रिलीज़
|
||||
|
||||
आने वाले **{{< skew nextMinorVersion >}}** कुबेरनेट्स रिलीज़ का [कार्यक्रम](https://github.com/kubernetes/sig-release/tree/master/releases/release-{{< skew nextMinorVersion >}}) देखें।
|
||||
|
||||
## सहायक संसाधन
|
|
@ -18,6 +18,6 @@ APIを起点とした退避は、[Eviction API](/docs/reference/generated/kubern
|
|||
|
||||
APIを起点とした退避は[`PodDisruptionBudgets`](/docs/tasks/run-application/configure-pdb/)と[`terminationGracePeriodSeconds`](/ja/docs/concepts/workloads/pods/pod-lifecycle#pod-termination)の設定を優先します。
|
||||
|
||||
APIを起点とした退避は、[Node不足による退避](/docs/concepts/scheduling-eviction/eviction/#kubelet-eviction)とは異なります。
|
||||
APIを起点とした退避は、[Node不足による退避](/docs/concepts/scheduling-eviction/node-pressure-eviction/)とは異なります。
|
||||
|
||||
* 詳しくは[APIを起点とした退避](/ja/docs/concepts/scheduling-eviction/api-eviction/)をご覧ください。
|
||||
|
|
|
@ -0,0 +1,212 @@
|
|||
---
|
||||
layout: blog
|
||||
title: "聚焦 SIG Usability"
|
||||
date: 2021-07-15
|
||||
slug: sig-usability-spotlight-2021
|
||||
---
|
||||
<!--
|
||||
layout: blog
|
||||
title: "Spotlight on SIG Usability"
|
||||
date: 2021-07-15
|
||||
slug: sig-usability-spotlight-2021
|
||||
-->
|
||||
|
||||
<!--
|
||||
**Author:** Kunal Kushwaha, Civo
|
||||
-->
|
||||
**作者:** Kunal Kushwaha、Civo
|
||||
|
||||
<!--
|
||||
## Introduction
|
||||
-->
|
||||
## 介绍
|
||||
|
||||
<!--
|
||||
Are you interested in learning about what [SIG Usability](https://github.com/kubernetes/community/tree/master/sig-usability) does
|
||||
and how you can get involved? Well, you're at the right place.
|
||||
SIG Usability is all about making Kubernetes more accessible to new folks, and its main activity is conducting user research for the community.
|
||||
In this blog, we have summarized our conversation with [Gaby Moreno](https://twitter.com/morengab),
|
||||
who walks us through the various aspects of being a part of the SIG and shares some insights about how others can get involved.
|
||||
-->
|
||||
你是否有兴趣了解 [SIG Usability](https://github.com/kubernetes/community/tree/master/sig-usability) 做什么?
|
||||
你是否想知道如何参与?那你来对地方了。
|
||||
SIG Usability 旨在让 Kubernetes 更易于触达新的伙伴,其主要活动是针对社区实施用户调研。
|
||||
在本博客中,我们总结了与 Gaby Moreno 的对话,
|
||||
他向我们介绍了成为 SIG 成员的各个方面,并分享了一些关于其他人如何参与的见解。
|
||||
|
||||
<!--
|
||||
Gaby is a co-lead for SIG Usability.
|
||||
She works as a Product Designer at IBM and enjoys working on the user experience of open,
|
||||
hybrid cloud technologies like Kubernetes, OpenShift, Terraform, and Cloud Foundry.
|
||||
-->
|
||||
Gaby 是 SIG Usability 的联合负责人。
|
||||
她在 IBM 担任产品设计师,
|
||||
喜欢研究 Kubernetes、OpenShift、Terraform 和 Cloud Foundry 等开放式混合云技术的用户体验。
|
||||
|
||||
<!--
|
||||
## A summary of our conversation
|
||||
-->
|
||||
## 我们谈话的摘要
|
||||
|
||||
<!--
|
||||
### Q. Could you tell us a little about what SIG Usability does?
|
||||
-->
|
||||
### 问:你能告诉我们一些关于 SIG Usability 的事情吗?
|
||||
|
||||
<!--
|
||||
A. SIG Usability at a high level started because there was no dedicated user experience team for Kubernetes.
|
||||
The extent of SIG Usability is focussed on the end-client ease of use of the Kubernetes project.
|
||||
The main activity is user research for the community, which includes speaking to Kubernetes users.
|
||||
-->
|
||||
答:简单而言,启动 SIG Usability 的原因是那时 Kubernetes 没有专门的用户体验团队。
|
||||
SIG Usability 的关注领域集中在为 Kubernetes 项目最终客户提供的易用性上。
|
||||
主要活动是社区的用户调研,包括对 Kubernetes 用户宣讲。
|
||||
|
||||
<!--
|
||||
This covers points like user experience and accessibility.
|
||||
The objectives of the SIG are to guarantee that the Kubernetes project is maximally usable by people of a wide range of foundations and capacities,
|
||||
such as incorporating internationalization and ensuring the openness of documentation.
|
||||
-->
|
||||
所涉及的包括用户体验和可访问性等方面。
|
||||
SIG 的目标是确保 Kubernetes 项目能够最大限度地被具有各类不同基础和能力的人使用,
|
||||
例如引入文档的国际化并确保其开放性。
|
||||
|
||||
<!--
|
||||
### Q. Why should new and existing contributors consider joining SIG Usability?
|
||||
-->
|
||||
### 问:为什么新的和现有的贡献者应该考虑加入 SIG Usability?
|
||||
|
||||
<!--
|
||||
A. There are plenty of territories where new contributors can begin. For example:
|
||||
-->
|
||||
答:新的贡献者可以在很多领域着手。例如:
|
||||
<!--
|
||||
- User research projects, where people can help understand the usability of the end-user experiences, including error messages, end-to-end tasks, etc.
|
||||
-->
|
||||
- 用户研究项目可以让人们帮助了解最终用户体验的可用性,包括错误消息、端到端任务等。
|
||||
<!--
|
||||
- Accessibility guidelines for Kubernetes community artifacts, examples include:
|
||||
internationalization of documentation, color choices for people with color blindness, ensuring compatibility with screen reader technology,
|
||||
user interface design for core components with user interfaces, and more.
|
||||
-->
|
||||
- Kubernetes 社区组件的可访问性指南,包括:文档的国际化、色盲人群的颜色选择、
|
||||
确保与屏幕阅读器技术的兼容性、核心 UI 组件的用户界面设计等等。
|
||||
|
||||
<!--
|
||||
### Q. What do you do to help new contributors get started?
|
||||
-->
|
||||
### 问:如何帮助新的贡献者入门?
|
||||
|
||||
<!--
|
||||
A. New contributors can get started by shadowing one of the user interviews, going through user interview transcripts, analyzing them, and designing surveys.
|
||||
-->
|
||||
答:新的贡献者们刚开始可以旁观参与其中一个用户访谈,浏览用户访谈记录,分析这些记录并设计调查过程。
|
||||
|
||||
<!--
|
||||
SIG Usability is also open to new project ideas.
|
||||
If you have an idea, we’ll do what we can to support it.
|
||||
There are regular SIG Meetings where people can ask their questions live.
|
||||
These meetings are also recorded for those who may not be able to attend.
|
||||
As always, you can reach out to us on Slack as well.
|
||||
-->
|
||||
SIG Usability 也对新的项目想法持开放态度。
|
||||
如果你有想法,我们将尽我们所能支持它。
|
||||
我们有定期的 SIG 会议,人们可以现场提问。
|
||||
这些会议也会录制会议视频,方便那些可能无法参会的人。
|
||||
与往常一样,你也可以在 Slack 上与我们联系。
|
||||
|
||||
<!--
|
||||
### Q. What does the survey include?
|
||||
-->
|
||||
### 问:调查包括什么?
|
||||
|
||||
<!--
|
||||
A. In simple terms, the survey gathers information about how people use Kubernetes,
|
||||
such as trends in learning to deploy a new system, error messages they receive, and workflows.
|
||||
-->
|
||||
答:简单来说,调查会收集人们如何使用 Kubernetes 的信息,
|
||||
例如学习部署新系统的趋势、他们收到的错误消息和工作流程。
|
||||
|
||||
<!--
|
||||
One of our goals is to standardize the responses accordingly.
|
||||
The ultimate goal is to analyze survey responses for important user stories whose needs aren't being met.
|
||||
-->
|
||||
我们的目标之一是根据需要对反馈进行标准化。
|
||||
最终目标是分析那些需求没有得到满足的重要用户故事的调查反馈。
|
||||
|
||||
<!--
|
||||
### Q. Are there any particular skills you’d like to recruit for? What skills are contributors to SIG Usability likely to learn?
|
||||
-->
|
||||
### 问:招募贡献者时你希望他们具备什么特别的技能吗?SIG Usability 的贡献者可能要学习哪些技能?
|
||||
|
||||
<!--
|
||||
A. Although contributing to SIG Usability does not have any pre-requisites as such,
|
||||
experience with user research, qualitative research, or prior experience with how to conduct an interview would be great plus points.
|
||||
Quantitative research, like survey design and screening, is also helpful and something that we expect contributors to learn.
|
||||
-->
|
||||
答:虽然为 SIG Usability 做贡献没有任何先决条件,
|
||||
但用户研究、定性研究的经验或之前如何进行访谈的经验将是很好的加分项。
|
||||
定量研究,如调查设计和筛选,也很有帮助,也是我们希望贡献者学习的东西。
|
||||
|
||||
<!--
|
||||
### Q. What are you getting positive feedback on, and what’s coming up next for SIG Usability?
|
||||
-->
|
||||
### 问:您在哪些方面获得了积极的反馈,以及 SIG Usability 接下来会发生什么?
|
||||
|
||||
<!--
|
||||
A. We have had new members joining and coming to monthly meetings regularly and showing interests in becoming a contributor and helping the community.
|
||||
We have also had a lot of people reach out to us via Slack showcasing their interest in the SIG.
|
||||
-->
|
||||
答:我们一直有新成员加入并经常参加月度会议,并表现出对成为贡献者和帮助社区的兴趣。
|
||||
我们也有很多人通过 Slack 与我们联系,表达他们对 SIG 的兴趣。
|
||||
|
||||
<!--
|
||||
Currently, we are focused on finishing the study mentioned in our [talk](https://www.youtube.com/watch?v=Byn0N_ZstE0),
|
||||
also our project for this year. We are always happy to have new contributors join us.
|
||||
-->
|
||||
目前,我们正专注于完成我们[演讲](https://www.youtube.com/watch?v=Byn0N_ZstE0)中提到的调研,
|
||||
也是我们今年的项目。我们总是很高兴有新的贡献者加入我们。
|
||||
|
||||
<!--
|
||||
### Q: Any closing thoughts/resources you’d like to share?
|
||||
-->
|
||||
### 问:在结束之前,你还有什么想法/资源要分享吗?
|
||||
|
||||
<!--
|
||||
A. We love meeting new contributors and assisting them in investigating different Kubernetes project spaces.
|
||||
We will work with and team up with other SIGs to facilitate engaging with end-users, running studies,
|
||||
and help them integrate accessible design practices into their development practices.
|
||||
-->
|
||||
答:我们喜欢结识新的贡献者并帮助他们研究不同的 Kubernetes 项目领域。
|
||||
我们将与其他 SIG 合作,以促进与最终用户的互动,开展调研,并帮助他们将可访问的设计实践整合到他们的开发实践中。
|
||||
|
||||
<!--
|
||||
Here are some resources for you to get started:
|
||||
- [GitHub](https://github.com/kubernetes/community/tree/master/sig-usability)
|
||||
- [Mailing list](https://groups.google.com/g/kubernetes-sig-usability)
|
||||
- [Open Community Issues/PRs](https://github.com/kubernetes/community/labels/sig%2Fusability)
|
||||
- [Slack](https://slack.k8s.io/)
|
||||
- [Slack channel #sig-usability](https://kubernetes.slack.com/archives/CLC5EF63T)
|
||||
-->
|
||||
这里有一些资源供你入门:
|
||||
- [GitHub](https://github.com/kubernetes/community/tree/master/sig-usability)
|
||||
- [邮件列表](https://groups.google.com/g/kubernetes-sig-usability)
|
||||
- [Open Community Issues/PRs](https://github.com/kubernetes/community/labels/sig%2Fusability)
|
||||
- [Slack](https://slack.k8s.io/)
|
||||
- [Slack 频道 #sig-usability](https://kubernetes.slack.com/archives/CLC5EF63T)
|
||||
|
||||
<!--
|
||||
## Wrap Up
|
||||
-->
|
||||
## 总结
|
||||
|
||||
<!--
|
||||
SIG Usability hosted a [KubeCon talk](https://www.youtube.com/watch?v=Byn0N_ZstE0) about studying Kubernetes users' experiences.
|
||||
The talk focuses on updates to the user study projects, understanding who is using Kubernetes,
|
||||
what they are trying to achieve, how the project is addressing their needs, and where we need to improve the project and the client experience.
|
||||
Join the SIG's update to find out about the most recent research results,
|
||||
what the plans are for the forthcoming year, and how to get involved in the upstream usability team as a contributor!
|
||||
-->
|
||||
SIG Usability 举办了一个关于调研 Kubernetes 用户体验的 [KubeCon 演讲](https://www.youtube.com/watch?v=Byn0N_ZstE0)。
|
||||
演讲的重点是用户调研项目的更新,了解谁在使用 Kubernetes、他们试图实现什么、项目如何满足他们的需求、以及我们需要改进项目和客户体验的地方。
|
||||
欢迎加入 SIG 的更新,了解最新的调研成果、来年的计划以及如何作为贡献者参与上游可用性团队!
|
|
@ -33,7 +33,8 @@ a complete and working Kubernetes cluster.
|
|||
-->
|
||||
<!-- overview -->
|
||||
当你部署完 Kubernetes,便拥有了一个完整的集群。
|
||||
{{< glossary_definition term_id="cluster" length="all" prepend="一个 Kubernetes">}}
|
||||
|
||||
{{< glossary_definition term_id="cluster" length="all" >}}
|
||||
|
||||
本文档概述了一个正常运行的 Kubernetes 集群所需的各种组件。
|
||||
|
||||
|
|
|
@ -223,7 +223,7 @@ metadata:
|
|||
spec:
|
||||
containers:
|
||||
- name: cuda-test
|
||||
image: "k8s.gcr.io/cuda-vector-add:v0.1"
|
||||
image: "registry.k8s.io/cuda-vector-add:v0.1"
|
||||
resources:
|
||||
limits:
|
||||
nvidia.com/gpu: 1
|
||||
|
|
|
@ -588,9 +588,9 @@ This feature is beta and enabled by default. You can disable it using the
|
|||
[feature gate](/docs/reference/command-line-tools-reference/feature-gates/)
|
||||
`PodDeletionCost` in both kube-apiserver and kube-controller-manager.
|
||||
-->
|
||||
此功能特性处于 Beta 阶段,默认被禁用。你可以通过为 kube-apiserver 和
|
||||
此功能特性处于 Beta 阶段,默认被启用。你可以通过为 kube-apiserver 和
|
||||
kube-controller-manager 设置[特性门控](/zh-cn/docs/reference/command-line-tools-reference/feature-gates/)
|
||||
`PodDeletionCost` 来启用此功能。
|
||||
`PodDeletionCost` 来禁用此功能。
|
||||
|
||||
{{< note >}}
|
||||
<!--
|
||||
|
|
|
@ -163,7 +163,7 @@ In the current version, the default ones are:
|
|||
-->
|
||||
在目前版本中,默认启用的插件有:
|
||||
|
||||
```
|
||||
```shell
|
||||
CertificateApproval, CertificateSigning, CertificateSubjectRestriction, DefaultIngressClass, DefaultStorageClass, DefaultTolerationSeconds, LimitRanger, MutatingAdmissionWebhook, NamespaceLifecycle, PersistentVolumeClaimResize, PodSecurity, Priority, ResourceQuota, RuntimeClass, ServiceAccount, StorageObjectInUseProtection, TaintNodesByCondition, ValidatingAdmissionWebhook
|
||||
```
|
||||
|
||||
|
@ -354,9 +354,11 @@ and users may remove values from `externalIPs` on existing `Service` objects.
|
|||
Most users do not need this feature at all, and cluster admins should consider disabling it.
|
||||
Clusters that do need to use this feature should consider using some custom policy to manage usage
|
||||
of it.
|
||||
This admission controller is disabled by default.
|
||||
-->
|
||||
大多数用户根本不需要此特性,集群管理员应考虑将其禁用。
|
||||
确实需要使用此特性的集群应考虑使用一些自定义策略来管理 `externalIPs` 的使用。
|
||||
此准入控制器默认被禁用。
|
||||
|
||||
### EventRateLimit {#eventratelimit}
|
||||
|
||||
|
|
|
@ -31,14 +31,11 @@ tags:
|
|||
<!--
|
||||
Container network interface (CNI) plugins are a type of Network plugin that adheres to the appc/CNI specification.
|
||||
-->
|
||||
|
||||
容器网络接口 (CNI) 插件是遵循 appc/CNI 协议的一类网络插件。
|
||||
|
||||
<!--more-->
|
||||
|
||||
<!--
|
||||
* For information on Kubernetes and CNI refer to [this](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/#cni).
|
||||
* For information on Kubernetes and CNI, see ["Network plugins"](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/#cni).
|
||||
* For information on Kubernetes and CNI, see [**Network plugins**](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/#cni).
|
||||
-->
|
||||
|
||||
* 想了解 Kubernetes 和 CNI 请参考 ["网络插件"](/zh-cn/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/#cni)。
|
||||
* 想了解 Kubernetes 和 CNI 请参考[**网络插件**](/zh-cn/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/#cni)。
|
||||
|
|
|
@ -47,7 +47,7 @@ system all memory pages will be readable by the owner of the checkpoint archive.
|
|||
|
||||
Tell the kubelet to checkpoint a specific container from the specified Pod.
|
||||
|
||||
Consult the [Kubelet authentication/authorization reference](/docs/reference/command-line-tools-reference/kubelet-authentication-authorization)
|
||||
Consult the [Kubelet authentication/authorization reference](/docs/reference/access-authn-authz/kubelet-authn-authz)
|
||||
for more information about how access to the kubelet checkpoint interface is
|
||||
controlled.
|
||||
-->
|
||||
|
@ -57,7 +57,7 @@ controlled.
|
|||
|
||||
告知 kubelet 对指定 Pod 中的特定容器执行检查点操作。
|
||||
|
||||
查阅 [Kubelet 身份验证/鉴权参考](/zh-cn/docs/reference/command-line-tools-reference/kubelet-authentication-authorization)了解如何控制对
|
||||
查阅 [Kubelet 身份验证/鉴权参考](/zh-cn/docs/reference/access-authn-authz/kubelet-authn-authz)了解如何控制对
|
||||
kubelet 检查点接口的访问。
|
||||
|
||||
<!--
|
||||
|
|
|
@ -21,14 +21,14 @@ primary resources via the standard HTTP verbs (POST, PUT, PATCH, DELETE,
|
|||
GET).
|
||||
|
||||
For some resources, the API includes additional subresources that allow
|
||||
fine grained authorization (such as a separating viewing details for a Pod from
|
||||
retrieving its logs), and can accept and serve those resources in different
|
||||
fine grained authorization (such as separate views for Pod details and
|
||||
log retrievals), and can accept and serve those resources in different
|
||||
representations for convenience or efficiency.
|
||||
-->
|
||||
Kubernetes API 是通过 HTTP 提供的基于资源 (RESTful) 的编程接口。
|
||||
它支持通过标准 HTTP 动词(POST、PUT、PATCH、DELETE、GET)检索、创建、更新和删除主要资源。
|
||||
|
||||
对于某些资源,API 包括额外的子资源,允许细粒度授权(例如将 Pod 的查看详细信息与检索其日志分开),
|
||||
对于某些资源,API 包括额外的子资源,允许细粒度授权(例如:将 Pod 的详细信息与检索日志分开),
|
||||
为了方便或者提高效率,可以以不同的表示形式接受和服务这些资源。
|
||||
|
||||
<!--
|
||||
|
@ -39,12 +39,14 @@ effectively cache, track, and synchronize the state of resources.
|
|||
You can view the [API reference](/docs/reference/kubernetes-api/) online,
|
||||
or read on to learn about the API in general.
|
||||
-->
|
||||
Kubernetes 支持通过 **watchs** 实现高效的资源变更通知。
|
||||
Kubernetes 支持通过 **watch** 实现高效的资源变更通知。
|
||||
Kubernetes 还提供了一致的列表操作,以便 API 客户端可以有效地缓存、跟踪和同步资源的状态。
|
||||
|
||||
你可以在线查看 [API 参考](/zh-cn/docs/reference/kubernetes-api/),
|
||||
或继续阅读以了解 API 的一般信息。
|
||||
|
||||
<!-- body -->
|
||||
|
||||
<!--
|
||||
## Kubernetes API terminology {#standard-api-terminology}
|
||||
|
||||
|
@ -251,13 +253,14 @@ For example:
|
|||
<!--
|
||||
1. List all of the pods in a given namespace.
|
||||
-->
|
||||
1. 列举给定名字空间中的所有 Pods:
|
||||
1. 列举给定名字空间中的所有 Pod:
|
||||
|
||||
```console
|
||||
GET /api/v1/namespaces/test/pods
|
||||
---
|
||||
200 OK
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"kind": "PodList",
|
||||
"apiVersion": "v1",
|
||||
|
@ -434,7 +437,7 @@ of 500 pods at a time, request those chunks as follows:
|
|||
<!--
|
||||
1. List all of the pods on a cluster, retrieving up to 500 pods each time.
|
||||
-->
|
||||
1. 列举集群中所有 Pod,每次接收至多 500 个 Pods:
|
||||
1. 列举集群中所有 Pod,每次接收至多 500 个 Pod:
|
||||
|
||||
```console
|
||||
GET /api/v1/pods?limit=500
|
||||
|
@ -448,15 +451,17 @@ of 500 pods at a time, request those chunks as follows:
|
|||
"metadata": {
|
||||
"resourceVersion":"10245",
|
||||
"continue": "ENCODED_CONTINUE_TOKEN",
|
||||
"remainingItemCount": 753,
|
||||
...
|
||||
},
|
||||
"items": [...] // returns pods 1-500
|
||||
}
|
||||
```
|
||||
|
||||
<!--
|
||||
2. Continue the previous call, retrieving the next set of 500 pods.
|
||||
-->
|
||||
2. 继续前面的调用,返回下一组 500 个 Pods:
|
||||
2. 继续前面的调用,返回下一组 500 个 Pod:
|
||||
|
||||
```console
|
||||
GET /api/v1/pods?limit=500&continue=ENCODED_CONTINUE_TOKEN
|
||||
|
@ -470,6 +475,7 @@ of 500 pods at a time, request those chunks as follows:
|
|||
"metadata": {
|
||||
"resourceVersion":"10245",
|
||||
"continue": "ENCODED_CONTINUE_TOKEN_2",
|
||||
"remainingItemCount": 253,
|
||||
...
|
||||
},
|
||||
"items": [...] // returns pods 501-1000
|
||||
|
@ -479,9 +485,9 @@ of 500 pods at a time, request those chunks as follows:
|
|||
<!--
|
||||
3. Continue the previous call, retrieving the last 253 pods.
|
||||
-->
|
||||
3. 继续前面的调用,返回最后 253 个 Pods:
|
||||
3. 继续前面的调用,返回最后 253 个 Pod:
|
||||
|
||||
```console
|
||||
```console
|
||||
GET /api/v1/pods?limit=500&continue=ENCODED_CONTINUE_TOKEN_2
|
||||
---
|
||||
200 OK
|
||||
|
@ -497,7 +503,7 @@ of 500 pods at a time, request those chunks as follows:
|
|||
},
|
||||
"items": [...] // returns pods 1001-1253
|
||||
}
|
||||
```
|
||||
```
|
||||
|
||||
<!--
|
||||
Notice that the `resourceVersion` of the collection remains constant across each request,
|
||||
|
@ -683,7 +689,7 @@ Kubernetes API 实现标准的 HTTP 内容类型(Content Type)协商:为 `
|
|||
传入一个值为 `application/json;as=Table;g=meta.k8s.io;v=v1` 的 `Accept`
|
||||
头部即可请求服务器以 Table 的内容类型返回对象。
|
||||
|
||||
例如,以 Table 格式列举集群中所有 Pods:
|
||||
例如,以 Table 格式列举集群中所有 Pod:
|
||||
|
||||
```console
|
||||
GET /api/v1/pods
|
||||
|
@ -753,7 +759,7 @@ extensions, you should make requests that specify multiple content types in the
|
|||
如果你正在实现使用 Table 信息并且必须针对所有资源类型(包括扩展)工作的客户端,
|
||||
你应该在 `Accept` 请求头中指定多种内容类型的请求。例如:
|
||||
|
||||
```
|
||||
```console
|
||||
Accept: application/json;as=Table;g=meta.k8s.io;v=v1, application/json
|
||||
```
|
||||
|
||||
|
@ -1032,6 +1038,165 @@ Kubernetes API 动词 **get**、**create**、**apply**、**update**、**patch**
|
|||
相比之下,Kubernetes API 动词 **list** 和 **watch** 允许获取多个资源,
|
||||
而 **deletecollection** 允许删除多个资源。
|
||||
|
||||
<!--
|
||||
## Field validation
|
||||
-->
|
||||
## 字段校验 {#field-validation}
|
||||
|
||||
<!--
|
||||
Kubernetes always validates the type of fields. For example, if a field in the
|
||||
API is defined as a number, you cannot set the field to a text value. If a field
|
||||
is defined as an array of strings, you can only provide an array. Some fields
|
||||
allow you to omit them, other fields are required. Omitting a required field
|
||||
from an API request is an error.
|
||||
-->
|
||||
Kubernetes 总是校验字段的类型。例如,如果 API 中的某个字段被定义为数值,
|
||||
你就不能将该字段设置为文本类型的值。如果某个字段被定义为字符串数组,你只能提供数组。
|
||||
有些字段可以忽略,有些字段必须填写。忽略 API 请求中的必填字段会报错。
|
||||
|
||||
<!--
|
||||
If you make a request with an extra field, one that the cluster's control plane
|
||||
does not recognize, then the behavior of the API server is more complicated.
|
||||
-->
|
||||
如果请求中带有集群控制面无法识别的额外字段,API 服务器的行为会更加复杂。
|
||||
|
||||
<!--
|
||||
By default, the API server drops fields that it does not recognize
|
||||
from an input that it receives (for example, the JSON body of a `PUT` request).
|
||||
-->
|
||||
默认情况下,如果接收到的输入信息中含有 API 服务器无法识别的字段,API 服务器会丢弃该字段
|
||||
(例如: `PUT` 请求中的 JSON 主体)。
|
||||
|
||||
<!--
|
||||
There are two situations where the API server drops fields that you supplied in
|
||||
an HTTP request.
|
||||
-->
|
||||
API 服务器会在两种情况下丢弃 HTTP 请求中提供的字段。
|
||||
|
||||
<!--
|
||||
These situations are:
|
||||
-->
|
||||
这些情况是:
|
||||
|
||||
<!--
|
||||
1. The field is unrecognized because it is not in the resource's OpenAPI schema. (One
|
||||
exception to this is for {{< glossary_tooltip
|
||||
term_id="CustomResourceDefinition" text="CRDs" >}} that explicitly choose not to prune unknown
|
||||
fields via `x-kubernetes-preserve-unknown-fields`).
|
||||
-->
|
||||
1. 相关资源的 OpenAPI 模式定义中没有该字段,因此无法识别该字段(有种例外情形是,
|
||||
{{< glossary_tooltip term_id="CustomResourceDefinition" text="CRD" >}}
|
||||
通过 `x-kubernetes-preserve-unknown-fields` 显式选择不删除未知字段)。
|
||||
|
||||
<!--
|
||||
1. The field is duplicated in the object.
|
||||
-->
|
||||
2. 字段在对象中重复出现。
|
||||
|
||||
<!--
|
||||
### Setting the field validation level
|
||||
-->
|
||||
### 设置字段校验层级 {#setting-the-field-validation-level}
|
||||
|
||||
{{< feature-state for_k8s_version="v1.25" state="beta" >}}
|
||||
|
||||
<!--
|
||||
Provided that the `ServerSideFieldValidation` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) is enabled (disabled
|
||||
by default in 1.23 and 1.24, enabled by default starting in 1.25), you can take
|
||||
advantage of server side field validation to catch these unrecognized fields.
|
||||
-->
|
||||
如果启用了 `ServerSideFieldValidation` [特性门控](/zh-cn/docs/reference/command-line-tools-reference/feature-gates/)
|
||||
(在 1.23 和 1.24 中默认处于禁用状态,从 1.25 开始默认启用),
|
||||
你可以用服务端的字段校验来抓取这些未能识别的字段。
|
||||
|
||||
<!--
|
||||
When you use HTTP verbs that can submit data (`POST`, `PUT`, and `PATCH`), field
|
||||
validation gives you the option to choose how you would like to be notified of
|
||||
these fields that are being dropped by the API server. Possible levels of
|
||||
validation are `Ignore`, `Warn`, and `Strict`.
|
||||
-->
|
||||
使用可以提交数据的 HTTP 动词(`POST`、`PUT`、`PATCH`)时,可以在字段校验中设置
|
||||
API 服务器丢弃字段时的通知设置。通知层级可能包括 `Ignore`、`Warn` 和 `Strict`。
|
||||
|
||||
{{< note >}}
|
||||
<!--
|
||||
If you submit a request that specifies an unrecognized field, and that is also invalid for
|
||||
a different reason (for example, the request provides a string value where the API expects
|
||||
an integer), then the API server responds with a 400 Bad Request error response.
|
||||
You always receive an error response in this case, no matter what field validation level you requested.
|
||||
-->
|
||||
如果你所提交的请求中指定了无法识别的字段,并且该请求由于其他某种原因无法生效
|
||||
(例如:请求提供的是字符值,而 API 需要整数),那么 API 服务器会返回 400 Bad Request(400 请求无效)错误响应码。
|
||||
|
||||
在这种情况下,无论请求哪个层级的字段校验,都总会收到错误响应。
|
||||
{{< /note >}}
|
||||
|
||||
<!--
|
||||
Field validation is set by the `fieldValidation` query parameter. The three
|
||||
values that you can provide for this parameter are:
|
||||
-->
|
||||
字段校验需要通过 `fieldValidation` 查询参数进行设置。此参数接受三种值:
|
||||
|
||||
<!--
|
||||
: The API server succeeds in handling the request as it would without the erroneous fields
|
||||
being set, dropping all unknown and duplicate fields and giving no indication it
|
||||
has done so.
|
||||
-->
|
||||
`Ignore`
|
||||
: 使 API 服务器像没有遇到错误字段一样成功处理请求,丢弃所有的未知字段和重复字段,并且不发送丢弃字段的通知。
|
||||
|
||||
<!--
|
||||
: (Default) The API server succeeds in handling the request, and reports a
|
||||
warning to the client. The warning is sent using the `Warning:` response header,
|
||||
adding one warning item for each unknown or duplicate field. For more
|
||||
information about warnings and the Kubernetes API, see the blog article
|
||||
[Warning: Helpful Warnings Ahead](/blog/2020/09/03/warnings/).
|
||||
-->
|
||||
`Warn`
|
||||
:(默认值)使 API 服务器成功处理请求,并向客户端发送告警信息。告警信息通过 `Warning:` 响应头发送,
|
||||
并为每个未知字段或重复字段添加一条告警信息。有关告警和相关的 Kubernetes API 的信息,
|
||||
可参阅博文[告警:增加实用告警功能](/blog/2020/09/03/warnings/)。
|
||||
|
||||
<!--
|
||||
: The API server rejects the request with a 400 Bad Request error when it
|
||||
detects any unknown or duplicate fields. The response message from the API
|
||||
server specifies all the unknown or duplicate fields that the API server has
|
||||
detected.
|
||||
-->
|
||||
`Strict`
|
||||
: API 服务器检测到任何未知字段或重复字段时,拒绝处理请求并返回 400 Bad Request 错误。
|
||||
来自 API 服务器的响应消息列出了 API 检测到的所有未知字段或重复字段。
|
||||
|
||||
<!--
|
||||
Tools that submit requests to the server (such as `kubectl`), might set their own
|
||||
defaults that are different from the `Warn` validation level that the API server uses
|
||||
by default.
|
||||
-->
|
||||
向服务器提交请求的工具(例如 `kubectl`)可能会设置自己的默认值,与 API 服务器默认使用的 `Warn`
|
||||
校验层级不同。
|
||||
|
||||
<!--
|
||||
The `kubectl` tool uses the `--validate` flag to set the level of field validation.
|
||||
Historically `--validate` was used to toggle client-side validation on or off as
|
||||
a boolean flag. Since Kubernetes 1.25, kubectl uses
|
||||
server-side field validation when sending requests to a serer with this feature
|
||||
enabled. Validation will fall back to client-side only when it cannot connect
|
||||
to an API server with field validation enabled.
|
||||
-->
|
||||
`kubectl` 工具使用 `--validate` 标志设置字段校验层级。
|
||||
之前 `--validate` 被作为布尔值开启或关闭客户段的校验功能。
|
||||
从 Kubernetes 1.25 开始,kubectl 向启用字段校验的服务器发送请求时使用服务端字段校验。
|
||||
只有无法连接启用了字段校验的 API 服务器时,才会恢复使用客户端的字段校验。
|
||||
<!--
|
||||
It accepts the values `ignore`, `warn`,
|
||||
and `strict` while also accepting the values `true` (equivalent to `strict`) and `false`
|
||||
(equivalent to `ignore`). The default validation setting for kubectl is `--validate=true`,
|
||||
which means strict server-side field validation.
|
||||
-->
|
||||
`kubectl` 接受 `ignore`、`warn`、`strict` 值,同时也接受 `true`(等效于 `strict`)
|
||||
和 `false`(等效于 `ignore`)。kubectl 的字段校验默认配置为 `--validate=true`,
|
||||
即服务端的 `strict` 级字段校验。
|
||||
|
||||
<!--
|
||||
## Dry-run
|
||||
-->
|
||||
|
@ -1048,7 +1213,7 @@ request is as close as possible to a non-dry-run response. Kubernetes guarantees
|
|||
dry-run requests will not be persisted in storage or have any other side effects.
|
||||
-->
|
||||
当你使用可以修改资源的 HTTP 动词(`POST`、`PUT`、`PATCH` 和 `DELETE`)时,
|
||||
你可以在 _试运行(dry run)_ 模式下提交你的请求。
|
||||
你可以在 **试运行(dry run)** 模式下提交你的请求。
|
||||
试运行模式有助于通过典型的请求阶段(准入链、验证、合并冲突)评估请求,直到将对象持久化到存储中。
|
||||
请求的响应正文尽可能接近非试运行响应。Kubernetes 保证试运行请求不会被持久化存储或产生任何其他副作用。
|
||||
|
||||
|
@ -1130,6 +1295,7 @@ Accept: application/json
|
|||
The response would look the same as for non-dry-run request, but the values of some
|
||||
generated fields may differ.
|
||||
-->
|
||||
|
||||
响应会与非试运行模式请求的响应看起来相同,只是某些生成字段的值可能会不同。
|
||||
|
||||
<!--
|
||||
|
@ -1179,7 +1345,7 @@ Deployments:
|
|||
|
||||
```yaml
|
||||
rules:
|
||||
- apiGroups: ["extensions", "apps"]
|
||||
- apiGroups: ["apps"]
|
||||
resources: ["deployments"]
|
||||
verbs: ["patch"]
|
||||
```
|
||||
|
@ -1212,7 +1378,7 @@ Kubernetes 的[服务器端应用](/zh-cn/docs/reference/using-api/server-side-a
|
|||
请参阅[服务器端应用](/zh-cn/docs/reference/using-api/server-side-apply/)。
|
||||
|
||||
<!--
|
||||
## Resource Versions
|
||||
## Resource versions
|
||||
|
||||
Resource versions are strings that identify the server's internal version of an
|
||||
object. Resource versions can be used by clients to determine when objects have
|
||||
|
@ -1325,6 +1491,7 @@ quorum read to be served.
|
|||
|
||||
Setting the `resourceVersionMatch` parameter without setting `resourceVersion` is not valid.
|
||||
|
||||
|
||||
This table explains the behavior of **list** requests with various combinations of
|
||||
`resourceVersion` and `resourceVersionMatch`:
|
||||
-->
|
||||
|
@ -1486,7 +1653,7 @@ For watch, the semantics of resource version are:
|
|||
-->
|
||||
### **watch** 语义 {#semantics-for-watch}
|
||||
|
||||
对于 watch 操作而言,资源版本的语义如下:
|
||||
对于 **watch** 操作而言,资源版本的语义如下:
|
||||
|
||||
**watch:**
|
||||
|
||||
|
|
|
@ -140,45 +140,118 @@ sudo sysctl --system
|
|||
On Linux, {{< glossary_tooltip text="control groups" term_id="cgroup" >}}
|
||||
are used to constrain resources that are allocated to processes.
|
||||
-->
|
||||
## Cgroup 驱动程序 {#cgroup-drivers}
|
||||
## cgroup 驱动 {#cgroup-drivers}
|
||||
|
||||
在 Linux 上,{{<glossary_tooltip text="控制组(CGroup)" term_id="cgroup" >}}
|
||||
用于限制分配给进程的资源。
|
||||
在 Linux 上,{{<glossary_tooltip text="控制组(CGroup)" term_id="cgroup" >}}用于限制分配给进程的资源。
|
||||
|
||||
<!--
|
||||
Both {{< glossary_tooltip text="kubelet" term_id="kubelet" >}} and the
|
||||
underlying container runtime need to interface with control groups to enforce
|
||||
[resource management for pods and containers](/docs/concepts/configuration/manage-resources-containers/) and set
|
||||
resources such as cpu/memory requests and limits. To interface with control
|
||||
groups, the kubelet and the container runtime need to use a *cgroup driver*.
|
||||
It's critical that the kubelet and the container runtime uses the same cgroup
|
||||
driver and are configured the same.
|
||||
-->
|
||||
{{< glossary_tooltip text="kubelet" term_id="kubelet" >}} 和底层容器运行时都需要对接控制组来强制执行
|
||||
[为 Pod 和容器管理资源](/zh-cn/docs/concepts/configuration/manage-resources-containers/)
|
||||
并为诸如 CPU、内存这类资源设置请求和限制。若要对接控制组,kubelet 和容器运行时需要使用一个 **cgroup 驱动**。
|
||||
关键的一点是 kubelet 和容器运行时需使用相同的 cgroup 驱动并且采用相同的配置。
|
||||
|
||||
<!--
|
||||
There are two cgroup drivers available:
|
||||
|
||||
* [`cgroupfs`](#cgroupfs-cgroup-driver)
|
||||
* [`systemd`](#systemd-cgroup-driver)
|
||||
-->
|
||||
可用的 cgroup 驱动有两个:
|
||||
|
||||
* [`cgroupfs`](#cgroupfs-cgroup-driver)
|
||||
* [`systemd`](#systemd-cgroup-driver)
|
||||
|
||||
<!--
|
||||
### cgroupfs driver {#cgroupfs-cgroup-driver}
|
||||
|
||||
The `cgroupfs` driver is the default cgroup driver in the kubelet. When the `cgroupfs`
|
||||
driver is used, the kubelet and the container runtime directly interface with
|
||||
the cgroup filesystem to configure cgroups.
|
||||
|
||||
The `cgroupfs` driver is **not** recommended when
|
||||
[systemd](https://www.freedesktop.org/wiki/Software/systemd/) is the
|
||||
init system because systemd expects a single cgroup manager on
|
||||
the system. Additionally, if you use [cgroup v2](/docs/concepts/architecture/cgroups)
|
||||
, use the `systemd` cgroup driver instead of
|
||||
`cgroupfs`.
|
||||
-->
|
||||
### cgroupfs 驱动 {#cgroupfs-cgroup-driver}
|
||||
|
||||
`cgroupfs` 驱动是 kubelet 中默认的 cgroup 驱动。当使用 `cgroupfs` 驱动时,
|
||||
kubelet 和容器运行时将直接对接 cgroup 文件系统来配置 cgroup。
|
||||
|
||||
当 [systemd](https://www.freedesktop.org/wiki/Software/systemd/) 是初始化系统时,
|
||||
**不** 推荐使用 `cgroupfs` 驱动,因为 systemd 期望系统上只有一个 cgroup 管理器。
|
||||
此外,如果你使用 [cgroup v2](/zh-cn/docs/concepts/architecture/cgroups),
|
||||
则应用 `systemd` cgroup 驱动取代 `cgroupfs`。
|
||||
|
||||
<!--
|
||||
### systemd cgroup driver {#systemd-cgroup-driver}
|
||||
|
||||
When [systemd](https://www.freedesktop.org/wiki/Software/systemd/) is chosen as the init
|
||||
system for a Linux distribution, the init process generates and consumes a root control group
|
||||
(`cgroup`) and acts as a cgroup manager.
|
||||
Systemd has a tight integration with cgroups and allocates a cgroup per systemd unit. It's possible
|
||||
to configure your container runtime and the kubelet to use `cgroupfs`. Using `cgroupfs` alongside
|
||||
systemd means that there will be two different cgroup managers.
|
||||
|
||||
systemd has a tight integration with cgroups and allocates a cgroup per systemd
|
||||
unit. As a result, if you use `systemd` as the init system with the `cgroupfs`
|
||||
driver, the system gets two different cgroup managers.
|
||||
-->
|
||||
### systemd cgroup 驱动 {#systemd-cgroup-driver}
|
||||
|
||||
当某个 Linux 系统发行版使用 [systemd](https://www.freedesktop.org/wiki/Software/systemd/)
|
||||
作为其初始化系统时,初始化进程会生成并使用一个 root 控制组(`cgroup`),并充当 cgroup 管理器。
|
||||
Systemd 与 cgroup 集成紧密,并将为每个 systemd 单元分配一个 cgroup。
|
||||
你也可以配置容器运行时和 kubelet 使用 `cgroupfs`。
|
||||
连同 systemd 一起使用 `cgroupfs` 意味着将有两个不同的 cgroup 管理器。
|
||||
|
||||
systemd 与 cgroup 集成紧密,并将为每个 systemd 单元分配一个 cgroup。
|
||||
因此,如果你 `systemd` 用作初始化系统,同时使用 `cgroupfs` 驱动,则系统中会存在两个不同的 cgroup 管理器。
|
||||
|
||||
<!--
|
||||
A single cgroup manager simplifies the view of what resources are being allocated
|
||||
and will by default have a more consistent view of the available and in-use resources.
|
||||
When there are two cgroup managers on a system, you end up with two views of those resources.
|
||||
In the field, people have reported cases where nodes that are configured to use `cgroupfs`
|
||||
for the kubelet and Docker, but `systemd` for the rest of the processes, become unstable under
|
||||
resource pressure.
|
||||
Two cgroup managers result in two views of the available and in-use resources in
|
||||
the system. In some cases, nodes that are configured to use `cgroupfs` for the
|
||||
kubelet and container runtime, but use `systemd` for the rest of the processes become
|
||||
unstable under resource pressure.
|
||||
|
||||
The approach to mitigate this instability is to use `systemd` as the cgroup driver for
|
||||
the kubelet and the container runtime when systemd is the selected init system.
|
||||
-->
|
||||
单个 cgroup 管理器将简化分配资源的视图,并且默认情况下将对可用资源和使用中的资源具有更一致的视图。
|
||||
当有两个管理器共存于一个系统中时,最终将对这些资源产生两种视图。
|
||||
在此领域人们已经报告过一些案例,某些节点配置让 kubelet 和 docker 使用
|
||||
`cgroupfs`,而节点上运行的其余进程则使用 systemd;
|
||||
这类节点在资源压力下会变得不稳定。
|
||||
同时存在两个 cgroup 管理器将造成系统中针对可用的资源和使用中的资源出现两个视图。某些情况下,
|
||||
将 kubelet 和容器运行时配置为使用 `cgroupfs`、但为剩余的进程使用 `systemd`
|
||||
的那些节点将在资源压力增大时变得不稳定。
|
||||
|
||||
当 systemd 是选定的初始化系统时,缓解这个不稳定问题的方法是针对 kubelet 和容器运行时将
|
||||
`systemd` 用作 cgroup 驱动。
|
||||
<!--
|
||||
To set `systemd` as the cgroup driver, edit the
|
||||
[`KubeletConfiguration`](/docs/tasks/administer-cluster/kubelet-config-file/)
|
||||
option of `cgroupDriver` and set it to `systemd`. For example:
|
||||
-->
|
||||
要将 `systemd` 设置为 cgroup 驱动,需编辑 [`KubeletConfiguration`](/zh-cn/docs/tasks/administer-cluster/kubelet-config-file/)
|
||||
的 `cgroupDriver` 选项,并将其设置为 `systemd`。例如:
|
||||
|
||||
```yaml
|
||||
apiVersion: kubelet.config.k8s.io/v1beta1
|
||||
kind: KubeletConfiguration
|
||||
...
|
||||
cgroupDriver: systemd
|
||||
```
|
||||
|
||||
<!--
|
||||
Changing the settings such that your container runtime and kubelet use `systemd` as the cgroup driver
|
||||
stabilized the system. To configure this for Docker, set `native.cgroupdriver=systemd`.
|
||||
If you configure `systemd` as the cgroup driver for the kubelet, you must also
|
||||
configure `systemd` as the cgroup driver for the container runtime. Refer to
|
||||
the documentation for your container runtime for instructions. For example:
|
||||
-->
|
||||
更改设置,令容器运行时和 kubelet 使用 `systemd` 作为 cgroup 驱动,以此使系统更为稳定。
|
||||
对于 Docker,要设置 `native.cgroupdriver=systemd` 选项。
|
||||
如果你将 `systemd` 配置为 kubelet 的 cgroup 驱动,你也必须将 `systemd` 配置为容器运行时的 cgroup 驱动。
|
||||
参阅容器运行时文档,了解指示说明。例如:
|
||||
|
||||
* [containerd](#containerd-systemd)
|
||||
* [CRI-O](#cri-o)
|
||||
|
||||
{{< caution >}}
|
||||
<!--
|
||||
|
@ -199,80 +272,6 @@ cgroup 驱动,当为现有 Pod 重新创建 PodSandbox 时会产生错误。
|
|||
或者使用自动化方案来重新安装。
|
||||
{{< /caution >}}
|
||||
|
||||
<!--
|
||||
### Cgroup version 2 {#cgroup-v2}
|
||||
|
||||
Cgroup v2 is the next version of the cgroup Linux API. Differently than cgroup v1, there is a single
|
||||
hierarchy instead of a different one for each controller.
|
||||
-->
|
||||
### Cgroup v2 {#cgroup-v2}
|
||||
|
||||
Cgroup v2 是 cgroup Linux API 的下一个版本。与 cgroup v1 不同的是,
|
||||
Cgroup v2 只有一个层次结构,而不是每个控制器有一个不同的层次结构。
|
||||
|
||||
<!--
|
||||
The new version offers several improvements over cgroup v1, some of these improvements are:
|
||||
|
||||
- cleaner and easier to use API
|
||||
- safe sub-tree delegation to containers
|
||||
- newer features like Pressure Stall Information
|
||||
-->
|
||||
新版本对 cgroup v1 进行了多项改进,其中一些改进是:
|
||||
|
||||
- 更简洁、更易于使用的 API
|
||||
- 可将安全子树委派给容器
|
||||
- 更新的功能,如压力失速信息(Pressure Stall Information)
|
||||
|
||||
<!--
|
||||
Even if the kernel supports a hybrid configuration where some controllers are managed by cgroup v1
|
||||
and some others by cgroup v2, Kubernetes supports only the same cgroup version to manage all the
|
||||
controllers.
|
||||
|
||||
If systemd doesn't use cgroup v2 by default, you can configure the system to use it by adding
|
||||
`systemd.unified_cgroup_hierarchy=1` to the kernel command line.
|
||||
-->
|
||||
尽管内核支持混合配置,即其中一些控制器由 cgroup v1 管理,另一些由 cgroup v2 管理,
|
||||
Kubernetes 仅支持使用同一 cgroup 版本来管理所有控制器。
|
||||
|
||||
如果 systemd 默认不使用 cgroup v2,你可以通过在内核命令行中添加
|
||||
`systemd.unified_cgroup_hierarchy=1` 来配置系统去使用它。
|
||||
|
||||
<!--
|
||||
```shell
|
||||
# This example is for a Linux OS that uses the DNF package manager
|
||||
# Your system might use a different method for setting the command line
|
||||
# that the Linux kernel uses.
|
||||
sudo dnf install -y grubby && \
|
||||
sudo grubby \
|
||||
--update-kernel=ALL \
|
||||
--args="systemd.unified_cgroup_hierarchy=1"
|
||||
```
|
||||
-->
|
||||
|
||||
```shell
|
||||
# 此示例适用于使用 DNF 包管理器的 Linux 操作系统
|
||||
# 你的系统可能使用不同的方法来设置 Linux 内核使用的命令行。
|
||||
sudo dnf install -y grubby && \
|
||||
sudo grubby \
|
||||
--update-kernel=ALL \
|
||||
--args="systemd.unified_cgroup_hierarchy=1"
|
||||
```
|
||||
|
||||
<!--
|
||||
If you change the command line for the kernel, you must reboot the node before your
|
||||
change takes effect.
|
||||
|
||||
There should not be any noticeable difference in the user experience when switching to cgroup v2, unless
|
||||
users are accessing the cgroup file system directly, either on the node or from within the containers.
|
||||
|
||||
In order to use it, cgroup v2 must be supported by the CRI runtime as well.
|
||||
-->
|
||||
如果更改内核的命令行,则必须重新启动节点才能使更改生效。
|
||||
|
||||
切换到 cgroup v2 时,用户体验不应有任何明显差异,
|
||||
除非用户直接在节点上或在容器内访问 cgroup 文件系统。
|
||||
为了使用它,CRI 运行时也必须支持 cgroup v2。
|
||||
|
||||
<!--
|
||||
### Migrating to the `systemd` driver in kubeadm managed clusters
|
||||
|
||||
|
@ -281,8 +280,8 @@ follow [configuring a cgroup driver](/docs/tasks/administer-cluster/kubeadm/conf
|
|||
-->
|
||||
### 将 kubeadm 管理的集群迁移到 `systemd` 驱动
|
||||
|
||||
如果你希望将现有的由 kubeadm 管理的集群迁移到 `systemd` cgroup 驱动程序,
|
||||
请按照[配置 cgroup 驱动程序](/zh-cn/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/)操作。
|
||||
如果你希望将现有的由 kubeadm 管理的集群迁移到 `systemd` cgroup 驱动,
|
||||
请按照[配置 cgroup 驱动](/zh-cn/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/)操作。
|
||||
|
||||
<!--
|
||||
## CRI version support {#cri-versions}
|
||||
|
@ -348,9 +347,9 @@ On Windows the default CRI endpoint is `npipe://./pipe/containerd-containerd`.
|
|||
|
||||
To use the `systemd` cgroup driver in `/etc/containerd/config.toml` with `runc`, set
|
||||
-->
|
||||
#### 配置 `systemd` cgroup 驱动程序 {#containerd-systemd}
|
||||
#### 配置 `systemd` cgroup 驱动 {#containerd-systemd}
|
||||
|
||||
结合 `runc` 使用 `systemd` cgroup 驱动,在 `/etc/containerd/config.toml` 中设置
|
||||
结合 `runc` 使用 `systemd` cgroup 驱动,在 `/etc/containerd/config.toml` 中设置:
|
||||
|
||||
```
|
||||
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
|
||||
|
@ -359,6 +358,11 @@ To use the `systemd` cgroup driver in `/etc/containerd/config.toml` with `runc`,
|
|||
SystemdCgroup = true
|
||||
```
|
||||
|
||||
<!--
|
||||
The `systemd` cgroup driver is recommended if you use [cgroup v2](/docs/concepts/architecture/cgroups).
|
||||
-->
|
||||
如果你使用 [cgroup v2](/zh-cn/docs/concepts/architecture/cgroups),则推荐 `systemd` cgroup 驱动。
|
||||
|
||||
{{< note >}}
|
||||
<!--
|
||||
If you installed containerd from a package (for example, RPM or `.deb`), you may find
|
||||
|
@ -405,7 +409,7 @@ sandbox image by setting the following config:
|
|||
|
||||
```toml
|
||||
[plugins."io.containerd.grpc.v1.cri"]
|
||||
sandbox_image = "k8s.gcr.io/pause:3.2"
|
||||
sandbox_image = "registry.k8s.io/pause:3.2"
|
||||
```
|
||||
|
||||
<!--
|
||||
|
@ -432,10 +436,10 @@ for you. To switch to the `cgroupfs` cgroup driver, either edit
|
|||
`/etc/crio/crio.conf` or place a drop-in configuration in
|
||||
`/etc/crio/crio.conf.d/02-cgroup-manager.conf`, for example:
|
||||
-->
|
||||
#### cgroup 驱动程序 {#cgroup-driver}
|
||||
#### cgroup 驱动 {#cgroup-driver}
|
||||
|
||||
CRI-O 默认使用 systemd cgroup 驱动程序,这对你来说可能工作得很好。
|
||||
要切换到 `cgroupfs` cgroup 驱动程序,请编辑 `/etc/crio/crio.conf` 或在
|
||||
CRI-O 默认使用 systemd cgroup 驱动,这对你来说可能工作得很好。
|
||||
要切换到 `cgroupfs` cgroup 驱动,请编辑 `/etc/crio/crio.conf` 或在
|
||||
`/etc/crio/crio.conf.d/02-cgroup-manager.conf` 中放置一个插入式配置,例如:
|
||||
|
||||
```toml
|
||||
|
@ -522,7 +526,7 @@ You can use Mirantis Container Runtime with Kubernetes using the open source
|
|||
-->
|
||||
### Mirantis 容器运行时 {#mcr}
|
||||
|
||||
[Mirantis Container Runtime](https://docs.mirantis.com/mcr/20.10/overview.html) (MCR)
|
||||
[Mirantis Container Runtime](https://docs.mirantis.com/mcr/20.10/overview.html) (MCR)
|
||||
是一种商用容器运行时,以前称为 Docker 企业版。
|
||||
你可以使用 MCR 中包含的开源 [`cri-dockerd`](https://github.com/Mirantis/cri-dockerd)
|
||||
组件将 Mirantis Container Runtime 与 Kubernetes 一起使用。
|
||||
|
|
|
@ -552,14 +552,14 @@ where `trusted-ca-file`, `cert-file` and `key-file` can be obtained from the des
|
|||
可以从 etcd Pod 的描述中获得 `trusted-ca-file`、`cert-file` 和 `key-file`。
|
||||
|
||||
<!--
|
||||
## Scaling up etcd clusters
|
||||
## Scaling out etcd clusters
|
||||
-->
|
||||
## 为 etcd 集群扩容 {#scaling-up-etcd-clusters}
|
||||
## 为 etcd 集群扩容 {#scaling-out-etcd-clusters}
|
||||
|
||||
<!--
|
||||
Scaling up etcd clusters increases availability by trading off performance.
|
||||
Scaling out etcd clusters increases availability by trading off performance.
|
||||
Scaling does not increase cluster performance nor capability. A general rule
|
||||
is not to scale up or down etcd clusters. Do not configure any auto scaling
|
||||
is not to scale out or in etcd clusters. Do not configure any auto scaling
|
||||
groups for etcd clusters. It is highly recommended to always run a static
|
||||
five-member etcd cluster for production Kubernetes clusters at any officially
|
||||
supported scale.
|
||||
|
|
|
@ -44,7 +44,7 @@ kube-dns in an existing deployment, or by using tools like kubeadm
|
|||
that will deploy and upgrade the cluster for you.
|
||||
-->
|
||||
通过替换现有集群部署中的 kube-dns,或者使用 kubeadm 等工具来为你部署和升级集群,
|
||||
可以在你的集群中使用 CoreDNS 而非 kube-dns,
|
||||
可以在你的集群中使用 CoreDNS 而非 kube-dns。
|
||||
|
||||
<!--
|
||||
## Installing CoreDNS
|
||||
|
|
|
@ -182,9 +182,9 @@ using the [cpuset cgroup controller](https://www.kernel.org/doc/Documentation/cg
|
|||
-->
|
||||
### static 策略
|
||||
|
||||
`static` 策略针对具有整数型 CPU `requests` 的 `Guaranteed` Pod ,它允许该类 Pod
|
||||
中的容器访问节点上的独占 CPU 资源。这种独占性是使用
|
||||
[cpuset cgroup 控制器](https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.txt) 来实现的。
|
||||
`static` 策略针对具有整数型 CPU `requests` 的 `Guaranteed` Pod,
|
||||
它允许该类 Pod 中的容器访问节点上的独占 CPU 资源。这种独占性是使用
|
||||
[cpuset cgroup 控制器](https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.txt)来实现的。
|
||||
|
||||
<!--
|
||||
System services such as the container runtime and the kubelet itself can continue to run on these exclusive CPUs. The exclusivity only extends to other pods.
|
||||
|
@ -200,7 +200,7 @@ the node must be drained and CPU manager manually reset by deleting the
|
|||
state file `cpu_manager_state` in the kubelet root directory.
|
||||
-->
|
||||
{{< note >}}
|
||||
CPU 管理器不支持运行时下线和上线 CPUs。此外,如果节点上的在线 CPUs 集合发生变化,
|
||||
CPU 管理器不支持运行时下线和上线 CPU。此外,如果节点上的在线 CPU 集合发生变化,
|
||||
则必须驱逐节点上的 Pod,并通过删除 kubelet 根目录中的状态文件 `cpu_manager_state`
|
||||
来手动重置 CPU 管理器。
|
||||
{{< /note >}}
|
||||
|
|
|
@ -213,7 +213,7 @@ status:
|
|||
<!--
|
||||
Create the following Service that explicitly defines `IPv6` as the first array element in `.spec.ipFamilies`. Kubernetes will assign a cluster IP for the Service from the IPv6 range configured `service-cluster-ip-range` and set the `.spec.ipFamilyPolicy` to `SingleStack`.
|
||||
-->
|
||||
创建以下显示定义 `.spec.ipFamilies` 数组中的第一个元素为 IPv6 的 Service。
|
||||
创建以下显式定义 `.spec.ipFamilies` 数组中的第一个元素为 IPv6 的 Service。
|
||||
Kubernetes 将 `service-cluster-ip-range` 配置的 IPv6 地址范围给 Service 分配集群 IP,
|
||||
并将 `.spec.ipFamilyPolicy` 设置为 `SingleStack`。
|
||||
|
||||
|
|
|
@ -37,18 +37,15 @@ Katacoda provides a free, in-browser Kubernetes environment.
|
|||
本教程向你展示如何使用 Minikube 和 Katacoda
|
||||
在 Kubernetes 上运行一个应用示例。Katacoda 提供免费的浏览器内 Kubernetes 环境。
|
||||
|
||||
<!--
|
||||
{{< note >}}
|
||||
<!--
|
||||
You can also follow this tutorial if you've installed minikube locally.
|
||||
See [minikube start](https://minikube.sigs.k8s.io/docs/start/) for installation instructions.
|
||||
{{< /note >}}
|
||||
-->
|
||||
{{< note >}}
|
||||
如果你已在本地安装 Minikube,也可以按照本教程操作。
|
||||
安装指南参阅 [minikube start](https://minikube.sigs.k8s.io/docs/start/) 。
|
||||
{{< /note >}}
|
||||
|
||||
|
||||
## {{% heading "objectives" %}}
|
||||
|
||||
<!--
|
||||
|
@ -58,11 +55,10 @@ See [minikube start](https://minikube.sigs.k8s.io/docs/start/) for installation
|
|||
-->
|
||||
* 将一个示例应用部署到 Minikube。
|
||||
* 运行应用程序。
|
||||
* 查看应用日志
|
||||
* 查看应用日志。
|
||||
|
||||
## {{% heading "prerequisites" %}}
|
||||
|
||||
|
||||
<!--
|
||||
This tutorial provides a container image that uses NGINX to echo back all the requests.
|
||||
-->
|
||||
|
@ -75,19 +71,19 @@ This tutorial provides a container image that uses NGINX to echo back all the re
|
|||
|
||||
1. Click **Launch Terminal**
|
||||
-->
|
||||
## 创建 Minikube 集群
|
||||
## 创建 Minikube 集群 {#create-a-minikube-cluster}
|
||||
|
||||
1. 点击 **启动终端**
|
||||
1. 点击 **Launch Terminal**。
|
||||
|
||||
{{< kat-button >}}
|
||||
|
||||
{{< note >}}
|
||||
<!--
|
||||
If you installed minikube locally, run `minikube start`. Before you run `minikube dashboard`, you should open a new terminal, start `minikube dashboard` there, and then switch back to the main terminal.
|
||||
-->
|
||||
{{< note >}}
|
||||
如果你在本地安装了 Minikube,运行 `minikube start`。
|
||||
在运行 `minikube dashboard` 之前,你应该打开一个新终端,
|
||||
在此启动 `minikube dashboard` ,然后切换回主终端。
|
||||
在此启动 `minikube dashboard` ,然后切换回主终端。
|
||||
{{< /note >}}
|
||||
|
||||
<!--
|
||||
|
@ -102,15 +98,16 @@ This tutorial provides a container image that uses NGINX to echo back all the re
|
|||
<!--
|
||||
3. Katacoda environment only: At the top of the terminal pane, click the plus sign, and then click **Select port to view on Host 1**.
|
||||
-->
|
||||
3. 仅限 Katacoda 环境:在终端窗口的顶部,单击加号,然后单击 **选择要在主机 1 上查看的端口**。
|
||||
3. 仅限 Katacoda 环境:在终端窗口的顶部,单击加号,然后单击 **Select port to view on Host 1**。
|
||||
|
||||
<!--
|
||||
4. Katacoda environment only: Type `30000`, and then click **Display Port**.
|
||||
-->
|
||||
4. 仅限 Katacoda 环境:输入“30000”,然后单击 **显示端口**。
|
||||
4. 仅限 Katacoda 环境:输入 `30000`,然后单击 **Display Port**。
|
||||
|
||||
{{< note >}}
|
||||
<!--
|
||||
The `dashboard` command enables the dashboard add-on and opens the proxy in the default web browser.
|
||||
The `dashboard` command enables the dashboard add-on and opens the proxy in the default web browser.
|
||||
You can create Kubernetes resources on the dashboard such as Deployment and Service.
|
||||
|
||||
If you are running in an environment as root, see [Open Dashboard with URL](#open-dashboard-with-url).
|
||||
|
@ -122,7 +119,6 @@ To stop the proxy, run `Ctrl+C` to exit the process.
|
|||
After the command exits, the dashboard remains running in the Kubernetes cluster.
|
||||
You can run the `dashboard` command again to create another proxy to access the dashboard.
|
||||
-->
|
||||
{{< note >}}
|
||||
`dashboard` 命令启用仪表板插件,并在默认的 Web 浏览器中打开代理。
|
||||
你可以在仪表板上创建 Kubernetes 资源,例如 Deployment 和 Service。
|
||||
|
||||
|
@ -135,13 +131,12 @@ You can run the `dashboard` command again to create another proxy to access the
|
|||
要停止代理,请运行 `Ctrl+C` 退出该进程。仪表板仍在运行中。
|
||||
命令退出后,仪表板仍然在 Kubernetes 集群中运行。
|
||||
你可以再次运行 `dashboard` 命令创建另一个代理来访问仪表板。
|
||||
|
||||
{{< /note >}}
|
||||
|
||||
<!--
|
||||
## Open Dashboard with URL
|
||||
-->
|
||||
## 使用 URL 打开仪表板
|
||||
## 使用 URL 打开仪表板 {#open-dashboard-with-url}
|
||||
|
||||
<!--
|
||||
If you don't want to open a web browser, run the dashboard command with the `--url` flag to emit a URL:
|
||||
|
@ -153,7 +148,6 @@ minikube dashboard --url
|
|||
```
|
||||
|
||||
<!--
|
||||
|
||||
## Create a Deployment
|
||||
|
||||
A Kubernetes [*Pod*](/docs/concepts/workloads/pods/) is a group of one or more Containers,
|
||||
|
@ -164,11 +158,11 @@ Pod and restarts the Pod's Container if it terminates. Deployments are the
|
|||
recommended way to manage the creation and scaling of Pods.
|
||||
-->
|
||||
|
||||
## 创建 Deployment
|
||||
## 创建 Deployment {#create-a-deployment}
|
||||
|
||||
Kubernetes [*Pod*](/zh-cn/docs/concepts/workloads/pods/) 是由一个或多个
|
||||
为了管理和联网而绑定在一起的容器构成的组。 本教程中的 Pod 只有一个容器。
|
||||
Kubernetes [*Deployment*](/zh-cn/docs/concepts/workloads/controllers/deployment/)
|
||||
Kubernetes [**Pod**](/zh-cn/docs/concepts/workloads/pods/)
|
||||
是由一个或多个为了管理和联网而绑定在一起的容器构成的组。本教程中的 Pod 只有一个容器。
|
||||
Kubernetes [**Deployment**](/zh-cn/docs/concepts/workloads/controllers/deployment/)
|
||||
检查 Pod 的健康状况,并在 Pod 中的容器终止的情况下重新启动新的容器。
|
||||
Deployment 是管理 Pod 创建和扩展的推荐方法。
|
||||
|
||||
|
@ -180,7 +174,7 @@ Pod runs a Container based on the provided Docker image.
|
|||
镜像运行 Container。
|
||||
|
||||
```shell
|
||||
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
|
||||
kubectl create deployment hello-node --image=registry.k8s.io/echoserver:1.4
|
||||
```
|
||||
|
||||
<!--
|
||||
|
@ -242,11 +236,11 @@ Pod runs a Container based on the provided Docker image.
|
|||
kubectl config view
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
<!--
|
||||
For more information about `kubectl`commands, see the
|
||||
[kubectl overview](/docs/reference/kubectl/).
|
||||
-->
|
||||
{{< note >}}
|
||||
有关 `kubectl` 命令的更多信息,请参阅 [kubectl 概述](/zh-cn/docs/reference/kubectl/)。
|
||||
{{< /note >}}
|
||||
|
||||
|
@ -258,11 +252,11 @@ Kubernetes cluster. To make the `hello-node` Container accessible from outside t
|
|||
Kubernetes virtual network, you have to expose the Pod as a
|
||||
Kubernetes [*Service*](/docs/concepts/services-networking/service/).
|
||||
-->
|
||||
## 创建 Service
|
||||
## 创建 Service {#create-a-service}
|
||||
|
||||
默认情况下,Pod 只能通过 Kubernetes 集群中的内部 IP 地址访问。
|
||||
要使得 `hello-node` 容器可以从 Kubernetes 虚拟网络的外部访问,你必须将 Pod
|
||||
暴露为 Kubernetes [*Service*](/zh-cn/docs/concepts/services-networking/service/)。
|
||||
暴露为 Kubernetes [**Service**](/zh-cn/docs/concepts/services-networking/service/)。
|
||||
|
||||
<!--
|
||||
1. Expose the Pod to the public internet using the `kubectl expose` command:
|
||||
|
@ -277,12 +271,13 @@ Kubernetes [*Service*](/docs/concepts/services-networking/service/).
|
|||
The `--type=LoadBalancer` flag indicates that you want to expose your Service
|
||||
outside of the cluster.
|
||||
|
||||
The application code inside the image `k8s.gcr.io/echoserver` only listens on TCP port 8080. If you used
|
||||
The application code inside the image `registry.k8s.io/echoserver` only listens on TCP port 8080. If you used
|
||||
`kubectl expose` to expose a different port, clients could not connect to that other port.
|
||||
-->
|
||||
|
||||
这里的 `--type=LoadBalancer` 参数表明你希望将你的 Service 暴露到集群外部。
|
||||
|
||||
镜像 `k8s.gcr.io/echoserver` 中的应用程序代码仅监听 TCP 8080 端口。
|
||||
镜像 `registry.k8s.io/echoserver` 中的应用程序代码仅监听 TCP 8080 端口。
|
||||
如果你用 `kubectl expose` 暴露了其它的端口,客户端将不能访问其它端口。
|
||||
|
||||
<!--
|
||||
|
@ -312,6 +307,7 @@ Kubernetes [*Service*](/docs/concepts/services-networking/service/).
|
|||
the `LoadBalancer` type makes the Service accessible through the `minikube service`
|
||||
command.
|
||||
-->
|
||||
|
||||
对于支持负载均衡器的云服务平台而言,平台将提供一个外部 IP 来访问该服务。
|
||||
在 Minikube 上,`LoadBalancer` 使得服务可以通过命令 `minikube service` 访问。
|
||||
|
||||
|
@ -327,7 +323,7 @@ Kubernetes [*Service*](/docs/concepts/services-networking/service/).
|
|||
<!--
|
||||
4. Katacoda environment only: Click the plus sign, and then click **Select port to view on Host 1**.
|
||||
-->
|
||||
4. 仅限 Katacoda 环境:单击加号,然后单击 **选择要在主机 1 上查看的端口**。
|
||||
4. 仅限 Katacoda 环境:单击加号,然后单击 **Select port to view on Host 1**。
|
||||
|
||||
<!--
|
||||
5. Katacoda environment only: Note the 5-digit port number displayed opposite to `8080` in services output. This port number is randomly generated and it can be different for you. Type your number in the port number text box, then click Display Port. Using the example from earlier, you would type `30369`.
|
||||
|
@ -336,7 +332,7 @@ Kubernetes [*Service*](/docs/concepts/services-networking/service/).
|
|||
-->
|
||||
5. 仅限 Katacoda 环境:请注意在 service 输出中与 `8080` 对应的长度为 5 位的端口号。
|
||||
此端口号是随机生成的,可能与你的不同。
|
||||
在端口号文本框中输入你自己的端口号,然后单击显示端口。
|
||||
在端口号文本框中输入你自己的端口号,然后单击 **Display Port**。
|
||||
对应于上面的例子,需要输入 `30369`。
|
||||
|
||||
这将打开一个浏览器窗口,为你的应用程序提供服务并显示应用的响应。
|
||||
|
@ -463,7 +459,7 @@ Minikube 有一组内置的 {{< glossary_tooltip text="插件" term_id="addons"
|
|||
|
||||
Now you can clean up the resources you created in your cluster:
|
||||
-->
|
||||
## 清理
|
||||
## 清理 {#clean-up}
|
||||
|
||||
现在可以清理你在集群中创建的资源:
|
||||
|
||||
|
|
|
@ -41,9 +41,9 @@ spec:
|
|||
serviceAccountName: cloud-controller-manager
|
||||
containers:
|
||||
- name: cloud-controller-manager
|
||||
# 对于树内驱动,我们使用 k8s.gcr.io/cloud-controller-manager,
|
||||
# 对于树内驱动,我们使用 registry.k8s.io/cloud-controller-manager,
|
||||
# 镜像可以替换为其他树外驱动的镜像
|
||||
image: k8s.gcr.io/cloud-controller-manager:v1.8.0
|
||||
image: registry.k8s.io/cloud-controller-manager:v1.8.0
|
||||
command:
|
||||
- /usr/local/bin/cloud-controller-manager
|
||||
- --cloud-provider=[YOUR_CLOUD_PROVIDER] # 在此处添加你自己的云驱动!
|
||||
|
|
|
@ -65,7 +65,7 @@ spec:
|
|||
kubernetes.io/os: linux
|
||||
containers:
|
||||
- name: autoscaler
|
||||
image: k8s.gcr.io/cpa/cluster-proportional-autoscaler:1.8.4
|
||||
image: registry.k8s.io/cpa/cluster-proportional-autoscaler:1.8.4
|
||||
resources:
|
||||
requests:
|
||||
cpu: "20m"
|
||||
|
@ -74,10 +74,10 @@ spec:
|
|||
- /cluster-proportional-autoscaler
|
||||
- --namespace=kube-system
|
||||
- --configmap=kube-dns-autoscaler
|
||||
# 应该保持目标与 cluster/addons/dns/kube-dns.yaml.base 同步
|
||||
# 应该保持目标与 cluster/addons/dns/kube-dns.yaml.base 同步。
|
||||
- --target=<SCALE_TARGET>
|
||||
#当集群使用大节点(有更多核)时,“coresPerReplica”应该占主导地位。
|
||||
#如果使用小节点,“nodesPerReplica“ 应该占主导地位。
|
||||
# 当集群使用大节点(有更多核)时,“coresPerReplica”应该占主导地位。
|
||||
# 如果使用小节点,“nodesPerReplica“ 应该占主导地位。
|
||||
- --default-params={"linear":{"coresPerReplica":256,"nodesPerReplica":16,"preventSinglePointFailure":true,"includeUnschedulableNodes":true}}
|
||||
- --logtostderr=true
|
||||
- --v=2
|
||||
|
|
|
@ -6,7 +6,7 @@ metadata:
|
|||
spec:
|
||||
containers:
|
||||
- name: dnsutils
|
||||
image: k8s.gcr.io/e2e-test-images/jessie-dnsutils:1.3
|
||||
image: registry.k8s.io/e2e-test-images/jessie-dnsutils:1.3
|
||||
command:
|
||||
- sleep
|
||||
- "3600"
|
||||
|
|
|
@ -8,7 +8,7 @@ spec:
|
|||
hostNetwork: true
|
||||
containers:
|
||||
- name: konnectivity-server-container
|
||||
image: us.gcr.io/k8s-artifacts-prod/kas-network-proxy/proxy-server:v0.0.16
|
||||
image: registry.k8s.io/kas-network-proxy/proxy-server:v0.0.32
|
||||
command: ["/proxy-server"]
|
||||
args: [
|
||||
"--logtostderr=true",
|
||||
|
|
|
@ -22,7 +22,7 @@ spec:
|
|||
- name: varlog
|
||||
mountPath: /var/log
|
||||
- name: count-agent
|
||||
image: k8s.gcr.io/fluentd-gcp:1.30
|
||||
image: registry.k8s.io/fluentd-gcp:1.30
|
||||
env:
|
||||
- name: FLUENTD_ARGS
|
||||
value: -c /etc/fluentd-config/fluentd.conf
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
# i18n strings for the English (main) site.
|
||||
# NOTE: Please keep the entries in alphabetical order when editing
|
||||
|
||||
# Avoid using conjunction_1.
|
||||
# Must match the context in layouts/shortcodes/release-data.html
|
||||
# Appears on https://kubernetes.io/releases/
|
||||
# For example the "and" in "Complete 1.25 Schedule and Changelog"
|
||||
[conjunction_1]
|
||||
other = "and"
|
||||
|
||||
[caution]
|
||||
other = "Caution:"
|
||||
|
||||
|
@ -262,6 +270,21 @@ other = "(released: "
|
|||
[release_date_format]
|
||||
other = "2006-01-02"
|
||||
|
||||
# Deprecated. Planned for removal in a future release.
|
||||
# Use [release_full_details_initial_text] instead.
|
||||
[release_complete]
|
||||
other = "Complete"
|
||||
|
||||
# Replace [release_complete] with [release_full_details_initial_text]
|
||||
[release_full_details_initial_text]
|
||||
other = "Complete"
|
||||
|
||||
[release_schedule]
|
||||
other = "Schedule"
|
||||
|
||||
[release_changelog]
|
||||
other = "Changelog"
|
||||
|
||||
[seealso_heading]
|
||||
other = "See Also"
|
||||
|
||||
|
|
|
@ -1,195 +1,283 @@
|
|||
# i18n strings for the English (main) site.
|
||||
|
||||
[deprecation_warning]
|
||||
other = " documentation is no longer actively maintained. The version you are currently viewing is a static snapshot. For up-to-date documentation, see the "
|
||||
|
||||
[deprecation_file_warning]
|
||||
other = "Deprecated"
|
||||
|
||||
[objectives_heading]
|
||||
other = "Objectives"
|
||||
|
||||
[cleanup_heading]
|
||||
other = "Cleaning up"
|
||||
|
||||
[prerequisites_heading]
|
||||
other = "Before you begin"
|
||||
|
||||
[whatsnext_heading]
|
||||
other = "What's next"
|
||||
|
||||
[feedback_heading]
|
||||
other = "Feedback"
|
||||
|
||||
[feedback_question]
|
||||
other = "Was this page helpful?"
|
||||
|
||||
[feedback_yes]
|
||||
other = "Yes"
|
||||
|
||||
[feedback_no]
|
||||
other = "No"
|
||||
|
||||
[latest_version]
|
||||
other = "latest version."
|
||||
|
||||
[version_check_mustbe]
|
||||
other = "Your Kubernetes server must be version "
|
||||
|
||||
[version_check_mustbeorlater]
|
||||
other = "Your Kubernetes server must be at or later than version "
|
||||
|
||||
[version_check_tocheck]
|
||||
other = "To check the version, enter "
|
||||
# i18n strings for Hindi version of the site.
|
||||
# NOTE: Please keep the entries in alphabetical order when editing
|
||||
|
||||
[caution]
|
||||
other = "Caution:"
|
||||
other = "सावधानी:"
|
||||
|
||||
[note]
|
||||
other = "Note:"
|
||||
[cleanup_heading]
|
||||
other = "सफाई करना"
|
||||
|
||||
[warning]
|
||||
other = "Warning:"
|
||||
[community_events_calendar]
|
||||
other = "घटनाक्रम कैलेंडर"
|
||||
|
||||
[main_read_about]
|
||||
other = "Read about"
|
||||
[community_forum_name]
|
||||
other = "फोरम"
|
||||
|
||||
[main_read_more]
|
||||
other = "Read more"
|
||||
|
||||
[main_github_invite]
|
||||
other = "Interested in hacking on the core Kubernetes code base?"
|
||||
|
||||
[main_github_view_on]
|
||||
other = "View On GitHub"
|
||||
|
||||
[main_github_create_an_issue]
|
||||
other = "Create an Issue"
|
||||
|
||||
[main_community_explore]
|
||||
other = "Explore the community"
|
||||
|
||||
[main_kubernetes_features]
|
||||
other = "Kubernetes Features"
|
||||
|
||||
[main_cncf_project]
|
||||
other = """We are a <a href="https://cncf.io/">CNCF</a> graduated project</p>"""
|
||||
|
||||
[main_kubeweekly_baseline]
|
||||
other = "Interested in receiving the latest Kubernetes news? Sign up for KubeWeekly."
|
||||
|
||||
[main_kubernetes_past_link]
|
||||
other = "View past newsletters"
|
||||
|
||||
[main_kubeweekly_signup]
|
||||
other = "Subscribe"
|
||||
|
||||
[main_contribute]
|
||||
other = "Contribute"
|
||||
|
||||
[main_edit_this_page]
|
||||
other = "Edit This Page"
|
||||
|
||||
[main_page_history]
|
||||
other ="Page History"
|
||||
|
||||
[main_page_last_modified_on]
|
||||
other = "Page last modified on"
|
||||
|
||||
[main_by]
|
||||
other = "by"
|
||||
|
||||
[main_documentation_license]
|
||||
other = """The Kubernetes Authors | Documentation Distributed under <a href="https://git.k8s.io/website/LICENSE" class="light-text">CC BY 4.0</a>"""
|
||||
|
||||
[main_copyright_notice]
|
||||
other = """The Linux Foundation ®. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our <a href="https://www.linuxfoundation.org/trademark-usage" class="light-text">Trademark Usage page</a>"""
|
||||
|
||||
# Labels for the docs portal home page.
|
||||
[docs_label_browse]
|
||||
other = "Browse Docs"
|
||||
|
||||
[docs_label_contributors]
|
||||
other = "Contributors"
|
||||
|
||||
[docs_label_users]
|
||||
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]
|
||||
other = "Twitter"
|
||||
[community_github_name]
|
||||
other = "GitHub"
|
||||
|
||||
[community_slack_name]
|
||||
other = "Slack"
|
||||
|
||||
[community_stack_overflow_name]
|
||||
other = "Stack Overflow"
|
||||
[community_forum_name]
|
||||
other = "Forum"
|
||||
[community_events_calendar]
|
||||
other = "Events Calendar"
|
||||
|
||||
# UI elements
|
||||
[community_twitter_name]
|
||||
other = "Twitter"
|
||||
|
||||
[community_youtube_name]
|
||||
other = "YouTube"
|
||||
|
||||
[deprecation_title]
|
||||
other = "आप इस कुबेरनेट्स संस्करण के लिए प्रलेखन देख रहे हैं:"
|
||||
|
||||
[deprecation_warning]
|
||||
other = " प्रलेखन अब सक्रिय रूप से मेंटेन नहीं है। वर्तमान में आप जो संस्करण देख रहे हैं वह एक स्टैटिक स्नैपशॉट है। अप-टू-डेट प्रलेखन के लिए, देखें "
|
||||
|
||||
[deprecation_file_warning]
|
||||
other = "डेप्रिकेटेड"
|
||||
|
||||
[dockershim_message]
|
||||
other = """1.24 संस्करण के बाद से Dockershim को कुबेरनेट्स परियोजना से हटा दिया गया हैं। अधिक जानकारी के लिए <a href="/dockershim">Dockershim रिमूवल एफएक्यू</a> पढ़ें।"""
|
||||
|
||||
[docs_label_browse]
|
||||
other = "प्रलेखन ब्राउज़ करें"
|
||||
|
||||
[docs_label_contributors]
|
||||
other = "योगदानकर्ता"
|
||||
|
||||
[docs_label_i_am]
|
||||
other = "मैं हूँ..."
|
||||
|
||||
[docs_label_users]
|
||||
other = "उपयोगकर्ता"
|
||||
|
||||
[docs_version_current]
|
||||
other = "(यह प्रलेखन)"
|
||||
|
||||
[docs_version_latest_heading]
|
||||
other = "नवीनतम संस्करण"
|
||||
|
||||
[docs_version_other_heading]
|
||||
other = "पुराने संस्करण"
|
||||
|
||||
[end_of_life]
|
||||
other = "जीवनकाल का समापन:"
|
||||
|
||||
[envvars_heading]
|
||||
other = "एनवायरनमेंट वैरिएबल"
|
||||
|
||||
[error_404_were_you_looking_for]
|
||||
other = "क्या आप यह ढूँढ रहे थें:"
|
||||
|
||||
[examples_heading]
|
||||
other = "उदाहरण"
|
||||
|
||||
[feature_state]
|
||||
other = "फ़ीचर स्थिति:"
|
||||
|
||||
[feedback_heading]
|
||||
other = "प्रतिक्रिया"
|
||||
|
||||
[feedback_no]
|
||||
other = "नहीं"
|
||||
|
||||
[feedback_question]
|
||||
other = "क्या यह पृष्ठ उपयोगी था?"
|
||||
|
||||
[feedback_yes]
|
||||
other = "हाँ"
|
||||
|
||||
[inline_list_separator]
|
||||
other = ","
|
||||
|
||||
[input_placeholder_email_address]
|
||||
other = "ईमेल ऐड्रेस"
|
||||
|
||||
[javascript_required]
|
||||
other = "इस विषय को देखने के लिए जावास्क्रिप्ट [सक्रिय](https://www.enable-javascript.com/) होना चाहिए।"
|
||||
|
||||
[latest_release]
|
||||
other = "नवीनतम रिलीज़:"
|
||||
|
||||
[latest_version]
|
||||
other = "नवीनतम संस्करण।"
|
||||
|
||||
[layouts_blog_pager_prev]
|
||||
other = "<< पिछला"
|
||||
|
||||
[layouts_blog_pager_next]
|
||||
other = "अगला >>"
|
||||
|
||||
[layouts_case_studies_list_tell]
|
||||
other = "अपनी कहानी बतायें"
|
||||
|
||||
[layouts_docs_glossary_aka]
|
||||
other = "के रूप में भी जाना जाता है"
|
||||
|
||||
[layouts_docs_glossary_description]
|
||||
other = "इस शब्दावली का उद्देश्य कुबेरनेट्स शब्दावली की एक व्यापक, मानकीकृत सूची है। इसमें कुबेरनेट्स के लिए विशिष्ट तकनीकी शब्द और उपयोगी संदर्भ प्रदान करने वाले सामान्य शब्द शामिल हैं।"
|
||||
|
||||
[layouts_docs_glossary_deselect_all]
|
||||
other = "सभी को अचयनित करें"
|
||||
|
||||
[layouts_docs_glossary_click_details_after]
|
||||
other = "किसी विशेष शब्द के लिए लंबी व्याख्या प्राप्त करने के लिए नीचे दिए गए संकेतक।"
|
||||
|
||||
[layouts_docs_glossary_click_details_before]
|
||||
other = "पर क्लिक करें"
|
||||
|
||||
[layouts_docs_glossary_filter]
|
||||
other = "शब्दों को उनके टैग के अनुसार फ़िल्टर करें"
|
||||
|
||||
[layouts_docs_glossary_select_all]
|
||||
other = "सभी का चयन करे"
|
||||
|
||||
[layouts_docs_partials_feedback_improvement]
|
||||
other = "सुधार का सुझाव दें"
|
||||
|
||||
[layouts_docs_partials_feedback_issue]
|
||||
other = "यदि आप चाहते हैं तो GitHub रेपो में एक issue खोलें "
|
||||
|
||||
[layouts_docs_partials_feedback_or]
|
||||
other = "या"
|
||||
|
||||
[layouts_docs_partials_feedback_problem]
|
||||
other = "समस्या के बारे में बताएं"
|
||||
|
||||
[layouts_docs_partials_feedback_thanks]
|
||||
other = "प्रतिक्रिया के लिए धन्यवाद। यदि आपके पास कुबेरनेट्स का उपयोग करने के तरीके के बारे में कोई विशिष्ट, जवाबदेह प्रश्न है, तो इस पर पूछें"
|
||||
|
||||
[layouts_docs_search_fetching]
|
||||
other = "परिणाम लाए जा रहे हैं.."
|
||||
|
||||
[main_by]
|
||||
other = "द्वारा"
|
||||
|
||||
[main_cncf_project]
|
||||
other = """हम एक <a href="https://cncf.io/">CNCF</a> स्नातक परियोजना हैं</p>"""
|
||||
|
||||
[main_community_explore]
|
||||
other = "समुदाय का अन्वेषण करें"
|
||||
|
||||
[main_contribute]
|
||||
other = "योगदान करें"
|
||||
|
||||
[main_copyright_notice]
|
||||
other = """The Linux Foundation ®। सभी अधिकार सुरक्षित। The Linux Foundation ने ट्रेडमार्क पंजीकृत किया है और ट्रेडमार्क का उपयोग करता है। Linux Foundation के ट्रेडमार्क की सूची के लिए, कृपया हमारा <a href="https://www.linuxfoundation.org/trademark-usage" class="light-text">ट्रेडमार्क उपयोग पृष्ठ</a> देखें।"""
|
||||
|
||||
[main_documentation_license]
|
||||
other = """कुबेरनेट्स लेखक | <a href="https://git.k8s.io/website/LICENSE" class="light-text">CC BY 4.0</a> के अंतर्गत वितरित दस्तावेज़"""
|
||||
|
||||
[main_edit_this_page]
|
||||
other = "इस पृष्ठ को संपादित करें"
|
||||
|
||||
[main_github_create_an_issue]
|
||||
other = "issue बनाएं"
|
||||
|
||||
[main_github_invite]
|
||||
other = "कोर कुबेरनेट्स कोड बेस पर हैकिंग के इच्छुक हैं?"
|
||||
|
||||
[main_github_view_on]
|
||||
other = "GitHub पर देखें"
|
||||
|
||||
[main_kubernetes_features]
|
||||
other = "कुबेरनेट्स की विशेषताएं"
|
||||
|
||||
[main_kubeweekly_baseline]
|
||||
other = "नवीनतम कुबेरनेट्स समाचार प्राप्त करने के इच्छुक हैं? KubeWeekly के लिए साइन अप करें।"
|
||||
|
||||
[main_kubernetes_past_link]
|
||||
other = "पिछले न्यूज़लेटर देखें"
|
||||
|
||||
[main_kubeweekly_signup]
|
||||
other = "सब्सक्राइब करें"
|
||||
|
||||
[main_page_history]
|
||||
other ="पृष्ठ का इतिहास"
|
||||
|
||||
[main_page_last_modified_on]
|
||||
other = "पृष्ठ अंतिम बार संशोधित किया गया"
|
||||
|
||||
[main_read_about]
|
||||
other = "के बारे में पढ़ें"
|
||||
|
||||
[main_read_more]
|
||||
other = "अधिक पढ़ें"
|
||||
|
||||
[not_applicable]
|
||||
other = "उपलब्ध नहीं हैं"
|
||||
|
||||
[note]
|
||||
other = "टिप्पणी:"
|
||||
|
||||
[objectives_heading]
|
||||
other = "उद्देश्य"
|
||||
|
||||
[options_heading]
|
||||
other = "विकल्प"
|
||||
|
||||
[outdated_blog__message]
|
||||
other = "यह लेख एक वर्ष से अधिक पुराना है। पुराने लेखों में पुरानी सामग्री हो सकती है। जाँच करें कि प्रकाशन के बाद से पृष्ठ पर दी गई जानकारी गलत तो नहीं है।"
|
||||
|
||||
[post_create_issue]
|
||||
other = "issue बनाएं"
|
||||
|
||||
[prerequisites_heading]
|
||||
other = "शुरू करने से पहले"
|
||||
|
||||
[previous_patches]
|
||||
other = "पिछले पैच:"
|
||||
|
||||
[release_date_after]
|
||||
other = ")"
|
||||
|
||||
[release_date_before]
|
||||
other = "(रिलीज़ड: "
|
||||
|
||||
# See https://gohugo.io/functions/format/#gos-layout-string
|
||||
# For a suitable format
|
||||
[release_date_format]
|
||||
other = "2006-01-02"
|
||||
|
||||
[seealso_heading]
|
||||
other = "यह भी देखें"
|
||||
|
||||
[subscribe_button]
|
||||
other = "सब्स्क्राइब करें"
|
||||
|
||||
[synopsis_heading]
|
||||
other = "संक्षेप में"
|
||||
|
||||
[thirdparty_message]
|
||||
other = """यह खंड अन्य पक्ष परियोजनाओं से जुड़ा है जो कुबेरनेट्स द्वारा आवश्यक कार्यक्षमता प्रदान करते हैं। कुबेरनेट्स परियोजना के लेखक इन परियोजनाओं के लिए जिम्मेदार नहीं हैं। यह पृष्ठ <a href="https://github.com/cncf/foundation/blob/master/website-guidelines.md" target="_blank">CNCF वेबसाइट दिशानिर्देश</a> का अनुसरण करते हुए परियोजनाओं को वर्णानुक्रम में सूचीबद्ध करता है। इस सूची में कोई नई परियोजना जोड़ने से पहले यह <a href="/docs/contribute/style/content-guide/#third-party-content">विषय मार्गदर्शक</a> पृष्ट पढ़के ही परिवर्तन करें।"""
|
||||
|
||||
[thirdparty_message_edit_disclaimer]
|
||||
other="""अन्य पक्ष के विषयों की सलहा"""
|
||||
|
||||
[thirdparty_message_single_item]
|
||||
other = """🛇 यह वस्तु कोई अन्य पक्ष की परियोजना या उत्पाद से जुड़ा है जो कुबेरनेट्स का हिस्सा नहीं हैं। <a class="alert-more-info" href="#third-party-content-disclaimer">अधिक जानकारी के लिए पढ़ें</a>"""
|
||||
|
||||
[thirdparty_message_disclaimer]
|
||||
other = """<p>इस पृष्ठ की वस्तुओं अन्य पक्ष के उत्पादों या परियोजनाओं से जुड़ा है जो कुबेरनेट्स द्वारा आवश्यक कार्यक्षमता प्रदान करते हैं। कुबेरनेट्स परियोजना के लेखक इन अन्य पक्ष के उत्पादों या परियोजनाओं के लिए जिम्मेदार नहीं हैं। अधिक जानकारी के लिए यह <a href="https://github.com/cncf/foundation/blob/master/website-guidelines.md" target="_blank">CNCF वेबसाइट दिशानिर्देश</a> पृष्ठ पढ़े।"</p><p>कोई नई अतिरिक्त अन्य पक्ष लिंक जोड़ने से पहले यह पृष्ठ <a href="/docs/contribute/style/content-guide/#third-party-content">विषय मार्गदर्शक</a> पृष्ठ पढ़के ही परिवर्तन का प्रस्ताव प्रस्तुत करें।</p>"""
|
||||
|
||||
[ui_search_placeholder]
|
||||
other = "Search"
|
||||
other = "खोजें"
|
||||
|
||||
[version_check_mustbe]
|
||||
other = "आपके कुबेरनेट्स सर्वर का संस्करण होना चाहिए "
|
||||
|
||||
[version_check_mustbeorlater]
|
||||
other = "आपका कुबेरनेट्स सर्वर इसपर या इसके बाद के संस्करण पर होना चाहिए "
|
||||
|
||||
[version_check_tocheck]
|
||||
other = "संस्करण की जांच करने के लिए, लिखें "
|
||||
|
||||
[version_menu]
|
||||
other = "संस्करण"
|
||||
|
||||
[warning]
|
||||
other = "चेतावनी:"
|
||||
|
||||
[whatsnext_heading]
|
||||
other = "आगे क्या है"
|
||||
|
|
|
@ -33,10 +33,10 @@
|
|||
</div>
|
||||
|
||||
{{- end -}}
|
||||
<!-- not yet localized, mark as English -->
|
||||
<p lang="en">
|
||||
Complete {{ $dataVersion }} <a href="/releases/patch-releases/#{{ replace $dataVersion `.` `-` }}">Schedule</a>
|
||||
and <a href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-{{ $dataVersion }}.md">Changelog</a>
|
||||
<p>
|
||||
{{ T "release_full_details_initial_text" }} {{ $dataVersion }}
|
||||
<a href="/releases/patch-releases/#{{ replace $dataVersion `.` `-` }}">{{ T "release_schedule" }}</a> {{ T "conjunction_1" }}
|
||||
<a hreflang="en" href="https://git.k8s.io/kubernetes/CHANGELOG/CHANGELOG-{{ $dataVersion }}.md">{{ T "release_changelog" }}</a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
/de/docs/ /de/docs/home/ 301!
|
||||
/es/docs/ /es/docs/home/ 301!
|
||||
/fr/docs/ /fr/docs/home/ 301!
|
||||
/hi/docs/ /hi/docs/home/ 301!
|
||||
/id/docs/ /id/docs/home/ 301!
|
||||
/ja/docs/ /ja/docs/home/ 301!
|
||||
/ko/docs/ /ko/docs/home/ 301!
|
||||
|
@ -541,6 +542,7 @@
|
|||
/docs/setup/learning-environment/ /docs/tasks/tools/ 302!
|
||||
/id/docs/setup/learning-environment/ /id/docs/tasks/tools/ 302!
|
||||
/zh/docs/setup/learning-environment/ /zh-cn/docs/tasks/tools/ 302!
|
||||
/hi/docs/setup/learning-environment/ /hi/docs/tasks/tools/ 302!
|
||||
/docs/setup/learning-environment/kind/ /docs/tasks/tools/ 302
|
||||
/id/docs/setup/learning-environment/kind/ /id/docs/tasks/tools/ 302
|
||||
/docs/setup/learning-environment/minikube/ /docs/tasks/tools/ 302
|
||||
|
|
Loading…
Reference in New Issue