resolved conflict as discussed, accepted current change with CRICTL_VERSION=v1.31.0
This commit is contained in:
commit
d989445929
|
|
@ -54,7 +54,6 @@ aliases:
|
|||
- bene2k1
|
||||
- rlenferink
|
||||
sig-docs-en-owners: # Admins for English content
|
||||
- celestehorgan
|
||||
- dipesh-rawat
|
||||
- divya-mohan0209
|
||||
- katcosgrove
|
||||
|
|
@ -65,7 +64,6 @@ aliases:
|
|||
- sftim
|
||||
- tengqm
|
||||
sig-docs-en-reviews: # PR reviews for English content
|
||||
- celestehorgan
|
||||
- dipesh-rawat
|
||||
- divya-mohan0209
|
||||
- katcosgrove
|
||||
|
|
@ -98,12 +96,12 @@ aliases:
|
|||
- rekcah78
|
||||
- remyleone
|
||||
sig-docs-hi-owners: # Admins for Hindi content
|
||||
- anubha-v-ardhan
|
||||
- dipesh-rawat
|
||||
- divya-mohan0209
|
||||
sig-docs-hi-reviews: # PR reviews for Hindi content
|
||||
- anubha-v-ardhan
|
||||
- Babapool
|
||||
- bishal7679
|
||||
- dipesh-rawat
|
||||
- divya-mohan0209
|
||||
sig-docs-id-owners: # Admins for Indonesian content
|
||||
- ariscahyadi
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ Das `conditions` Feld beschreibt den Zustand, aller `Running` Nodes.
|
|||
| Node Condition | Beschreibung |
|
||||
|----------------|-------------|
|
||||
| `OutOfDisk` | `True` wenn auf dem Node nicht genügend freier Speicherplatz zum Hinzufügen neuer Pods vorhanden ist, andernfalls `False` |
|
||||
| `Ready` | `True` wenn der Node in einem guten Zustand und bereit ist Pods aufzunehmen, `False` wenn der Node nicht in einem guten Zustand ist und nicht bereit ist Pods aufzunehmeb, und `Unknown` wenn der Node-Controller seit der letzten `node-monitor-grace-period` nichts von dem Node gehört hat (Die Standardeinstellung beträgt 40 Sekunden) |
|
||||
| `Ready` | `True` wenn der Node in einem guten Zustand und bereit ist Pods aufzunehmen, `False` wenn der Node nicht in einem guten Zustand ist und nicht bereit ist Pods aufzunehmen, und `Unknown` wenn der Node-Controller seit der letzten `node-monitor-grace-period` nichts von dem Node gehört hat (Die Standardeinstellung beträgt 40 Sekunden) |
|
||||
| `MemoryPressure` | `True` wenn der verfügbare Speicher des Nodes niedrig ist; Andernfalls`False` |
|
||||
| `PIDPressure` | `True` wenn zu viele Prozesse auf dem Node vorhanden sind; Andernfalls`False` |
|
||||
| `DiskPressure` | `True` wenn die Festplattenkapazität niedrig ist. Andernfalls `False` |
|
||||
|
|
|
|||
|
|
@ -47,12 +47,15 @@ To download Kubernetes, visit the [download](/releases/download/) section.
|
|||
<button id="desktopShowVideoButton" onclick="kub.showVideo()">Watch Video</button>
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/" button id="desktopKCButton">Attend KubeCon + CloudNativeCon Europe on March 19-22, 2024</a>
|
||||
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-open-source-summit-ai-dev-china/" button id="desktopKCButton">Attend KubeCon + CloudNativeCon China on August 21-23</a>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america-2024/" button id="desktopKCButton">Attend KubeCon + CloudNativeCon North America on November 12-15</a>
|
||||
<br>
|
||||
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america-2024/" button id="desktopKCButton">Attend KubeCon + CloudNativeCon North America on November 12-15, 2024</a>
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-india/" button id="desktopKCButton">Attend KubeCon + CloudNativeCon India on December 11-12</a>
|
||||
</div>
|
||||
<div id="videoPlayer">
|
||||
<iframe data-url="https://www.youtube.com/embed/H06qrNmGqyE?autoplay=1" frameborder="0" allowfullscreen></iframe>
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ These updated default settings affect a large proportion of Kubernetes users,
|
|||
and **will require changes** for users who were previously using the in-tree
|
||||
provider integrations. The legacy integrations offered compatibility with
|
||||
Azure, AWS, GCE, OpenStack, and vSphere; however for AWS and OpenStack the
|
||||
compiled-in integrations were removed in Kubernetes versions 1.26 and 1.27,
|
||||
compiled-in integrations were removed in Kubernetes versions 1.27 and 1.26,
|
||||
respectively.
|
||||
|
||||
## What has changed?
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ You need to enable the `CRDValidationRatcheting` [feature
|
|||
gate](/docs/reference/command-line-tools-reference/feature-gates/) to use this behavior, which then
|
||||
applies to all CustomResourceDefinitions in your cluster.
|
||||
|
||||
Provided you enabled the feature gate, Kubernetes implements _validation racheting_ for
|
||||
Provided you enabled the feature gate, Kubernetes implements _validation ratcheting_ for
|
||||
CustomResourceDefinitions. The API server is willing to accept updates to resources that are not valid
|
||||
after the update, provided that each part of the resource that failed to validate was not changed by
|
||||
the update operation. In other words, any invalid part of the resource that remains invalid must
|
||||
|
|
|
|||
|
|
@ -148,8 +148,17 @@ To configure the setting, enable the `ImageMaximumGCAge`
|
|||
[feature gate](/docs/reference/command-line-tools-reference/feature-gates/) for the kubelet,
|
||||
and also set a value for the `ImageMaximumGCAge` field in the kubelet configuration file.
|
||||
|
||||
The value is specified as a Kubernetes _duration_; for example, you can set the configuration
|
||||
field to `3d12h`, which means 3 days and 12 hours.
|
||||
The value is specified as a Kubernetes _duration_;
|
||||
Valid time units for the `ImageMaximumGCAge` field in the kubelet configuration file are:
|
||||
- "ns" for nanoseconds
|
||||
- "us" or "µs" for microseconds
|
||||
- "ms" for milliseconds
|
||||
- "s" for seconds
|
||||
- "m" for minutes
|
||||
- "h" for hours
|
||||
|
||||
For example, you can set the configuration field to `12h45m`,
|
||||
which means 12 hours and 45 minutes.
|
||||
|
||||
{{< note >}}
|
||||
This feature does not track image usage across kubelet restarts. If the kubelet
|
||||
|
|
|
|||
|
|
@ -325,7 +325,7 @@ selectable fields.
|
|||
|
||||
{{% code_sample file="customresourcedefinition/shirt-resource-definition.yaml" %}}
|
||||
|
||||
Field selectors can then be used to get only resources with with a `color` of `blue`:
|
||||
Field selectors can then be used to get only resources with a `color` of `blue`:
|
||||
|
||||
```shell
|
||||
kubectl get shirts.stable.example.com --field-selector spec.color=blue
|
||||
|
|
|
|||
|
|
@ -185,17 +185,17 @@ a poorly configured CronJob. CronJobs that create too many Jobs in a namespace c
|
|||
There is another syntax only to set the same type of quota for certain resources.
|
||||
The following types are supported:
|
||||
|
||||
| Resource Name | Description |
|
||||
| ------------------------------- | ------------------------------------------------- |
|
||||
| `configmaps` | The total number of ConfigMaps that can exist in the namespace. |
|
||||
| `persistentvolumeclaims` | The total number of [PersistentVolumeClaims](/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) that can exist in the namespace. |
|
||||
| `pods` | The total number of Pods in a non-terminal state that can exist in the namespace. A pod is in a terminal state if `.status.phase in (Failed, Succeeded)` is true. |
|
||||
| `replicationcontrollers` | The total number of ReplicationControllers that can exist in the namespace. |
|
||||
| `resourcequotas` | The total number of ResourceQuotas that can exist in the namespace. |
|
||||
| `services` | The total number of Services that can exist in the namespace. |
|
||||
| `services.loadbalancers` | The total number of Services of type `LoadBalancer` that can exist in the namespace. |
|
||||
| `services.nodeports` | The total number of Services of type `NodePort` that can exist in the namespace. |
|
||||
| `secrets` | The total number of Secrets that can exist in the namespace. |
|
||||
| Resource Name | Description |
|
||||
| ------------------------------- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `configmaps` | The total number of ConfigMaps that can exist in the namespace. |
|
||||
| `persistentvolumeclaims` | The total number of [PersistentVolumeClaims](/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) that can exist in the namespace. |
|
||||
| `pods` | The total number of Pods in a non-terminal state that can exist in the namespace. A pod is in a terminal state if `.status.phase in (Failed, Succeeded)` is true. |
|
||||
| `replicationcontrollers` | The total number of ReplicationControllers that can exist in the namespace. |
|
||||
| `resourcequotas` | The total number of ResourceQuotas that can exist in the namespace. |
|
||||
| `services` | The total number of Services that can exist in the namespace. |
|
||||
| `services.loadbalancers` | The total number of Services of type `LoadBalancer` that can exist in the namespace. |
|
||||
| `services.nodeports` | The total number of `NodePorts` allocated to Services of type `NodePort` or `LoadBalancer` that can exist in the namespace. |
|
||||
| `secrets` | The total number of Secrets that can exist in the namespace. |
|
||||
|
||||
For example, `pods` quota counts and enforces a maximum on the number of `pods`
|
||||
created in a single namespace that are not terminal. You might want to set a `pods`
|
||||
|
|
|
|||
|
|
@ -91,9 +91,8 @@ set the `.spec.ipFamilyPolicy` field to one of the following values:
|
|||
|
||||
* `SingleStack`: Single-stack service. The control plane allocates a cluster IP for the Service,
|
||||
using the first configured service cluster IP range.
|
||||
* `PreferDualStack`:
|
||||
* Allocates IPv4 and IPv6 cluster IPs for the Service.
|
||||
* `RequireDualStack`: Allocates Service `.spec.ClusterIPs` from both IPv4 and IPv6 address ranges.
|
||||
* `PreferDualStack`: Allocates both IPv4 and IPv6 cluster IPs for the Service when dual-stack is enabled. If dual-stack is not enabled or supported, it falls back to single-stack behavior.
|
||||
* `RequireDualStack`: Allocates Service `.spec.clusterIPs` from both IPv4 and IPv6 address ranges when dual-stack is enabled. If dual-stack is not enabled or supported, the Service API object creation fails.
|
||||
* Selects the `.spec.ClusterIP` from the list of `.spec.ClusterIPs` based on the address family
|
||||
of the first element in the `.spec.ipFamilies` array.
|
||||
|
||||
|
|
|
|||
|
|
@ -52,9 +52,9 @@ with recommendations on when to use each CNI:
|
|||
|
||||
| Network Driver | Description | Container Packet Modifications | Network Plugins | Network Plugin Characteristics |
|
||||
| -------------- | ----------- | ------------------------------ | --------------- | ------------------------------ |
|
||||
| L2bridge | Containers are attached to an external vSwitch. Containers are attached to the underlay network, although the physical network doesn't need to learn the container MACs because they are rewritten on ingress/egress. | MAC is rewritten to host MAC, IP may be rewritten to host IP using HNS OutboundNAT policy. | [win-bridge](https://github.com/containernetworking/plugins/tree/master/plugins/main/windows/win-bridge), [Azure-CNI](https://github.com/Azure/azure-container-networking/blob/master/docs/cni.md), Flannel host-gateway uses win-bridge | win-bridge uses L2bridge network mode, connects containers to the underlay of hosts, offering best performance. Requires user-defined routes (UDR) for inter-node connectivity. |
|
||||
| L2bridge | Containers are attached to an external vSwitch. Containers are attached to the underlay network, although the physical network doesn't need to learn the container MACs because they are rewritten on ingress/egress. | MAC is rewritten to host MAC, IP may be rewritten to host IP using HNS OutboundNAT policy. | [win-bridge](https://www.cni.dev/plugins/current/main/win-bridge/), [Azure-CNI](https://github.com/Azure/azure-container-networking/blob/master/docs/cni.md), [Flannel host-gateway](https://github.com/flannel-io/flannel/blob/master/Documentation/backends.md#host-gw) uses win-bridge | win-bridge uses L2bridge network mode, connects containers to the underlay of hosts, offering best performance. Requires user-defined routes (UDR) for inter-node connectivity. |
|
||||
| L2Tunnel | This is a special case of l2bridge, but only used on Azure. All packets are sent to the virtualization host where SDN policy is applied. | MAC rewritten, IP visible on the underlay network | [Azure-CNI](https://github.com/Azure/azure-container-networking/blob/master/docs/cni.md) | Azure-CNI allows integration of containers with Azure vNET, and allows them to leverage the set of capabilities that [Azure Virtual Network provides](https://azure.microsoft.com/en-us/services/virtual-network/). For example, securely connect to Azure services or use Azure NSGs. See [azure-cni for some examples](https://docs.microsoft.com/azure/aks/concepts-network#azure-cni-advanced-networking) |
|
||||
| Overlay | Containers are given a vNIC connected to an external vSwitch. Each overlay network gets its own IP subnet, defined by a custom IP prefix.The overlay network driver uses VXLAN encapsulation. | Encapsulated with an outer header. | [win-overlay](https://github.com/containernetworking/plugins/tree/master/plugins/main/windows/win-overlay), Flannel VXLAN (uses win-overlay) | win-overlay should be used when virtual container networks are desired to be isolated from underlay of hosts (e.g. for security reasons). Allows for IPs to be re-used for different overlay networks (which have different VNID tags) if you are restricted on IPs in your datacenter. This option requires [KB4489899](https://support.microsoft.com/help/4489899) on Windows Server 2019. |
|
||||
| Overlay | Containers are given a vNIC connected to an external vSwitch. Each overlay network gets its own IP subnet, defined by a custom IP prefix.The overlay network driver uses VXLAN encapsulation. | Encapsulated with an outer header. | [win-overlay](https://www.cni.dev/plugins/current/main/win-overlay/), [Flannel VXLAN](https://github.com/flannel-io/flannel/blob/master/Documentation/backends.md#vxlan) (uses win-overlay) | win-overlay should be used when virtual container networks are desired to be isolated from underlay of hosts (e.g. for security reasons). Allows for IPs to be re-used for different overlay networks (which have different VNID tags) if you are restricted on IPs in your datacenter. This option requires [KB4489899](https://support.microsoft.com/help/4489899) on Windows Server 2019. |
|
||||
| Transparent (special use case for [ovn-kubernetes](https://github.com/openvswitch/ovn-kubernetes)) | Requires an external vSwitch. Containers are attached to an external vSwitch which enables intra-pod communication via logical networks (logical switches and routers). | Packet is encapsulated either via [GENEVE](https://datatracker.ietf.org/doc/draft-gross-geneve/) or [STT](https://datatracker.ietf.org/doc/draft-davie-stt/) tunneling to reach pods which are not on the same host. <br/> Packets are forwarded or dropped via the tunnel metadata information supplied by the ovn network controller. <br/> NAT is done for north-south communication. | [ovn-kubernetes](https://github.com/openvswitch/ovn-kubernetes) | [Deploy via ansible](https://github.com/openvswitch/ovn-kubernetes/tree/master/contrib). Distributed ACLs can be applied via Kubernetes policies. IPAM support. Load-balancing can be achieved without kube-proxy. NATing is done without using iptables/netsh. |
|
||||
| NAT (*not used in Kubernetes*) | Containers are given a vNIC connected to an internal vSwitch. DNS/DHCP is provided using an internal component called [WinNAT](https://techcommunity.microsoft.com/t5/virtualization/windows-nat-winnat-capabilities-and-limitations/ba-p/382303) | MAC and IP is rewritten to host MAC/IP. | [nat](https://github.com/Microsoft/windows-container-networking/tree/master/plugins/nat) | Included here for completeness |
|
||||
|
||||
|
|
|
|||
|
|
@ -24,8 +24,8 @@ It is assumed that a cluster-independent service manages normal users in the fol
|
|||
- a user store like Keystone or Google Accounts
|
||||
- a file with a list of usernames and passwords
|
||||
|
||||
In this regard, _Kubernetes does not have objects which represent normal user
|
||||
accounts._ Normal users cannot be added to a cluster through an API call.
|
||||
In this regard, _Kubernetes does not have objects which represent normal user accounts._
|
||||
Normal users cannot be added to a cluster through an API call.
|
||||
|
||||
Even though a normal user cannot be added via an API call, any user that
|
||||
presents a valid certificate signed by the cluster's certificate authority
|
||||
|
|
@ -92,7 +92,7 @@ include multiple organization fields in the certificate.
|
|||
|
||||
For example, using the `openssl` command line tool to generate a certificate signing request:
|
||||
|
||||
``` bash
|
||||
```bash
|
||||
openssl req -new -key jbeda.pem -out jbeda-csr.pem -subj "/CN=jbeda/O=app1/O=app2"
|
||||
```
|
||||
|
||||
|
|
@ -110,7 +110,7 @@ The token file is a csv file with a minimum of 3 columns: token, user name, user
|
|||
followed by optional group names.
|
||||
|
||||
{{< note >}}
|
||||
If you have more than one group the column must be double quoted e.g.
|
||||
If you have more than one group, the column must be double quoted e.g.
|
||||
|
||||
```conf
|
||||
token,user,uid,"group1,group2,group3"
|
||||
|
|
@ -121,9 +121,9 @@ token,user,uid,"group1,group2,group3"
|
|||
|
||||
When using bearer token authentication from an http client, the API
|
||||
server expects an `Authorization` header with a value of `Bearer
|
||||
<token>`. The bearer token must be a character sequence that can be
|
||||
<token>`. The bearer token must be a character sequence that can be
|
||||
put in an HTTP header value using no more than the encoding and
|
||||
quoting facilities of HTTP. For example: if the bearer token is
|
||||
quoting facilities of HTTP. For example: if the bearer token is
|
||||
`31ada4fd-adec-460c-809a-9e56ceb75269` then it would appear in an HTTP
|
||||
header as shown below.
|
||||
|
||||
|
|
@ -141,8 +141,8 @@ are stored as Secrets in the `kube-system` namespace, where they can be
|
|||
dynamically managed and created. Controller Manager contains a TokenCleaner
|
||||
controller that deletes bootstrap tokens as they expire.
|
||||
|
||||
The tokens are of the form `[a-z0-9]{6}.[a-z0-9]{16}`. The first component is a
|
||||
Token ID and the second component is the Token Secret. You specify the token
|
||||
The tokens are of the form `[a-z0-9]{6}.[a-z0-9]{16}`. The first component is a
|
||||
Token ID and the second component is the Token Secret. You specify the token
|
||||
in an HTTP header as follows:
|
||||
|
||||
```http
|
||||
|
|
@ -150,15 +150,15 @@ Authorization: Bearer 781292.db7bc3a58fc5f07e
|
|||
```
|
||||
|
||||
You must enable the Bootstrap Token Authenticator with the
|
||||
`--enable-bootstrap-token-auth` flag on the API Server. You must enable
|
||||
`--enable-bootstrap-token-auth` flag on the API Server. You must enable
|
||||
the TokenCleaner controller via the `--controllers` flag on the Controller
|
||||
Manager. This is done with something like `--controllers=*,tokencleaner`.
|
||||
Manager. This is done with something like `--controllers=*,tokencleaner`.
|
||||
`kubeadm` will do this for you if you are using it to bootstrap a cluster.
|
||||
|
||||
The authenticator authenticates as `system:bootstrap:<Token ID>`. It is
|
||||
included in the `system:bootstrappers` group. The naming and groups are
|
||||
The authenticator authenticates as `system:bootstrap:<Token ID>`. It is
|
||||
included in the `system:bootstrappers` group. The naming and groups are
|
||||
intentionally limited to discourage users from using these tokens past
|
||||
bootstrapping. The user names and group can be used (and are used by `kubeadm`)
|
||||
bootstrapping. The user names and group can be used (and are used by `kubeadm`)
|
||||
to craft the appropriate authorization policies to support bootstrapping a
|
||||
cluster.
|
||||
|
||||
|
|
@ -234,7 +234,7 @@ The created token is a signed JSON Web Token (JWT).
|
|||
|
||||
The signed JWT can be used as a bearer token to authenticate as the given service
|
||||
account. See [above](#putting-a-bearer-token-in-a-request) for how the token is included
|
||||
in a request. Normally these tokens are mounted into pods for in-cluster access to
|
||||
in a request. Normally these tokens are mounted into pods for in-cluster access to
|
||||
the API server, but can be used from outside the cluster as well.
|
||||
|
||||
Service accounts authenticate with the username `system:serviceaccount:(NAMESPACE):(SERVICEACCOUNT)`,
|
||||
|
|
@ -265,7 +265,7 @@ is included in a request.
|
|||
sequenceDiagram
|
||||
participant user as User
|
||||
participant idp as Identity Provider
|
||||
participant kube as Kubectl
|
||||
participant kube as kubectl
|
||||
participant api as API Server
|
||||
|
||||
user ->> idp: 1. Log in to IdP
|
||||
|
|
@ -273,7 +273,7 @@ sequenceDiagram
|
|||
idp -->> user: 2. Provide access_token,<br>id_token, and refresh_token
|
||||
deactivate idp
|
||||
activate user
|
||||
user ->> kube: 3. Call Kubectl<br>with --token being the id_token<br>OR add tokens to .kube/config
|
||||
user ->> kube: 3. Call kubectl<br>with --token being the id_token<br>OR add tokens to .kube/config
|
||||
deactivate user
|
||||
activate kube
|
||||
kube ->> api: 4. Authorization: Bearer...
|
||||
|
|
@ -295,7 +295,9 @@ sequenceDiagram
|
|||
1. `kubectl` sends your `id_token` in a header called Authorization to the API server
|
||||
1. The API server will make sure the JWT signature is valid
|
||||
1. Check to make sure the `id_token` hasn't expired
|
||||
1. Perform claim and/or user validation if CEL expressions are configured with `AuthenticationConfiguration`.
|
||||
|
||||
Perform claim and/or user validation if CEL expressions are configured with `AuthenticationConfiguration`.
|
||||
|
||||
1. Make sure the user is authorized
|
||||
1. Once authorized the API server returns a response to `kubectl`
|
||||
1. `kubectl` provides feedback to the user
|
||||
|
|
@ -319,25 +321,27 @@ To enable the plugin, configure the following flags on the API server:
|
|||
|
||||
| Parameter | Description | Example | Required |
|
||||
| --------- | ----------- | ------- | ------- |
|
||||
| `--oidc-issuer-url` | URL of the provider that allows the API server to discover public signing keys. Only URLs that use the `https://` scheme are accepted. This is typically the provider's discovery URL, changed to have an empty path | If the issuer's OIDC discovery URL is `https://accounts.provider.example/.well-known/openid-configuration`, the value should be `https://accounts.provider.example` | Yes |
|
||||
| `--oidc-issuer-url` | URL of the provider that allows the API server to discover public signing keys. Only URLs that use the `https://` scheme are accepted. This is typically the provider's discovery URL, changed to have an empty path. | If the issuer's OIDC discovery URL is `https://accounts.provider.example/.well-known/openid-configuration`, the value should be `https://accounts.provider.example` | Yes |
|
||||
| `--oidc-client-id` | A client id that all tokens must be issued for. | kubernetes | Yes |
|
||||
| `--oidc-username-claim` | JWT claim to use as the user name. By default `sub`, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as `email` or `name`, depending on their provider. However, claims other than `email` will be prefixed with the issuer URL to prevent naming clashes with other plugins. | sub | No |
|
||||
| `--oidc-username-prefix` | Prefix prepended to username claims to prevent clashes with existing names (such as `system:` users). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this flag isn't provided and `--oidc-username-claim` is a value other than `email` the prefix defaults to `( Issuer URL )#` where `( Issuer URL )` is the value of `--oidc-issuer-url`. The value `-` can be used to disable all prefixing. | `oidc:` | No |
|
||||
| `--oidc-groups-claim` | JWT claim to use as the user's group. If the claim is present it must be an array of strings. | groups | No |
|
||||
| `--oidc-groups-prefix` | Prefix prepended to group claims to prevent clashes with existing names (such as `system:` groups). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. | `oidc:` | No |
|
||||
| `--oidc-required-claim` | A key=value pair that describes a required claim in the ID Token. If set, the claim is verified to be present in the ID Token with a matching value. Repeat this flag to specify multiple claims. | `claim=value` | No |
|
||||
| `--oidc-ca-file` | The path to the certificate for the CA that signed your identity provider's web certificate. Defaults to the host's root CAs. | `/etc/kubernetes/ssl/kc-ca.pem` | No |
|
||||
| `--oidc-ca-file` | The path to the certificate for the CA that signed your identity provider's web certificate. Defaults to the host's root CAs. | `/etc/kubernetes/ssl/kc-ca.pem` | No |
|
||||
| `--oidc-signing-algs` | The signing algorithms accepted. Default is "RS256". | `RS512` | No |
|
||||
|
||||
##### Authentication configuration from a file {#using-authentication-configuration}
|
||||
|
||||
{{< feature-state feature_gate_name="StructuredAuthenticationConfiguration" >}}
|
||||
|
||||
JWT Authenticator is an authenticator to authenticate Kubernetes users using JWT compliant tokens. The authenticator will attempt to
|
||||
parse a raw ID token, verify it's been signed by the configured issuer. The public key to verify the signature is discovered from the issuer's public endpoint using OIDC discovery.
|
||||
JWT Authenticator is an authenticator to authenticate Kubernetes users using JWT compliant tokens.
|
||||
The authenticator will attempt to parse a raw ID token, verify it's been signed by the configured issuer.
|
||||
The public key to verify the signature is discovered from the issuer's public endpoint using OIDC discovery.
|
||||
|
||||
The minimum valid JWT payload must contain the following claims:
|
||||
```yaml
|
||||
|
||||
```json
|
||||
{
|
||||
"iss": "https://example.com", // must match the issuer.url
|
||||
"aud": ["my-app"], // at least one of the entries in issuer.audiences must match the "aud" claim in presented JWTs.
|
||||
|
|
@ -346,12 +350,17 @@ The minimum valid JWT payload must contain the following claims:
|
|||
}
|
||||
```
|
||||
|
||||
The configuration file approach allows you to configure multiple JWT authenticators, each with a unique `issuer.url` and `issuer.discoveryURL`. The configuration file even allows you to specify [CEL](/docs/reference/using-api/cel/)
|
||||
expressions to map claims to user attributes, and to validate claims and user information. The API server also automatically reloads the authenticators when the configuration file is modified. You can use
|
||||
`apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds` metric to monitor the last time the configuration was reloaded by the API server.
|
||||
The configuration file approach allows you to configure multiple JWT authenticators, each with a unique
|
||||
`issuer.url` and `issuer.discoveryURL`. The configuration file even allows you to specify [CEL](/docs/reference/using-api/cel/)
|
||||
expressions to map claims to user attributes, and to validate claims and user information.
|
||||
The API server also automatically reloads the authenticators when the configuration file is modified.
|
||||
You can use `apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds` metric
|
||||
to monitor the last time the configuration was reloaded by the API server.
|
||||
|
||||
You must specify the path to the authentication configuration using the `--authentication-config` flag on the API server. If you want to use command line flags instead of the configuration file, those will continue to work as-is.
|
||||
To access the new capabilities like configuring multiple authenticators, setting multiple audiences for an issuer, switch to using the configuration file.
|
||||
You must specify the path to the authentication configuration using the `--authentication-config` flag
|
||||
on the API server. If you want to use command line flags instead of the configuration file, those will
|
||||
continue to work as-is. To access the new capabilities like configuring multiple authenticators,
|
||||
setting multiple audiences for an issuer, switch to using the configuration file.
|
||||
|
||||
For Kubernetes v{{< skew currentVersion >}}, the structured authentication configuration file format
|
||||
is beta-level, and the mechanism for using that configuration is also beta. Provided you didn't specifically
|
||||
|
|
@ -476,11 +485,14 @@ jwt:
|
|||
`jwt.claimValidationRules[i].expression` represents the expression which will be evaluated by CEL.
|
||||
CEL expressions have access to the contents of the token payload, organized into `claims` CEL variable.
|
||||
`claims` is a map of claim names (as strings) to claim values (of any type).
|
||||
|
||||
* User validation rule expression
|
||||
|
||||
`jwt.userValidationRules[i].expression` represents the expression which will be evaluated by CEL.
|
||||
CEL expressions have access to the contents of `userInfo`, organized into `user` CEL variable.
|
||||
Refer to the [UserInfo](/docs/reference/generated/kubernetes-api/v{{< skew currentVersion >}}/#userinfo-v1-authentication-k8s-io) API documentation for the schema of `user`.
|
||||
Refer to the [UserInfo](/docs/reference/generated/kubernetes-api/v{{< skew currentVersion >}}/#userinfo-v1-authentication-k8s-io)
|
||||
API documentation for the schema of `user`.
|
||||
|
||||
* Claim mapping expression
|
||||
|
||||
`jwt.claimMappings.username.expression`, `jwt.claimMappings.groups.expression`, `jwt.claimMappings.uid.expression`
|
||||
|
|
@ -520,6 +532,7 @@ jwt:
|
|||
```bash
|
||||
TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6ImY3dF9tOEROWmFTQk1oWGw5QXZTWGhBUC04Y0JmZ0JVbFVpTG5oQkgxdXMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJrdWJlcm5ldGVzIiwiZXhwIjoxNzAzMjMyOTQ5LCJpYXQiOjE3MDExMDcyMzMsImlzcyI6Imh0dHBzOi8vZXhhbXBsZS5jb20iLCJqdGkiOiI3YzMzNzk0MjgwN2U3M2NhYTJjMzBjODY4YWMwY2U5MTBiY2UwMmRkY2JmZWJlOGMyM2I4YjVmMjdhZDYyODczIiwibmJmIjoxNzAxMTA3MjMzLCJyb2xlcyI6InVzZXIsYWRtaW4iLCJzdWIiOiJhdXRoIiwidGVuYW50IjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjRhIiwidXNlcm5hbWUiOiJmb28ifQ.TBWF2RkQHm4QQz85AYPcwLxSk-VLvQW-mNDHx7SEOSv9LVwcPYPuPajJpuQn9C_gKq1R94QKSQ5F6UgHMILz8OfmPKmX_00wpwwNVGeevJ79ieX2V-__W56iNR5gJ-i9nn6FYk5pwfVREB0l4HSlpTOmu80gbPWAXY5hLW0ZtcE1JTEEmefORHV2ge8e3jp1xGafNy6LdJWabYuKiw8d7Qga__HxtKB-t0kRMNzLRS7rka_SfQg0dSYektuxhLbiDkqhmRffGlQKXGVzUsuvFw7IGM5ZWnZgEMDzCI357obHeM3tRqpn5WRjtB8oM7JgnCymaJi-P3iCd88iu1xnzA
|
||||
```
|
||||
|
||||
where the token payload is:
|
||||
|
||||
```json
|
||||
|
|
@ -583,7 +596,9 @@ jwt:
|
|||
```bash
|
||||
TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6ImY3dF9tOEROWmFTQk1oWGw5QXZTWGhBUC04Y0JmZ0JVbFVpTG5oQkgxdXMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJrdWJlcm5ldGVzIiwiZXhwIjoxNzAzMjMyOTQ5LCJpYXQiOjE3MDExMDcyMzMsImlzcyI6Imh0dHBzOi8vZXhhbXBsZS5jb20iLCJqdGkiOiI3YzMzNzk0MjgwN2U3M2NhYTJjMzBjODY4YWMwY2U5MTBiY2UwMmRkY2JmZWJlOGMyM2I4YjVmMjdhZDYyODczIiwibmJmIjoxNzAxMTA3MjMzLCJyb2xlcyI6InVzZXIsYWRtaW4iLCJzdWIiOiJhdXRoIiwidGVuYW50IjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjRhIiwidXNlcm5hbWUiOiJmb28ifQ.TBWF2RkQHm4QQz85AYPcwLxSk-VLvQW-mNDHx7SEOSv9LVwcPYPuPajJpuQn9C_gKq1R94QKSQ5F6UgHMILz8OfmPKmX_00wpwwNVGeevJ79ieX2V-__W56iNR5gJ-i9nn6FYk5pwfVREB0l4HSlpTOmu80gbPWAXY5hLW0ZtcE1JTEEmefORHV2ge8e3jp1xGafNy6LdJWabYuKiw8d7Qga__HxtKB-t0kRMNzLRS7rka_SfQg0dSYektuxhLbiDkqhmRffGlQKXGVzUsuvFw7IGM5ZWnZgEMDzCI357obHeM3tRqpn5WRjtB8oM7JgnCymaJi-P3iCd88iu1xnzA
|
||||
```
|
||||
|
||||
where the token payload is:
|
||||
|
||||
```json
|
||||
{
|
||||
"aud": "kubernetes",
|
||||
|
|
@ -599,7 +614,8 @@ jwt:
|
|||
}
|
||||
```
|
||||
|
||||
The token with the above `AuthenticationConfiguration` will fail to authenticate because the `hd` claim is not set to `example.com`. The API server will return `401 Unauthorized` error.
|
||||
The token with the above `AuthenticationConfiguration` will fail to authenticate because the
|
||||
`hd` claim is not set to `example.com`. The API server will return `401 Unauthorized` error.
|
||||
{{% /tab %}}
|
||||
{{% tab name="Fails user validation" %}}
|
||||
```yaml
|
||||
|
|
@ -627,9 +643,11 @@ jwt:
|
|||
- expression: "!user.username.startsWith('system:')" # the username will be system:foo and expression will evaluate to false, so validation will fail.
|
||||
message: 'username cannot used reserved system: prefix'
|
||||
```
|
||||
|
||||
```bash
|
||||
TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6ImY3dF9tOEROWmFTQk1oWGw5QXZTWGhBUC04Y0JmZ0JVbFVpTG5oQkgxdXMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJrdWJlcm5ldGVzIiwiZXhwIjoxNzAzMjMyOTQ5LCJoZCI6ImV4YW1wbGUuY29tIiwiaWF0IjoxNzAxMTEzMTAxLCJpc3MiOiJodHRwczovL2V4YW1wbGUuY29tIiwianRpIjoiYjViMDY1MjM3MmNkMjBlMzQ1YjZmZGZmY2RjMjE4MWY0YWZkNmYyNTlhYWI0YjdlMzU4ODEyMzdkMjkyMjBiYyIsIm5iZiI6MTcwMTExMzEwMSwicm9sZXMiOiJ1c2VyLGFkbWluIiwic3ViIjoiYXV0aCIsInRlbmFudCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0YSIsInVzZXJuYW1lIjoiZm9vIn0.FgPJBYLobo9jnbHreooBlvpgEcSPWnKfX6dc0IvdlRB-F0dCcgy91oCJeK_aBk-8zH5AKUXoFTlInfLCkPivMOJqMECA1YTrMUwt_IVqwb116AqihfByUYIIqzMjvUbthtbpIeHQm2fF0HbrUqa_Q0uaYwgy8mD807h7sBcUMjNd215ff_nFIHss-9zegH8GI1d9fiBf-g6zjkR1j987EP748khpQh9IxPjMJbSgG_uH5x80YFuqgEWwq-aYJPQxXX6FatP96a2EAn7wfPpGlPRt0HcBOvq5pCnudgCgfVgiOJiLr_7robQu4T1bis0W75VPEvwWtgFcLnvcQx0JWg
|
||||
```
|
||||
|
||||
where the token payload is:
|
||||
|
||||
```json
|
||||
|
|
@ -663,7 +681,9 @@ jwt:
|
|||
}
|
||||
}
|
||||
```
|
||||
which will fail user validation because the username starts with `system:`. The API server will return `401 Unauthorized` error.
|
||||
|
||||
which will fail user validation because the username starts with `system:`.
|
||||
The API server will return `401 Unauthorized` error.
|
||||
{{% /tab %}}
|
||||
{{< /tabs >}}
|
||||
|
||||
|
|
@ -689,20 +709,20 @@ For an identity provider to work with Kubernetes it must:
|
|||
You can host the discovery endpoint at a different location than the issuer (such as locally in the cluster) and specify the
|
||||
`issuer.discoveryURL` in the configuration file.
|
||||
|
||||
2. Run in TLS with non-obsolete ciphers
|
||||
3. Have a CA signed certificate (even if the CA is not a commercial CA or is self signed)
|
||||
1. Run in TLS with non-obsolete ciphers
|
||||
1. Have a CA signed certificate (even if the CA is not a commercial CA or is self signed)
|
||||
|
||||
A note about requirement #3 above, requiring a CA signed certificate. If you deploy your own
|
||||
A note about requirement #3 above, requiring a CA signed certificate. If you deploy your own
|
||||
identity provider (as opposed to one of the cloud providers like Google or Microsoft) you MUST
|
||||
have your identity provider's web server certificate signed by a certificate with the `CA` flag
|
||||
set to `TRUE`, even if it is self signed. This is due to GoLang's TLS client implementation
|
||||
set to `TRUE`, even if it is self signed. This is due to GoLang's TLS client implementation
|
||||
being very strict to the standards around certificate validation. If you don't have a CA handy,
|
||||
you can use the [gencert script](https://github.com/dexidp/dex/blob/master/examples/k8s/gencert.sh)
|
||||
from the Dex team to create a simple CA and a signed certificate and key pair. Or you can use
|
||||
[this similar script](https://raw.githubusercontent.com/TremoloSecurity/openunison-qs-kubernetes/master/src/main/bash/makessl.sh)
|
||||
that generates SHA256 certs with a longer life and larger key size.
|
||||
|
||||
Setup instructions for specific systems:
|
||||
Refer to setup instructions for specific systems:
|
||||
|
||||
- [UAA](https://docs.cloudfoundry.org/concepts/architecture/uaa.html)
|
||||
- [Dex](https://dexidp.io/docs/kubernetes/)
|
||||
|
|
@ -765,7 +785,8 @@ and `client_secret` storing the new values for the `refresh_token` and `id_token
|
|||
|
||||
##### Option 2 - Use the `--token` Option
|
||||
|
||||
The `kubectl` command lets you pass in a token using the `--token` option. Copy and paste the `id_token` into this option:
|
||||
The `kubectl` command lets you pass in a token using the `--token` option.
|
||||
Copy and paste the `id_token` into this option:
|
||||
|
||||
```bash
|
||||
kubectl --token=eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL21sYi50cmVtb2xvLmxhbjo4MDQzL2F1dGgvaWRwL29pZGMiLCJhdWQiOiJrdWJlcm5ldGVzIiwiZXhwIjoxNDc0NTk2NjY5LCJqdGkiOiI2RDUzNXoxUEpFNjJOR3QxaWVyYm9RIiwiaWF0IjoxNDc0NTk2MzY5LCJuYmYiOjE0NzQ1OTYyNDksInN1YiI6Im13aW5kdSIsInVzZXJfcm9sZSI6WyJ1c2VycyIsIm5ldy1uYW1lc3BhY2Utdmlld2VyIl0sImVtYWlsIjoibXdpbmR1QG5vbW9yZWplZGkuY29tIn0.f2As579n9VNoaKzoF-dOQGmXkFKf1FMyNV0-va_B63jn-_n9LGSCca_6IVMP8pO-Zb4KvRqGyTP0r3HkHxYy5c81AnIh8ijarruczl-TK_yF5akjSTHFZD-0gRzlevBDiH8Q79NAr-ky0P4iIXS8lY9Vnjch5MF74Zx0c3alKJHJUnnpjIACByfF2SCaYzbWFMUNat-K1PaUk5-ujMBG7yYnr95xD-63n8CO8teGUAAEMx6zRjzfhnhbzX-ajwZLGwGUBT4WqjMs70-6a7_8gZmLZb2az1cZynkFRj2BaCkVT3A2RrjeEwZEtGXlMqKJ1_I2ulrOVsYx01_yD35-rw get nodes
|
||||
|
|
@ -1436,9 +1457,9 @@ to the plugin. Plugins should use the `spec.interactive` field of the input
|
|||
determine if `stdin` has been provided. A plugin's `stdin` requirements (i.e., whether
|
||||
`stdin` is optional, strictly required, or never used in order for the plugin
|
||||
to run successfully) is declared via the `user.exec.interactiveMode` field in the
|
||||
[kubeconfig](/docs/concepts/configuration/organize-cluster-access-kubeconfig/) (see table
|
||||
below for valid values). The `user.exec.interactiveMode` field is optional in `client.authentication.k8s.io/v1beta1`
|
||||
and required in `client.authentication.k8s.io/v1`.
|
||||
[kubeconfig](/docs/concepts/configuration/organize-cluster-access-kubeconfig/)
|
||||
(see table below for valid values). The `user.exec.interactiveMode` field is optional
|
||||
in `client.authentication.k8s.io/v1beta1` and required in `client.authentication.k8s.io/v1`.
|
||||
|
||||
{{< table caption="interactiveMode values" >}}
|
||||
| `interactiveMode` Value | Meaning |
|
||||
|
|
@ -1613,15 +1634,17 @@ the Kubernetes API server fills the status with the user attributes and returns
|
|||
|
||||
Request example (the body would be a `SelfSubjectReview`):
|
||||
|
||||
```
|
||||
```http
|
||||
POST /apis/authentication.k8s.io/v1/selfsubjectreviews
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
"apiVersion": "authentication.k8s.io/v1",
|
||||
"kind": "SelfSubjectReview"
|
||||
}
|
||||
```
|
||||
|
||||
Response example:
|
||||
|
||||
```json
|
||||
|
|
|
|||
|
|
@ -13,6 +13,10 @@ stages:
|
|||
- stage: beta
|
||||
defaultValue: false
|
||||
fromVersion: "1.28"
|
||||
toVersion: "1.29"
|
||||
- stage: beta
|
||||
defaultValue: true
|
||||
fromVersion: "1.30"
|
||||
---
|
||||
Enable the kubelet to allocate swap memory for Kubernetes workloads on a node.
|
||||
Must be used with `KubeletConfiguration.failSwapOn` set to false.
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ By default, Kubernetes fetches node summary metrics data using an embedded
|
|||
[cAdvisor](https://github.com/google/cadvisor) that runs within the kubelet. If you
|
||||
enable the `PodAndContainerStatsFromCRI` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/)
|
||||
in your cluster, and you use a container runtime that supports statistics access via
|
||||
{{< glossary_tooltip term_id="cri" text="Container Runtime Interface">}} (CRI), then
|
||||
{{< glossary_tooltip term_id="container-runtime-interface" text="Container Runtime Interface">}} (CRI), then
|
||||
the kubelet [fetches Pod- and container-level metric data using CRI](/docs/reference/instrumentation/cri-pod-container-metrics), and not via cAdvisor.
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
|
|
|||
|
|
@ -627,9 +627,7 @@ Example: `node.kubernetes.io/exclude-from-external-load-balancers`
|
|||
|
||||
Used on: Node
|
||||
|
||||
Kubernetes automatically enables the `ServiceNodeExclusion` feature gate on
|
||||
the clusters it creates. With this feature gate enabled on a cluster,
|
||||
you can add labels to particular worker nodes to exclude them from the list of backend servers.
|
||||
You can add labels to particular worker nodes to exclude them from the list of backend servers used by external load balancers.
|
||||
The following command can be used to exclude a worker node from the list of backend servers in a
|
||||
backend set:
|
||||
|
||||
|
|
|
|||
|
|
@ -27,8 +27,7 @@ see the [Creating a cluster with kubeadm](/docs/setup/production-environment/too
|
|||
* Unique hostname, MAC address, and product_uuid for every node. See [here](#verify-mac-address) for more details.
|
||||
* Certain ports are open on your machines. See [here](#check-required-ports) for more details.
|
||||
* Swap configuration. The default behavior of a kubelet was to fail to start if swap memory was detected on a node.
|
||||
Swap has been supported since v1.22. And since v1.28, Swap is supported for cgroup v2 only; the NodeSwap feature
|
||||
gate of the kubelet is beta but disabled by default.
|
||||
See [Swap memory management](/docs/concepts/architecture/nodes/#swap-memory) for more details.
|
||||
* You **MUST** disable swap if the kubelet is not properly configured to use swap. For example, `sudo swapoff -a`
|
||||
will disable swapping temporarily. To make this change persistent across reboots, make sure swap is disabled in
|
||||
config files like `/etc/fstab`, `systemd.swap`, depending how it was configured on your system.
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ pod/dnsutils created
|
|||
kubectl get pods dnsutils
|
||||
```
|
||||
```
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
dnsutils 1/1 Running 0 <some-time>
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ This offers flexibility in managing and merging kubelet configurations from diff
|
|||
However, it is important to note that behavior varies based on the data type of the configuration fields.
|
||||
|
||||
Different data types in the kubelet configuration structure merge differently. See the
|
||||
[reference document](/docs/reference/node/kubelet-config-directory-merging.md)
|
||||
[reference document](/docs/reference/node/kubelet-config-directory-merging/)
|
||||
for more information.
|
||||
|
||||
### Kubelet configuration merging order
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ If you do not already have an application running in your cluster, start
|
|||
a Hello world application by entering this command:
|
||||
|
||||
```shell
|
||||
kubectl create deployment node-hello --image=gcr.io/google-samples/node-hello:1.0 --port=8080
|
||||
kubectl create deployment hello-app --image=gcr.io/google-samples/hello-app:2.0 --port=8080
|
||||
```
|
||||
|
||||
<!-- steps -->
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: patch-demo-ctr-3
|
||||
image: gcr.io/google-samples/node-hello:1.0
|
||||
image: gcr.io/google-samples/hello-app:2.0
|
||||
```
|
||||
|
||||
In your patch command, set `type` to `merge`:
|
||||
|
|
@ -264,7 +264,7 @@ The output shows that your list of one Container replaced the existing `containe
|
|||
```yaml
|
||||
spec:
|
||||
containers:
|
||||
- image: gcr.io/google-samples/node-hello:1.0
|
||||
- image: gcr.io/google-samples/hello-app:2.0
|
||||
...
|
||||
name: patch-demo-ctr-3
|
||||
```
|
||||
|
|
|
|||
|
|
@ -112,8 +112,8 @@ nginx ClusterIP None <none> 80/TCP 12s
|
|||
kubectl get statefulset web
|
||||
```
|
||||
```
|
||||
NAME DESIRED CURRENT AGE
|
||||
web 2 1 20s
|
||||
NAME READY AGE
|
||||
web 2/2 37s
|
||||
```
|
||||
|
||||
### Ordered Pod creation
|
||||
|
|
@ -593,7 +593,7 @@ In one terminal window, patch the `web` StatefulSet to change the container
|
|||
image again:
|
||||
|
||||
```shell
|
||||
kubectl patch statefulset web --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"gcr.io/google_containers/nginx-slim:0.8"}]'
|
||||
kubectl patch statefulset web --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"registry.k8s.io/nginx-slim:0.8"}]'
|
||||
```
|
||||
```
|
||||
statefulset.apps/web patched
|
||||
|
|
@ -1357,4 +1357,4 @@ You also need to delete the persistent storage media for the PersistentVolumes
|
|||
used in this tutorial.
|
||||
Follow the necessary steps, based on your environment, storage configuration,
|
||||
and provisioning method, to ensure that all storage is reclaimed.
|
||||
{{< /note >}}
|
||||
{{< /note >}}
|
||||
|
|
|
|||
|
|
@ -154,7 +154,9 @@ external IP address.
|
|||
The response to a successful request is a hello message:
|
||||
|
||||
```shell
|
||||
Hello Kubernetes!
|
||||
Hello, world!
|
||||
Version: 2.0.0
|
||||
Hostname: 0bd46b45f32f
|
||||
```
|
||||
|
||||
## {{% heading "cleanup" %}}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: nginx
|
||||
image: registry.k8s.io/nginx-slim:0.8
|
||||
image: registry.k8s.io/nginx-slim:0.7
|
||||
ports:
|
||||
- containerPort: 80
|
||||
name: web
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ metadata:
|
|||
spec:
|
||||
containers:
|
||||
- name: envar-demo-container
|
||||
image: gcr.io/google-samples/node-hello:1.0
|
||||
image: gcr.io/google-samples/hello-app:2.0
|
||||
env:
|
||||
- name: DEMO_GREETING
|
||||
value: "Hello from the environment"
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ spec:
|
|||
runAsUser: 1000
|
||||
containers:
|
||||
- name: sec-ctx-demo-2
|
||||
image: gcr.io/google-samples/node-hello:1.0
|
||||
image: gcr.io/google-samples/hello-app:2.0
|
||||
securityContext:
|
||||
runAsUser: 2000
|
||||
allowPrivilegeEscalation: false
|
||||
|
|
|
|||
|
|
@ -5,4 +5,4 @@ metadata:
|
|||
spec:
|
||||
containers:
|
||||
- name: sec-ctx-3
|
||||
image: gcr.io/google-samples/node-hello:1.0
|
||||
image: gcr.io/google-samples/hello-app:2.0
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ metadata:
|
|||
spec:
|
||||
containers:
|
||||
- name: sec-ctx-4
|
||||
image: gcr.io/google-samples/node-hello:1.0
|
||||
image: gcr.io/google-samples/hello-app:2.0
|
||||
securityContext:
|
||||
capabilities:
|
||||
add: ["NET_ADMIN", "SYS_TIME"]
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ spec:
|
|||
app.kubernetes.io/name: load-balancer-example
|
||||
spec:
|
||||
containers:
|
||||
- image: gcr.io/google-samples/node-hello:1.0
|
||||
- image: gcr.io/google-samples/hello-app:2.0
|
||||
name: hello-world
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ metadata:
|
|||
annotations:
|
||||
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- host: hello-world.example
|
||||
http:
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
title: शब्दकोष
|
||||
layout: glossary
|
||||
noedit: true
|
||||
body_class: glossary
|
||||
default_active_tag: fundamental
|
||||
weight: 5
|
||||
card:
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
title: Glosarium
|
||||
layout: glossary
|
||||
noedit: true
|
||||
body_class: glossary
|
||||
default_active_tag: fundamental
|
||||
weight: 5
|
||||
card:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
title: クラスターインフラストラクチャ
|
||||
id: cluster-infrastructure
|
||||
date: 2019-05-12
|
||||
full_link:
|
||||
short_description: >
|
||||
インフラストラクチャレイヤーは、VM、ネットワーキング、セキュリティグループなどを提供および運用します。
|
||||
|
||||
aka:
|
||||
tags:
|
||||
- operation
|
||||
---
|
||||
インフラストラクチャレイヤーは、VM、ネットワーキング、セキュリティグループなどを提供および運用します。
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
title: コードコントリビューター
|
||||
id: code-contributor
|
||||
date: 2018-04-12
|
||||
full_link: https://github.com/kubernetes/community/tree/master/contributors/devel
|
||||
short_description: >
|
||||
Kubernetesのオープンソースのコードベースを開発し、貢献する人。
|
||||
|
||||
aka:
|
||||
tags:
|
||||
- community
|
||||
- user-type
|
||||
---
|
||||
Kubernetesのオープンソースのコードベースを開発し、貢献する人。
|
||||
|
||||
<!--more-->
|
||||
|
||||
コントリビューターは、一つ以上の{{< glossary_tooltip text="SIG" term_id="sig" >}}のアクティブな{{< glossary_tooltip text="コミュニティメンバー" term_id="member" >}}でもあります。
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
title: 標準化用語集
|
||||
layout: glossary
|
||||
noedit: true
|
||||
body_class: glossary
|
||||
default_active_tag: fundamental
|
||||
weight: 5
|
||||
card:
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ sitemap:
|
|||
priority: 1.0
|
||||
---
|
||||
|
||||
{{< site-searchbar >}}
|
||||
|
||||
{{< blocks/section id="oceanNodes" >}}
|
||||
{{% blocks/feature image="flower" %}}
|
||||
K8s라고도 알려진 [쿠버네티스]({{< relref "/docs/concepts/overview/" >}})는 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 관리해주는 오픈소스 시스템입니다.
|
||||
|
|
|
|||
|
|
@ -365,7 +365,7 @@ pluginapi.Device{ID: "25102017", Health: pluginapi.Healthy, Topology:&pluginapi.
|
|||
|
||||
다음은 장치 플러그인 구현의 예이다.
|
||||
|
||||
* [AMD GPU 장치 플러그인](https://github.com/RadeonOpenCompute/k8s-device-plugin)
|
||||
* [AMD GPU 장치 플러그인](https://github.com/ROCm/k8s-device-plugin)
|
||||
* 인텔 GPU, FPGA, QAT, VPU, SGX, DSA, DLB 및 IAA 장치용 [인텔 장치 플러그인](https://github.com/intel/intel-device-plugins-for-kubernetes)
|
||||
* 하드웨어 지원 가상화를 위한 [KubeVirt 장치 플러그인](https://github.com/kubevirt/kubernetes-device-plugins)
|
||||
* [컨테이너에 최적화된 OS를 위한 NVIDIA GPU 장치 플러그인](https://github.com/GoogleCloudPlatform/container-engine-accelerators/tree/master/cmd/nvidia_gpu)
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ weight: 50
|
|||
* [Traefik 쿠버네티스 인그레스 제공자](https://doc.traefik.io/traefik/providers/kubernetes-ingress/)는
|
||||
[Traefik](https://traefik.io/traefik/) 프록시 용 인그레스 컨트롤러다.
|
||||
* [Tyk 오퍼레이터](https://github.com/TykTechnologies/tyk-operator)는 사용자 지정 리소스로 인그레스를 확장하여 API 관리 기능을 인그레스로 가져온다. Tyk 오퍼레이터는 오픈 소스 Tyk 게이트웨이 및 Tyk 클라우드 컨트롤 플레인과 함께 작동한다.
|
||||
* [Voyager](https://appscode.com/products/voyager)는
|
||||
* [Voyager](https://voyagermesh.com)는
|
||||
[HAProxy](https://www.haproxy.org/#desc)의 인그레스 컨트롤러다.
|
||||
|
||||
## 여러 인그레스 컨트롤러 사용
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
title: 용어집
|
||||
layout: glossary
|
||||
noedit: true
|
||||
body_class: glossary
|
||||
default_active_tag: fundamental
|
||||
weight: 5
|
||||
card:
|
||||
|
|
|
|||
|
|
@ -2,12 +2,6 @@
|
|||
title: Hello Minikube
|
||||
content_type: tutorial
|
||||
weight: 5
|
||||
menu:
|
||||
main:
|
||||
title: "Get Started"
|
||||
weight: 10
|
||||
post: >
|
||||
<p>작업할 준비가 되었나요? 샘플 애플리케이션을 실행하는 간단한 쿠버네티스 클러스터를 구축합니다.</p>
|
||||
card:
|
||||
name: tutorials
|
||||
weight: 10
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ Kubernetes группирует контейнеры, составляющие
|
|||
|
||||
Kubernetes — это проект с открытым исходным кодом, который даёт вам полную свободу воспользоваться преимуществами локальной, гибридной или публичной облачной инфраструктуры, позволяя без усилий перераспределять рабочую нагрузку по мере необходимости.
|
||||
|
||||
Для загрузки Kubernetes перейдите в раздел [Download](/releases/download/).
|
||||
|
||||
{{% /blocks/feature %}}
|
||||
|
||||
{{< /blocks/section >}}
|
||||
|
|
@ -43,12 +45,17 @@ Kubernetes — это проект с открытым исходным кодо
|
|||
<button id="desktopShowVideoButton" onclick="kub.showVideo()">Смотреть видео</button>
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/" button id="desktopKCButton">Посетите KubeCon + CloudNativeCon в Европе, 19-22 марта 2024 года</a>
|
||||
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-open-source-summit-ai-dev-china/" button id="desktopKCButton">Посетите KubeCon + CloudNativeCon в Китае 21-23 августа</a>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america-2024/" button id="desktopKCButton">Посетите KubeCon + CloudNativeCon в Северной Америке, 12-15 ноября 2024 года</a>
|
||||
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america-2024/" button id="desktopKCButton">Посетите KubeCon + CloudNativeCon в США 12-15 ноября</a>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-india/" button id="desktopKCButton">Посетите KubeCon + CloudNativeCon в Индии 11-12 декабря</a>
|
||||
</div>
|
||||
<div id="videoPlayer">
|
||||
<iframe data-url="https://www.youtube.com/embed/H06qrNmGqyE?autoplay=1" frameborder="0" allowfullscreen></iframe>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
Вам треба мати кластер Kubernetes, а також інструмент командного рядка kubectl має бути налаштований для роботи з вашим кластером. Рекомендується виконувати ці настанови у кластері, що має щонайменше два вузли, які не виконують роль вузлів управління. Якщо у вас немає кластера, ви можете створити його, за допомогою [minikube](https://minikube.sigs.k8s.io/docs/tutorials/multi_node/) або використовувати одну з цих пісочниць:
|
||||
|
||||
* [Killercoda](https://killercoda.com/playgrounds/scenario/kubernetes)
|
||||
* [Play with Kubernetes](https://labs.play-with-k8s.com/)
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 480 KiB |
|
|
@ -0,0 +1,239 @@
|
|||
---
|
||||
layout: blog
|
||||
title: "走进 Kubernetes 读书会(Book Club)"
|
||||
slug: k8s-book-club
|
||||
date: 2024-02-22
|
||||
canonicalUrl: https://www.k8s.dev/blog/2024/02/22/k8s-book-club/
|
||||
author: >
|
||||
Frederico Muñoz (SAS Institute)
|
||||
translator: >
|
||||
[Michael Yao](https://github.com/windsonsea) (DaoCloud)
|
||||
---
|
||||
<!--
|
||||
layout: blog
|
||||
title: "A look into the Kubernetes Book Club"
|
||||
slug: k8s-book-club
|
||||
date: 2024-02-22
|
||||
canonicalUrl: https://www.k8s.dev/blog/2024/02/22/k8s-book-club/
|
||||
author: >
|
||||
Frederico Muñoz (SAS Institute)
|
||||
-->
|
||||
|
||||
<!--
|
||||
Learning Kubernetes and the entire ecosystem of technologies around it is not without its
|
||||
challenges. In this interview, we will talk with [Carlos Santana
|
||||
(AWS)](https://www.linkedin.com/in/csantanapr/) to learn a bit more about how he created the
|
||||
[Kubernetes Book Club](https://community.cncf.io/kubernetes-virtual-book-club/), how it works, and
|
||||
how anyone can join in to take advantage of a community-based learning experience.
|
||||
-->
|
||||
学习 Kubernetes 及其整个生态的技术并非易事。在本次采访中,我们的访谈对象是
|
||||
[Carlos Santana (AWS)](https://www.linkedin.com/in/csantanapr/),
|
||||
了解他是如何创办 [Kubernetes 读书会(Book Club)](https://community.cncf.io/kubernetes-virtual-book-club/)的,
|
||||
整个读书会是如何运作的,以及大家如何加入其中,进而更好地利用社区学习体验。
|
||||
|
||||
<!--
|
||||

|
||||
|
||||
**Frederico Muñoz (FSM)**: Hello Carlos, thank you so much for your availability. To start with,
|
||||
could you tell us a bit about yourself?
|
||||
-->
|
||||

|
||||
|
||||
**Frederico Muñoz (FSM)**:你好 Carlos,非常感谢你能接受我们的采访。首先,你能介绍一下自己吗?
|
||||
|
||||
<!--
|
||||
**Carlos Santana (CS)**: Of course. My experience in deploying Kubernetes in production six
|
||||
years ago opened the door for me to join [Knative](https://knative.dev/) and then contribute to
|
||||
Kubernetes through the Release Team. Working on upstream Kubernetes has been one of the best
|
||||
experiences I've had in open-source. Over the past two years, in my role as a Senior Specialist
|
||||
Solutions Architect at AWS, I have been assisting large enterprises build their internal developer
|
||||
platforms (IDP) on top of Kubernetes. Going forward, my open source contributions are directed
|
||||
towards [CNOE](https://cnoe.io/) and CNCF projects like [Argo](https://github.com/argoproj),
|
||||
[Crossplane](https://www.crossplane.io/), and [Backstage](https://www.cncf.io/projects/backstage/).
|
||||
-->
|
||||
**Carlos Santana (CS)**:当然可以。六年前,我在生产环境中部署 Kubernetes 的经验为我加入
|
||||
[Knative](https://knative.dev/) 并通过 Release Team 为 Kubernetes 贡献代码打开了大门。
|
||||
为上游 Kubernetes 工作是我在开源领域最好的经历之一。在过去的两年里,作为 AWS 的高级专业解决方案架构师,
|
||||
我一直在帮助大型企业在 Kubernetes 之上构建他们的内部开发平台(IDP)。
|
||||
未来我的开源贡献将主要集中在 [CNOE](https://cnoe.io/) 和 CNCF 项目,如
|
||||
[Argo](https://github.com/argoproj)、[Crossplane](https://www.crossplane.io/) 和
|
||||
[Backstage](https://www.cncf.io/projects/backstage/)。
|
||||
|
||||
<!--
|
||||
## Creating the Book Club
|
||||
|
||||
**FSM**: So your path led you to Kubernetes, and at that point what was the motivating factor for
|
||||
starting the Book Club?
|
||||
-->
|
||||
## 创办读书会
|
||||
|
||||
**FSM**:所以你的职业道路把你引向了 Kubernetes,那么是什么动机促使你开始创办读书会呢?
|
||||
|
||||
<!--
|
||||
**CS**: The idea for the Kubernetes Book Club sprang from a casual suggestion during a
|
||||
[TGIK](https://github.com/vmware-archive/tgik) livestream. For me, it was more than just about
|
||||
reading a book; it was about creating a learning community. This platform has not only been a source
|
||||
of knowledge but also a support system, especially during the challenging times of the
|
||||
pandemic. It's gratifying to see how this initiative has helped members cope and grow. The first
|
||||
book [Production
|
||||
Kubernetes](https://www.oreilly.com/library/view/production-kubernetes/9781492092292/) took 36
|
||||
weeks, when we started on March 5th 2021. Currently don't take that long to cover a book, one or two
|
||||
chapters per week.
|
||||
-->
|
||||
**CS**:Kubernetes 读书会的想法源于一次 [TGIK](https://github.com/vmware-archive/tgik) 直播中的一个临时建议。
|
||||
对我来说,这不仅仅是读一本书,更是创办一个学习社区。这个社区平台不仅是知识的来源,也是一个支持系统,
|
||||
特别是在疫情期间陪我度过了艰难时刻。读书会的这项倡议后来帮助许多成员学会了应对和成长,这让我感到很欣慰。
|
||||
我们在 2021 年 3 月 5 日开始第一本书
|
||||
[Production Kubernetes](https://www.oreilly.com/library/view/production-kubernetes/9781492092292/),
|
||||
花了 36 周时间。目前,一本书不会再花那么长时间了,如今每周会完成一到两章。
|
||||
|
||||
<!--
|
||||
**FSM**: Could you describe the way the Kubernetes Book Club works? How do you select the books and how
|
||||
do you go through them?
|
||||
|
||||
**CS**: We collectively choose books based on the interests and needs of the group. This practical
|
||||
approach helps members, especially beginners, grasp complex concepts more easily. We have two weekly
|
||||
series, one for the EMEA timezone, and I organize the US one. Each organizer works with their co-host
|
||||
and picks a book on Slack, then sets up a lineup of hosts for a couple of weeks to discuss each
|
||||
chapter.
|
||||
-->
|
||||
**FSM**:你能介绍一下 Kubernetes 读书会是如何运作的吗?你们如何选书以及如何阅读它们?
|
||||
|
||||
**CS**:我们根据小组的兴趣和需求以集体的方式选书。这种实用的方法有助于成员们(特别是初学者)更容易地掌握复杂的概念。
|
||||
我们每周有两次读书会应对不同的时区,一个针对 EMEA(欧洲、中东及非洲)时区,另一个是由我自己负责的美国时区。
|
||||
每位组织者与他们的联合主持人在 Slack 上甄选一本书,然后安排几个主持人用几周时间讨论每一章。
|
||||
|
||||
<!--
|
||||
**FSM**: If I’m not mistaken, the Kubernetes Book Club is in its 17th book, which is significant: is
|
||||
there any secret recipe for keeping things active?
|
||||
|
||||
**CS**: The secret to keeping the club active and engaging lies in a couple of key factors.
|
||||
-->
|
||||
**FSM**:如果我没记错的话,Kubernetes 读书会如今已经进行到了第 17 本书。这很了不起:有什么秘诀可以让读书这件事保持活跃吗?
|
||||
|
||||
**CS**:保持俱乐部活跃和吸引人参与的秘诀在于几个关键因素。
|
||||
|
||||
<!--
|
||||
Firstly, consistency has been crucial. We strive to maintain a regular schedule, only cancelling
|
||||
meetups for major events like holidays or KubeCon. This regularity helps members stay engaged and
|
||||
builds a reliable community.
|
||||
|
||||
Secondly, making the sessions interesting and interactive has been vital. For instance, I often
|
||||
introduce pop-up quizzes during the meetups, which not only tests members' understanding but also
|
||||
adds an element of fun. This approach keeps the content relatable and helps members understand how
|
||||
theoretical concepts are applied in real-world scenarios.
|
||||
-->
|
||||
首先,一贯性至关重要。我们努力保持定期聚会,只有在重大事件如节假日或 KubeCon 时才会取消聚会。
|
||||
这种规律性有助于成员保持惯性参与,有助于建立一个可靠的社区。
|
||||
|
||||
其次,让聚会有趣生动也非常重要。例如,我经常在聚会期间引入提问测验,不仅检测成员们的理解程度,还增加了一些乐趣。
|
||||
这种方法使读书内容更加贴近实际,并帮助成员们理解理论概念在现实世界中的运用方式。
|
||||
|
||||
<!--
|
||||
## Topics covered in the Book Club
|
||||
|
||||
**FSM**: The main topics of the books have been Kubernetes, GitOps, Security, SRE, and
|
||||
Observability: is this a reflection of the cloud native landscape, especially in terms of
|
||||
popularity?
|
||||
-->
|
||||
## 读书会涵盖的话题
|
||||
|
||||
**FSM**:书籍的主要话题包括 Kubernetes、GitOps、安全、SRE 和可观测性:
|
||||
这是否也反映了云原生领域的现状,特别是在受欢迎程度方面?
|
||||
|
||||
<!--
|
||||
**CS**: Our journey began with 'Production Kubernetes', setting the tone for our focus on practical,
|
||||
production-ready solutions. Since then, we've delved into various aspects of the CNCF landscape,
|
||||
aligning our books with a different theme. Each theme, whether it be Security, Observability, or
|
||||
Service Mesh, is chosen based on its relevance and demand within the community. For instance, in our
|
||||
recent themes on Kubernetes Certifications, we brought the book authors into our fold as active
|
||||
hosts, enriching our discussions with their expertise.
|
||||
-->
|
||||
**CS**:我们的旅程始于《Production Kubernetes》,为我们专注于实用、生产就绪的解决方案定下了基调。
|
||||
从那时起,我们深入探讨了 CNCF 领域的各个方面,根据不同的主题去选书。
|
||||
每个主题,无论是安全性、可观测性还是服务网格,都是根据其相关性和社区需求来选择的。
|
||||
例如,在我们最近关于 Kubernetes 考试认证的主题中,我们邀请了书籍的作者作为活跃现场的主持人,用他们的专业知识丰富了我们的讨论。
|
||||
|
||||
<!--
|
||||
**FSM**: I know that the project had recent changes, namely being integrated into the CNCF as a
|
||||
[Cloud Native Community Group](https://community.cncf.io/). Could you talk a bit about this change?
|
||||
|
||||
**CS**: The CNCF graciously accepted the book club as a Cloud Native Community Group. This is a
|
||||
significant development that has streamlined our operations and expanded our reach. This alignment
|
||||
has been instrumental in enhancing our administrative capabilities, similar to those used by
|
||||
Kubernetes Community Days (KCD) meetups. Now, we have a more robust structure for memberships, event
|
||||
scheduling, mailing lists, hosting web conferences, and recording sessions.
|
||||
-->
|
||||
**FSM**:我了解到此项目最近有一些变化,即被整合到了 CNCF
|
||||
作为[云原生社区组(Cloud Native Community Group)](https://community.cncf.io/)的一部分。你能谈谈这个变化吗?
|
||||
|
||||
**CS**:CNCF 慷慨地接受了读书会作为云原生社区组的一部分。
|
||||
这是读书会发展过程中的重要一步,优化了读书会的运作并扩大了读书会的影响力。
|
||||
这种拉齐对于增强读书会的管理能力至关重要,这点很像 Kubernetes Community Days (KCD) 聚会。
|
||||
现在,读书会有了更稳健的会员结构、活动安排、邮件列表、托管的网络会议和录播系统。
|
||||
|
||||
<!--
|
||||
**FSM**: How has your involvement with the CNCF impacted the growth and engagement of the Kubernetes
|
||||
Book Club over the past six months?
|
||||
|
||||
**CS**: Since becoming part of the CNCF community six months ago, we've witnessed significant
|
||||
quantitative changes within the Kubernetes Book Club. Our membership has surged to over 600 members,
|
||||
and we've successfully organized and conducted more than 40 events during this period. What's even
|
||||
more promising is the consistent turnout, with an average of 30 attendees per event. This growth and
|
||||
engagement are clear indicators of the positive influence of our CNCF affiliation on the Kubernetes
|
||||
Book Club's reach and impact in the community.
|
||||
-->
|
||||
**FSM**:在过去的六个月里,你参与 CNCF 这件事对 Kubernetes 读书会的成长和参与度产生了什么影响?
|
||||
|
||||
**CS**:自从六个月前成为 CNCF 社区的一部分以来,我们在 Kubernetes 读书会中看到了一些显著的变化。
|
||||
我们的会员人数激增至 600 多人,并在此期间成功组织并举办了超过 40 场活动。
|
||||
更令人鼓舞的是,每场活动的出席人数都很稳定,平均约有 30 人参加。
|
||||
这种增长和参与度清楚地表明了我们与 CNCF 的合作让 Kubernetes 读书会在社区中增强了影响力。
|
||||
|
||||
<!--
|
||||
## Joining the Book Club
|
||||
|
||||
**FSM**: For anyone wanting to join, what should they do?
|
||||
|
||||
**CS**: There are three steps to join:
|
||||
-->
|
||||
## 加入读书会
|
||||
|
||||
**FSM**:若有人想加入读书会,他们应该怎么做?
|
||||
|
||||
**CS**:加入读书会只需三步:
|
||||
|
||||
<!--
|
||||
- First, join the [Kubernetes Book Club Community](https://community.cncf.io/kubernetes-virtual-book-club/)
|
||||
- Then RSVP to the
|
||||
[events](https://community.cncf.io/kubernetes-virtual-book-club/)
|
||||
on the community page
|
||||
- Lastly, join the CNCF Slack channel
|
||||
[#kubernetes-book-club](https://cloud-native.slack.com/archives/C05EYA14P37).
|
||||
-->
|
||||
- 首先加入 [Kubernetes 读书会社区](https://community.cncf.io/kubernetes-virtual-book-club/)
|
||||
- 然后注册参与在社区页面上列出的[活动](https://community.cncf.io/kubernetes-virtual-book-club/)
|
||||
- 最后加入 CNCF Slack 频道 [#kubernetes-book-club](https://cloud-native.slack.com/archives/C05EYA14P37)。
|
||||
|
||||
<!--
|
||||
**FSM**: Excellent, thank you! Any final comments you would like to share?
|
||||
|
||||
**CS**: The Kubernetes Book Club is more than just a group of professionals discussing books; it's a
|
||||
vibrant community and amazing volunteers that help organize and host
|
||||
[Neependra Khare](https://www.linkedin.com/in/neependra/),
|
||||
[Eric Smalling](https://www.linkedin.com/in/ericsmalling/),
|
||||
[Sevi Karakulak](https://www.linkedin.com/in/sevikarakulak/),
|
||||
[Chad M. Crowell](https://www.linkedin.com/in/chadmcrowell/),
|
||||
and [Walid (CNJ) Shaari](https://www.linkedin.com/in/walidshaari/).
|
||||
Look us up at KubeCon and get your Kubernetes Book Club sticker!
|
||||
-->
|
||||
**FSM**:太好了,谢谢你!最后你还有什么想法要跟大家分享吗?
|
||||
|
||||
**CS**:Kubernetes 读书会不仅仅是一个讨论书籍的专业小组,它是一个充满活力的社区,
|
||||
有许多令人敬佩的志愿者帮助组织和主持聚会。我想借这次机会感谢几位志愿者:
|
||||
[Neependra Khare](https://www.linkedin.com/in/neependra/)、
|
||||
[Eric Smalling](https://www.linkedin.com/in/ericsmalling/)、
|
||||
[Sevi Karakulak](https://www.linkedin.com/in/sevikarakulak/)、
|
||||
[Chad M. Crowell](https://www.linkedin.com/in/chadmcrowell/)
|
||||
和 [Walid (CNJ) Shaari](https://www.linkedin.com/in/walidshaari/)。
|
||||
欢迎来 KubeCon 与我们相聚,还能领取你的 Kubernetes 读书会贴纸!
|
||||
|
|
@ -3,7 +3,6 @@ title: 垃圾收集
|
|||
content_type: concept
|
||||
weight: 70
|
||||
---
|
||||
|
||||
<!--
|
||||
title: Garbage Collection
|
||||
content_type: concept
|
||||
|
|
@ -105,7 +104,7 @@ You can check for that kind of Event by running
|
|||
-->
|
||||
在 1.20 及更高版本中,如果垃圾收集器检测到非法的跨名字空间 `ownerReference`,
|
||||
或者某集群作用域的依赖对象的 `ownerReference` 引用某名字空间作用域的类别,
|
||||
系统会生成一个警告事件,其原因为 `OwnerRefInvalidNamespace`,`involvedObject`
|
||||
系统会生成一个警告事件,其原因为 `OwnerRefInvalidNamespace` 和 `involvedObject`
|
||||
设置为非法的依赖对象。你可以通过运行
|
||||
`kubectl get events -A --field-selector=reason=OwnerRefInvalidNamespace`
|
||||
来检查是否存在这类事件。
|
||||
|
|
@ -201,8 +200,7 @@ to learn more.
|
|||
默认情况下,Kubernetes 使用后台级联删除方案,除非你手动设置了要使用前台删除,
|
||||
或者选择遗弃依赖对象。
|
||||
|
||||
参阅[使用后台级联删除](/zh-cn/docs/tasks/administer-cluster/use-cascading-deletion/#use-background-cascading-deletion)
|
||||
以了解进一步的细节。
|
||||
参阅[使用后台级联删除](/zh-cn/docs/tasks/administer-cluster/use-cascading-deletion/#use-background-cascading-deletion)以了解进一步的细节。
|
||||
|
||||
<!--
|
||||
### Orphaned dependents
|
||||
|
|
@ -214,8 +212,8 @@ to override this behaviour, see [Delete owner objects and orphan dependents](/do
|
|||
### 被遗弃的依赖对象 {#orphaned-dependents}
|
||||
|
||||
当 Kubernetes 删除某个属主对象时,被留下来的依赖对象被称作被遗弃的(Orphaned)对象。
|
||||
默认情况下,Kubernetes 会删除依赖对象。要了解如何重载这种默认行为,可参阅
|
||||
[删除属主对象和遗弃依赖对象](/zh-cn/docs/tasks/administer-cluster/use-cascading-deletion/#set-orphan-deletion-policy)。
|
||||
默认情况下,Kubernetes 会删除依赖对象。要了解如何重载这种默认行为,
|
||||
可参阅[删除属主对象和遗弃依赖对象](/zh-cn/docs/tasks/administer-cluster/use-cascading-deletion/#set-orphan-deletion-policy)。
|
||||
|
||||
<!--
|
||||
## Garbage collection of unused containers and images {#containers-images}
|
||||
|
|
@ -239,8 +237,8 @@ and change the parameters related to garbage collection using the
|
|||
[`KubeletConfiguration`](/docs/reference/config-api/kubelet-config.v1beta1/)
|
||||
resource type.
|
||||
-->
|
||||
要配置对未使用容器和镜像的垃圾收集选项,可以使用一个
|
||||
[配置文件](/zh-cn/docs/tasks/administer-cluster/kubelet-config-file/),基于
|
||||
要配置对未使用容器和镜像的垃圾收集选项,
|
||||
可以使用一个[配置文件](/zh-cn/docs/tasks/administer-cluster/kubelet-config-file/),基于
|
||||
[`KubeletConfiguration`](/zh-cn/docs/reference/config-api/kubelet-config.v1beta1/)
|
||||
资源类型来调整与垃圾收集相关的 kubelet 行为。
|
||||
|
||||
|
|
@ -292,16 +290,35 @@ To configure the setting, enable the `ImageMaximumGCAge`
|
|||
[feature gate](/docs/reference/command-line-tools-reference/feature-gates/) for the kubelet,
|
||||
and also set a value for the `ImageMaximumGCAge` field in the kubelet configuration file.
|
||||
-->
|
||||
请为 kubelet 启用 `ImageMaximumGCAge`
|
||||
请为 kubelet 启用 `ImageMaximumGCAge`
|
||||
[特性门控](/zh-cn/docs/reference/command-line-tools-reference/feature-gates/),
|
||||
并在 kubelet 配置文件中为 `ImageMaximumGCAge` 字段赋值来配置该设置。
|
||||
|
||||
<!--
|
||||
The value is specified as a Kubernetes _duration_; for example, you can set the configuration
|
||||
field to `3d12h`, which means 3 days and 12 hours.
|
||||
The value is specified as a Kubernetes _duration_;
|
||||
Valid time units for the `ImageMaximumGCAge` field in the kubelet configuration file are:
|
||||
- "ns" for nanoseconds
|
||||
- "us" or "µs" for microseconds
|
||||
- "ms" for milliseconds
|
||||
- "s" for seconds
|
||||
- "m" for minutes
|
||||
- "h" for hours
|
||||
-->
|
||||
该值应遵循 Kubernetes __持续时间(Duration)__ 格式;例如,你可以将配置字段设置为 `3d12h`,
|
||||
代表 3 天 12 小时。
|
||||
该值应遵循 Kubernetes **持续时间(Duration)** 格式;
|
||||
在 kubelet 配置文件中,`ImageMaximumGCAge` 字段的有效时间单位如下:
|
||||
|
||||
- "ns" 表示纳秒
|
||||
- "us" 或 "µs" 表示微秒
|
||||
- "ms" 表示毫秒
|
||||
- "s" 表示秒
|
||||
- "m" 表示分钟
|
||||
- "h" 表示小时
|
||||
|
||||
<!--
|
||||
For example, you can set the configuration field to `12h45m`,
|
||||
which means 12 hours and 45 minutes.
|
||||
-->
|
||||
例如,你可以将配置字段设置为 `12h45m`,代表 12 小时 45 分钟。
|
||||
|
||||
{{< note >}}
|
||||
<!--
|
||||
|
|
|
|||
|
|
@ -646,7 +646,7 @@ selectable fields.
|
|||
{{% code_sample file="customresourcedefinition/shirt-resource-definition.yaml" %}}
|
||||
|
||||
<!--
|
||||
Field selectors can then be used to get only resources with with a `color` of `blue`:
|
||||
Field selectors can then be used to get only resources with a `color` of `blue`:
|
||||
-->
|
||||
字段选择算符随后可用于仅获取 `color` 为 `blue` 的资源:
|
||||
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ Kubernetes 使用这些实体去表示整个集群的状态。
|
|||
|
||||
<!--
|
||||
A Kubernetes object is a "record of intent"--once you create the object, the Kubernetes system
|
||||
will constantly work to ensure that object exists. By creating an object, you're effectively
|
||||
will constantly work to ensure that the object exists. By creating an object, you're effectively
|
||||
telling the Kubernetes system what you want your cluster's workload to look like; this is your
|
||||
cluster's *desired state*.
|
||||
-->
|
||||
|
|
@ -140,7 +140,7 @@ When you create an object in Kubernetes, you must provide the object spec that d
|
|||
desired state, as well as some basic information about the object (such as a name). When you use
|
||||
the Kubernetes API to create the object (either directly or via `kubectl`), that API request must
|
||||
include that information as JSON in the request body.
|
||||
Most often, you provide the information to `kubectl` in file known as a _manifest_.
|
||||
Most often, you provide the information to `kubectl` in a file known as a _manifest_.
|
||||
By convention, manifests are YAML (you could also use JSON format).
|
||||
Tools such as `kubectl` convert the information from a manifest into JSON or another supported
|
||||
serialization format when making the API request over HTTP.
|
||||
|
|
@ -151,7 +151,7 @@ serialization format when making the API request over HTTP.
|
|||
以及关于对象的一些基本信息(例如名称)。
|
||||
当使用 Kubernetes API 创建对象时(直接创建或经由 `kubectl` 创建),
|
||||
API 请求必须在请求主体中包含 JSON 格式的信息。
|
||||
大多数情况下,你会通过 **清单(Manifest)** 文件为 `kubectl` 提供这些信息。
|
||||
大多数情况下,你会通过 **清单(Manifest)** 文件为 `kubectl` 提供这些信息。
|
||||
按照惯例,清单是 YAML 格式的(你也可以使用 JSON 格式)。
|
||||
像 `kubectl` 这样的工具在通过 HTTP 进行 API 请求时,
|
||||
会将清单中的信息转换为 JSON 或其他受支持的序列化格式。
|
||||
|
|
@ -226,7 +226,7 @@ its desired state.
|
|||
Within the `.spec` of a StatefulSet is a [template](/docs/concepts/workloads/pods/#pod-templates)
|
||||
for Pod objects. That template describes Pods that the StatefulSet controller will create in order to
|
||||
satisfy the StatefulSet specification.
|
||||
Different kinds of object can also have different `.status`; again, the API reference pages
|
||||
Different kinds of objects can also have different `.status`; again, the API reference pages
|
||||
detail the structure of that `.status` field, and its content for each different type of object.
|
||||
-->
|
||||
例如,参阅 Pod API 参考文档中
|
||||
|
|
|
|||
|
|
@ -371,7 +371,7 @@ The following types are supported:
|
|||
| `resourcequotas` | The total number of ResourceQuotas that can exist in the namespace. |
|
||||
| `services` | The total number of Services that can exist in the namespace. |
|
||||
| `services.loadbalancers` | The total number of Services of type `LoadBalancer` that can exist in the namespace. |
|
||||
| `services.nodeports` | The total number of Services of type `NodePort` that can exist in the namespace. |
|
||||
| `services.nodeports` | The total number of `NodePorts` allocated to Services of type `NodePort` or `LoadBalancer` that can exist in the namespace. |
|
||||
| `secrets` | The total number of Secrets that can exist in the namespace. |
|
||||
-->
|
||||
| 资源名称 | 描述 |
|
||||
|
|
@ -383,7 +383,7 @@ The following types are supported:
|
|||
| `resourcequotas` | 在该命名空间中允许存在的 ResourceQuota 总数上限。 |
|
||||
| `services` | 在该命名空间中允许存在的 Service 总数上限。 |
|
||||
| `services.loadbalancers` | 在该命名空间中允许存在的 LoadBalancer 类型的 Service 总数上限。 |
|
||||
| `services.nodeports` | 在该命名空间中允许存在的 NodePort 类型的 Service 总数上限。 |
|
||||
| `services.nodeports` | 在该命名空间中允许存在的 NodePort 或 LoadBalancer 类型的 Service 的 NodePort 总数上限。 |
|
||||
| `secrets` | 在该命名空间中允许存在的 Secret 总数上限。 |
|
||||
|
||||
<!--
|
||||
|
|
|
|||
|
|
@ -177,16 +177,16 @@ Service 的地址族默认为第一个服务集群 IP 范围的地址族(通
|
|||
<!--
|
||||
* `SingleStack`: Single-stack service. The control plane allocates a cluster IP for the Service,
|
||||
using the first configured service cluster IP range.
|
||||
* `PreferDualStack`:
|
||||
* Allocates IPv4 and IPv6 cluster IPs for the Service.
|
||||
* `RequireDualStack`: Allocates Service `.spec.ClusterIPs` from both IPv4 and IPv6 address ranges.
|
||||
* `PreferDualStack`:Allocates both IPv4 and IPv6 cluster IPs for the Service when dual-stack is enabled. If dual-stack is not enabled or supported, it falls back to single-stack behavior.
|
||||
* `RequireDualStack`: Allocates Service `.spec.clusterIPs` from both IPv4 and IPv6 address ranges when dual-stack is enabled. If dual-stack is not enabled or supported, the Service API object creation fails.
|
||||
* Selects the `.spec.ClusterIP` from the list of `.spec.ClusterIPs` based on the address family
|
||||
of the first element in the `.spec.ipFamilies` array.
|
||||
-->
|
||||
* `SingleStack`:单栈 Service。控制面使用第一个配置的服务集群 IP 范围为 Service 分配集群 IP。
|
||||
* `PreferDualStack`:
|
||||
* 为 Service 分配 IPv4 和 IPv6 集群 IP 地址。
|
||||
* `RequireDualStack`:从 IPv4 和 IPv6 的地址范围分配 Service 的 `.spec.ClusterIPs`
|
||||
* `PreferDualStack`:启用双栈时,为 Service 同时分配 IPv4 和 IPv6 集群 IP 地址。
|
||||
如果双栈未被启用或不被支持,则会返回到单栈行为。
|
||||
* `RequireDualStack`:启用双栈时,同时从 IPv4 和 IPv6 的地址范围中分配 Service 的 `.spec.ClusterIPs`。
|
||||
如果双栈未被启用或不被支持,则 Service API 对象创建失败。
|
||||
* 从基于在 `.spec.ipFamilies` 数组中第一个元素的地址族的 `.spec.ClusterIPs`
|
||||
列表中选择 `.spec.ClusterIP`
|
||||
|
||||
|
|
|
|||
|
|
@ -91,17 +91,17 @@ Windows 支持五种不同的网络驱动/模式:L2bridge、L2tunnel、Overlay
|
|||
<!--
|
||||
| Network Driver | Description | Container Packet Modifications | Network Plugins | Network Plugin Characteristics |
|
||||
| -------------- | ----------- | ------------------------------ | --------------- | ------------------------------ |
|
||||
| L2bridge | Containers are attached to an external vSwitch. Containers are attached to the underlay network, although the physical network doesn't need to learn the container MACs because they are rewritten on ingress/egress. | MAC is rewritten to host MAC, IP may be rewritten to host IP using HNS OutboundNAT policy. | [win-bridge](https://github.com/containernetworking/plugins/tree/master/plugins/main/windows/win-bridge), [Azure-CNI](https://github.com/Azure/azure-container-networking/blob/master/docs/cni.md), Flannel host-gateway uses win-bridge | win-bridge uses L2bridge network mode, connects containers to the underlay of hosts, offering best performance. Requires user-defined routes (UDR) for inter-node connectivity. |
|
||||
| L2bridge | Containers are attached to an external vSwitch. Containers are attached to the underlay network, although the physical network doesn't need to learn the container MACs because they are rewritten on ingress/egress. | MAC is rewritten to host MAC, IP may be rewritten to host IP using HNS OutboundNAT policy. | [win-bridge](https://www.cni.dev/plugins/current/main/win-bridge/), [Azure-CNI](https://github.com/Azure/azure-container-networking/blob/master/docs/cni.md), [Flannel host-gateway](https://github.com/flannel-io/flannel/blob/master/Documentation/backends.md#host-gw) uses win-bridge | win-bridge uses L2bridge network mode, connects containers to the underlay of hosts, offering best performance. Requires user-defined routes (UDR) for inter-node connectivity. |
|
||||
| L2Tunnel | This is a special case of l2bridge, but only used on Azure. All packets are sent to the virtualization host where SDN policy is applied. | MAC rewritten, IP visible on the underlay network | [Azure-CNI](https://github.com/Azure/azure-container-networking/blob/master/docs/cni.md) | Azure-CNI allows integration of containers with Azure vNET, and allows them to leverage the set of capabilities that [Azure Virtual Network provides](https://azure.microsoft.com/en-us/services/virtual-network/). For example, securely connect to Azure services or use Azure NSGs. See [azure-cni for some examples](https://docs.microsoft.com/azure/aks/concepts-network#azure-cni-advanced-networking) |
|
||||
| Overlay | Containers are given a vNIC connected to an external vSwitch. Each overlay network gets its own IP subnet, defined by a custom IP prefix.The overlay network driver uses VXLAN encapsulation. | Encapsulated with an outer header. | [win-overlay](https://github.com/containernetworking/plugins/tree/master/plugins/main/windows/win-overlay), Flannel VXLAN (uses win-overlay) | win-overlay should be used when virtual container networks are desired to be isolated from underlay of hosts (e.g. for security reasons). Allows for IPs to be re-used for different overlay networks (which have different VNID tags) if you are restricted on IPs in your datacenter. This option requires [KB4489899](https://support.microsoft.com/help/4489899) on Windows Server 2019. |
|
||||
| Overlay | Containers are given a vNIC connected to an external vSwitch. Each overlay network gets its own IP subnet, defined by a custom IP prefix.The overlay network driver uses VXLAN encapsulation. | Encapsulated with an outer header. | [win-overlay](https://www.cni.dev/plugins/current/main/win-overlay/), [Flannel VXLAN](https://github.com/flannel-io/flannel/blob/master/Documentation/backends.md#vxlan) (uses win-overlay) | win-overlay should be used when virtual container networks are desired to be isolated from underlay of hosts (e.g. for security reasons). Allows for IPs to be re-used for different overlay networks (which have different VNID tags) if you are restricted on IPs in your datacenter. This option requires [KB4489899](https://support.microsoft.com/help/4489899) on Windows Server 2019. |
|
||||
| Transparent (special use case for [ovn-kubernetes](https://github.com/openvswitch/ovn-kubernetes)) | Requires an external vSwitch. Containers are attached to an external vSwitch which enables intra-pod communication via logical networks (logical switches and routers). | Packet is encapsulated either via [GENEVE](https://datatracker.ietf.org/doc/draft-gross-geneve/) or [STT](https://datatracker.ietf.org/doc/draft-davie-stt/) tunneling to reach pods which are not on the same host. <br/> Packets are forwarded or dropped via the tunnel metadata information supplied by the ovn network controller. <br/> NAT is done for north-south communication. | [ovn-kubernetes](https://github.com/openvswitch/ovn-kubernetes) | [Deploy via ansible](https://github.com/openvswitch/ovn-kubernetes/tree/master/contrib). Distributed ACLs can be applied via Kubernetes policies. IPAM support. Load-balancing can be achieved without kube-proxy. NATing is done without using iptables/netsh. |
|
||||
| NAT (*not used in Kubernetes*) | Containers are given a vNIC connected to an internal vSwitch. DNS/DHCP is provided using an internal component called [WinNAT](https://techcommunity.microsoft.com/t5/virtualization/windows-nat-winnat-capabilities-and-limitations/ba-p/382303) | MAC and IP is rewritten to host MAC/IP. | [nat](https://github.com/Microsoft/windows-container-networking/tree/master/plugins/nat) | Included here for completeness |
|
||||
-->
|
||||
| 网络驱动 | 描述 | 容器数据包修改 | 网络插件 | 网络插件特点 |
|
||||
| -------------- | ----------- | ------------------------------ | --------------- | ------------------------------ |
|
||||
| L2bridge | 容器挂接到一个外部 vSwitch。容器挂接到下层网络,但物理网络不需要了解容器的 MAC,因为这些 MAC 在入站/出站时被重写。 | MAC 被重写为主机 MAC,可使用 HNS OutboundNAT 策略将 IP 重写为主机 IP。 | [win-bridge](https://github.com/containernetworking/plugins/tree/master/plugins/main/windows/win-bridge)、[Azure-CNI](https://github.com/Azure/azure-container-networking/blob/master/docs/cni.md)、Flannel host-gateway 使用 win-bridge| win-bridge 使用 L2bridge 网络模式,将容器连接到主机的下层,提供最佳性能。节点间连接需要用户定义的路由(UDR)。 |
|
||||
| L2bridge | 容器挂接到一个外部 vSwitch。容器挂接到下层网络,但物理网络不需要了解容器的 MAC,因为这些 MAC 在入站/出站时被重写。 | MAC 被重写为主机 MAC,可使用 HNS OutboundNAT 策略将 IP 重写为主机 IP。 | [win-bridge](https://www.cni.dev/plugins/current/main/win-bridge/), [Azure-CNI](https://github.com/Azure/azure-container-networking/blob/master/docs/cni.md), [Flannel host-gateway](https://github.com/flannel-io/flannel/blob/master/Documentation/backends.md#host-gw) 使用 win-bridge| win-bridge 使用 L2bridge 网络模式,将容器连接到主机的下层,提供最佳性能。节点间连接需要用户定义的路由(UDR)。 |
|
||||
| L2Tunnel | 这是 L2bridge 的一种特例,但仅用在 Azure 上。所有数据包都会被发送到应用了 SDN 策略的虚拟化主机。 | MAC 被重写,IP 在下层网络上可见。| [Azure-CNI](https://github.com/Azure/azure-container-networking/blob/master/docs/cni.md) | Azure-CNI 允许将容器集成到 Azure vNET,允许容器充分利用 [Azure 虚拟网络](https://azure.microsoft.com/zh-cn/services/virtual-network/)所提供的能力集合。例如,安全地连接到 Azure 服务或使用 Azure NSG。参考 [azure-cni 了解有关示例](https://docs.microsoft.com/zh-cn/azure/aks/concepts-network#azure-cni-advanced-networking)。 |
|
||||
| Overlay | 容器被赋予一个 vNIC,连接到外部 vSwitch。每个上层网络都有自己的 IP 子网,由自定义 IP 前缀进行定义。该上层网络驱动使用 VXLAN 封装。 | 用外部头进行封装。 | [win-overlay](https://github.com/containernetworking/plugins/tree/master/plugins/main/windows/win-overlay)、Flannel VXLAN(使用 win-overlay) | 当需要将虚拟容器网络与主机的下层隔离时(例如出于安全原因),应使用 win-overlay。如果你的数据中心的 IP 个数有限,可以将 IP 在不同的上层网络中重用(带有不同的 VNID 标记)。在 Windows Server 2019 上这个选项需要 [KB4489899](https://support.microsoft.com/zh-cn/help/4489899)。 |
|
||||
| Overlay | 容器被赋予一个 vNIC,连接到外部 vSwitch。每个上层网络都有自己的 IP 子网,由自定义 IP 前缀进行定义。该上层网络驱动使用 VXLAN 封装。 | 用外部头进行封装。 | [win-overlay](https://www.cni.dev/plugins/current/main/win-overlay/), [Flannel VXLAN](https://github.com/flannel-io/flannel/blob/master/Documentation/backends.md#vxlan)(使用 win-overlay) | 当需要将虚拟容器网络与主机的下层隔离时(例如出于安全原因),应使用 win-overlay。如果你的数据中心的 IP 个数有限,可以将 IP 在不同的上层网络中重用(带有不同的 VNID 标记)。在 Windows Server 2019 上这个选项需要 [KB4489899](https://support.microsoft.com/zh-cn/help/4489899)。 |
|
||||
| Transparent([ovn-kubernetes](https://github.com/openvswitch/ovn-kubernetes) 的特殊用例) | 需要一个外部 vSwitch。容器挂接到一个外部 vSwitch,由后者通过逻辑网络(逻辑交换机和路由器)实现 Pod 内通信。 | 数据包通过 [GENEVE](https://datatracker.ietf.org/doc/draft-gross-geneve/) 或 [STT](https://datatracker.ietf.org/doc/draft-davie-stt/) 隧道进行封装,以到达其它主机上的 Pod。 <br/> 数据包基于 OVN 网络控制器提供的隧道元数据信息被转发或丢弃。<br/>南北向通信使用 NAT。 | [ovn-kubernetes](https://github.com/openvswitch/ovn-kubernetes) | [通过 ansible 部署](https://github.com/openvswitch/ovn-kubernetes/tree/master/contrib)。通过 Kubernetes 策略可以实施分布式 ACL。支持 IPAM。无需 kube-proxy 即可实现负载均衡。无需 iptables/netsh 即可进行 NAT。 |
|
||||
| NAT(**Kubernetes 中未使用**) | 容器被赋予一个 vNIC,连接到内部 vSwitch。DNS/DHCP 是使用一个名为 [WinNAT 的内部组件](https://techcommunity.microsoft.com/t5/virtualization/windows-nat-winnat-capabilities-and-limitations/ba-p/382303)实现的 | MAC 和 IP 重写为主机 MAC/IP。 | [nat](https://github.com/Microsoft/windows-container-networking/tree/master/plugins/nat) | 放在此处保持完整性。 |
|
||||
|
||||
|
|
|
|||
|
|
@ -33,8 +33,8 @@ It is assumed that a cluster-independent service manages normal users in the fol
|
|||
- a user store like Keystone or Google Accounts
|
||||
- a file with a list of usernames and passwords
|
||||
|
||||
In this regard, _Kubernetes does not have objects which represent normal user
|
||||
accounts._ Normal users cannot be added to a cluster through an API call.
|
||||
In this regard, _Kubernetes does not have objects which represent normal user accounts._
|
||||
Normal users cannot be added to a cluster through an API call.
|
||||
-->
|
||||
## Kubernetes 中的用户 {#users-in-kubernetes}
|
||||
|
||||
|
|
@ -212,7 +212,7 @@ followed by optional group names.
|
|||
|
||||
{{< note >}}
|
||||
<!--
|
||||
If you have more than one group the column must be double quoted e.g.
|
||||
If you have more than one group, the column must be double quoted e.g.
|
||||
-->
|
||||
如果要设置的组名不止一个,则对应的列必须用双引号括起来,例如:
|
||||
|
||||
|
|
@ -226,9 +226,9 @@ token,user,uid,"group1,group2,group3"
|
|||
|
||||
When using bearer token authentication from an http client, the API
|
||||
server expects an `Authorization` header with a value of `Bearer
|
||||
<token>`. The bearer token must be a character sequence that can be
|
||||
<token>`. The bearer token must be a character sequence that can be
|
||||
put in an HTTP header value using no more than the encoding and
|
||||
quoting facilities of HTTP. For example: if the bearer token is
|
||||
quoting facilities of HTTP. For example: if the bearer token is
|
||||
`31ada4fd-adec-460c-809a-9e56ceb75269` then it would appear in an HTTP
|
||||
header as shown below.
|
||||
-->
|
||||
|
|
@ -263,8 +263,8 @@ controller that deletes bootstrap tokens as they expire.
|
|||
控制器管理器包含的 `TokenCleaner` 控制器能够在启动引导令牌过期时将其删除。
|
||||
|
||||
<!--
|
||||
The tokens are of the form `[a-z0-9]{6}.[a-z0-9]{16}`. The first component is a
|
||||
Token ID and the second component is the Token Secret. You specify the token
|
||||
The tokens are of the form `[a-z0-9]{6}.[a-z0-9]{16}`. The first component is a
|
||||
Token ID and the second component is the Token Secret. You specify the token
|
||||
in an HTTP header as follows:
|
||||
-->
|
||||
这些令牌的格式为 `[a-z0-9]{6}.[a-z0-9]{16}`。第一个部分是令牌的 ID;
|
||||
|
|
@ -276,9 +276,9 @@ Authorization: Bearer 781292.db7bc3a58fc5f07e
|
|||
|
||||
<!--
|
||||
You must enable the Bootstrap Token Authenticator with the
|
||||
`--enable-bootstrap-token-auth` flag on the API Server. You must enable
|
||||
`--enable-bootstrap-token-auth` flag on the API Server. You must enable
|
||||
the TokenCleaner controller via the `--controllers` flag on the Controller
|
||||
Manager. This is done with something like `--controllers=*,tokencleaner`.
|
||||
Manager. This is done with something like `--controllers=*,tokencleaner`.
|
||||
`kubeadm` will do this for you if you are using it to bootstrap a cluster.
|
||||
-->
|
||||
你必须在 API 服务器上设置 `--enable-bootstrap-token-auth` 标志来启用基于启动引导令牌的身份认证组件。
|
||||
|
|
@ -287,10 +287,10 @@ Manager. This is done with something like `--controllers=*,tokencleaner`.
|
|||
如果你使用 `kubeadm` 来启动引导新的集群,该工具会帮你完成这些设置。
|
||||
|
||||
<!--
|
||||
The authenticator authenticates as `system:bootstrap:<Token ID>`. It is
|
||||
included in the `system:bootstrappers` group. The naming and groups are
|
||||
The authenticator authenticates as `system:bootstrap:<Token ID>`. It is
|
||||
included in the `system:bootstrappers` group. The naming and groups are
|
||||
intentionally limited to discourage users from using these tokens past
|
||||
bootstrapping. The user names and group can be used (and are used by `kubeadm`)
|
||||
bootstrapping. The user names and group can be used (and are used by `kubeadm`)
|
||||
to craft the appropriate authorization policies to support bootstrapping a
|
||||
cluster.
|
||||
-->
|
||||
|
|
@ -351,6 +351,9 @@ talk to the API server. Accounts may be explicitly associated with pods using th
|
|||
`serviceAccountName` 通常会被忽略,因为关联关系是自动建立的。
|
||||
{{< /note >}}
|
||||
|
||||
<!--
|
||||
# this apiVersion is relevant as of Kubernetes 1.9
|
||||
-->
|
||||
```yaml
|
||||
apiVersion: apps/v1 # 此 apiVersion 从 Kubernetes 1.9 开始可用
|
||||
kind: Deployment
|
||||
|
|
@ -410,7 +413,7 @@ The created token is a signed JSON Web Token (JWT).
|
|||
<!--
|
||||
The signed JWT can be used as a bearer token to authenticate as the given service
|
||||
account. See [above](#putting-a-bearer-token-in-a-request) for how the token is included
|
||||
in a request. Normally these tokens are mounted into pods for in-cluster access to
|
||||
in a request. Normally these tokens are mounted into pods for in-cluster access to
|
||||
the API server, but can be used from outside the cluster as well.
|
||||
-->
|
||||
已签名的 JWT 可以用作持有者令牌,并将被认证为所给的服务账号。
|
||||
|
|
@ -471,7 +474,7 @@ is included in a request.
|
|||
sequenceDiagram
|
||||
participant user as 用户
|
||||
participant idp as 身份提供者
|
||||
participant kube as Kubectl
|
||||
participant kube as kubectl
|
||||
participant api as API 服务器
|
||||
|
||||
user ->> idp: 1. 登录到 IdP
|
||||
|
|
@ -479,7 +482,7 @@ sequenceDiagram
|
|||
idp -->> user: 2. 提供 access_token,<br>id_token, 和 refresh_token
|
||||
deactivate idp
|
||||
activate user
|
||||
user ->> kube: 3. 调用 Kubectl 并<br>设置 --token 为 id_token<br>或者将令牌添加到 .kube/config
|
||||
user ->> kube: 3. 调用 kubectl 并<br>设置 --token 为 id_token<br>或者将令牌添加到 .kube/config
|
||||
deactivate user
|
||||
activate kube
|
||||
kube ->> api: 4. Authorization: Bearer...
|
||||
|
|
@ -496,13 +499,15 @@ sequenceDiagram
|
|||
{{< /mermaid >}}
|
||||
|
||||
<!--
|
||||
1. Login to your identity provider
|
||||
1. Log in to your identity provider
|
||||
1. Your identity provider will provide you with an `access_token`, `id_token` and a `refresh_token`
|
||||
1. When using `kubectl`, use your `id_token` with the `--token` flag or add it directly to your `kubeconfig`
|
||||
1. `kubectl` sends your `id_token` in a header called Authorization to the API server
|
||||
1. The API server will make sure the JWT signature is valid
|
||||
1. Check to make sure the `id_token` hasn't expired
|
||||
1. Perform claim and/or user validation if CEL expressions are configured with `AuthenticationConfiguration`.
|
||||
|
||||
Perform claim and/or user validation if CEL expressions are configured with `AuthenticationConfiguration`.
|
||||
|
||||
1. Make sure the user is authorized
|
||||
1. Once authorized the API server returns a response to `kubectl`
|
||||
1. `kubectl` provides feedback to the user
|
||||
|
|
@ -514,7 +519,9 @@ sequenceDiagram
|
|||
4. `kubectl` 将你的 `id_token` 放到一个称作 `Authorization` 的头部,发送给 API 服务器
|
||||
5. API 服务器将确保 JWT 的签名是有效的
|
||||
6. 检查确认 `id_token` 尚未过期
|
||||
1. 如果使用 `AuthenticationConfiguration` 配置了 CEL 表达式,则执行声明和/或用户验证。
|
||||
|
||||
如果使用 `AuthenticationConfiguration` 配置了 CEL 表达式,则执行声明和/或用户验证。
|
||||
|
||||
7. 确认用户有权限执行操作
|
||||
8. 鉴权成功之后,API 服务器向 `kubectl` 返回响应
|
||||
9. `kubectl` 向用户提供反馈信息
|
||||
|
|
@ -559,20 +566,20 @@ To enable the plugin, configure the following flags on the API server:
|
|||
<!--
|
||||
| Parameter | Description | Example | Required |
|
||||
| --------- | ----------- | ------- | ------- |
|
||||
| `--oidc-issuer-url` | URL of the provider that allows the API server to discover public signing keys. Only URLs that use the `https://` scheme are accepted. This is typically the provider's discovery URL, changed to have an empty path | If the issuer's OIDC discovery URL is `https://accounts.provider.example/.well-known/openid-configuration`, the value should be `https://accounts.google.com` | Yes |
|
||||
| `--oidc-issuer-url` | URL of the provider that allows the API server to discover public signing keys. Only URLs that use the `https://` scheme are accepted. This is typically the provider's discovery URL, changed to have an empty path. | If the issuer's OIDC discovery URL is `https://accounts.provider.example/.well-known/openid-configuration`, the value should be `https://accounts.provider.example` | Yes |
|
||||
| `--oidc-client-id` | A client id that all tokens must be issued for. | kubernetes | Yes |
|
||||
| `--oidc-username-claim` | JWT claim to use as the user name. By default `sub`, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as `email` or `name`, depending on their provider. However, claims other than `email` will be prefixed with the issuer URL to prevent naming clashes with other plugins. | sub | No |
|
||||
| `--oidc-username-prefix` | Prefix prepended to username claims to prevent clashes with existing names (such as `system:` users). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this flag isn't provided and `--oidc-username-claim` is a value other than `email` the prefix defaults to `( Issuer URL )#` where `( Issuer URL )` is the value of `--oidc-issuer-url`. The value `-` can be used to disable all prefixing. | `oidc:` | No |
|
||||
| `--oidc-groups-claim` | JWT claim to use as the user's group. If the claim is present it must be an array of strings. | groups | No |
|
||||
| `--oidc-groups-prefix` | Prefix prepended to group claims to prevent clashes with existing names (such as `system:` groups). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`. | `oidc:` | No |
|
||||
| `--oidc-required-claim` | A key=value pair that describes a required claim in the ID Token. If set, the claim is verified to be present in the ID Token with a matching value. Repeat this flag to specify multiple claims. | `claim=value` | No |
|
||||
| `--oidc-ca-file` | The path to the certificate for the CA that signed your identity provider's web certificate. Defaults to the host's root CAs. | `/etc/kubernetes/ssl/kc-ca.pem` | No |
|
||||
| `--oidc-ca-file` | The path to the certificate for the CA that signed your identity provider's web certificate. Defaults to the host's root CAs. | `/etc/kubernetes/ssl/kc-ca.pem` | No |
|
||||
| `--oidc-signing-algs` | The signing algorithms accepted. Default is "RS256". | `RS512` | No |
|
||||
-->
|
||||
|
||||
| 参数 | 描述 | 示例 | 必需? |
|
||||
| --------- | ----------- | ------- | ------- |
|
||||
| `--oidc-issuer-url` | 允许 API 服务器发现公开的签名密钥的服务的 URL。只接受模式为 `https://` 的 URL。此值通常设置为服务的发现 URL,已更改为空路径。 | 如果发行人的 OIDC 发现 URL 是 `https://accounts.google.com/.well-known/openid-configuration`,则此值应为 `https://accounts.google.com` | 是 |
|
||||
| `--oidc-issuer-url` | 允许 API 服务器发现公开的签名密钥的服务的 URL。只接受模式为 `https://` 的 URL。此值通常设置为服务的发现 URL,已更改为空路径。 | 如果发行人的 OIDC 发现 URL 是 `https://accounts.google.com/.well-known/openid-configuration`,则此值应为 `https://accounts.provider.example` | 是 |
|
||||
| `--oidc-client-id` | 所有令牌都应发放给此客户 ID。 | kubernetes | 是 |
|
||||
| `--oidc-username-claim` | 用作用户名的 JWT 申领(JWT Claim)。默认情况下使用 `sub` 值,即最终用户的一个唯一的标识符。管理员也可以选择其他申领,例如 `email` 或者 `name`,取决于所用的身份服务。不过,除了 `email` 之外的申领都会被添加令牌发放者的 URL 作为前缀,以免与其他插件产生命名冲突。 | sub | 否 |
|
||||
| `--oidc-username-prefix` | 要添加到用户名申领之前的前缀,用来避免与现有用户名发生冲突(例如:`system:` 用户)。例如,此标志值为 `oidc:` 时将创建形如 `oidc:jane.doe` 的用户名。如果此标志未设置,且 `--oidc-username-claim` 标志值不是 `email`,则默认前缀为 `<令牌发放者的 URL>#`,其中 `<令牌发放者 URL >` 的值取自 `--oidc-issuer-url` 标志的设定。此标志值为 `-` 时,意味着禁止添加用户名前缀。 | `oidc:` | 否 |
|
||||
|
|
@ -590,8 +597,9 @@ To enable the plugin, configure the following flags on the API server:
|
|||
{{< feature-state feature_gate_name="StructuredAuthenticationConfiguration" >}}
|
||||
|
||||
<!--
|
||||
JWT Authenticator is an authenticator to authenticate Kubernetes users using JWT compliant tokens. The authenticator will attempt to
|
||||
parse a raw ID token, verify it's been signed by the configured issuer. The public key to verify the signature is discovered from the issuer's public endpoint using OIDC discovery.
|
||||
JWT Authenticator is an authenticator to authenticate Kubernetes users using JWT compliant tokens.
|
||||
The authenticator will attempt to parse a raw ID token, verify it's been signed by the configured issuer.
|
||||
The public key to verify the signature is discovered from the issuer's public endpoint using OIDC discovery.
|
||||
|
||||
The minimum valid JWT payload must contain the following claims:
|
||||
-->
|
||||
|
|
@ -602,7 +610,7 @@ JWT Authenticator 是一个使用 JWT 兼容令牌对 Kubernetes 用户进行身
|
|||
最小有效 JWT 负载必须包含以下声明:
|
||||
|
||||
<!--
|
||||
```yaml
|
||||
```json
|
||||
{
|
||||
"iss": "https://example.com", // must match the issuer.url
|
||||
"aud": ["my-app"], // at least one of the entries in issuer.audiences must match the "aud" claim in presented JWTs.
|
||||
|
|
@ -611,7 +619,7 @@ JWT Authenticator 是一个使用 JWT 兼容令牌对 Kubernetes 用户进行身
|
|||
}
|
||||
```
|
||||
-->
|
||||
```yaml
|
||||
```json
|
||||
{
|
||||
"iss": "https://example.com", // 必须与 issuer.url 匹配
|
||||
"aud": ["my-app"], // issuer.audiences 中至少一项必须与所提供的 JWT 中的 "aud" 声明相匹配。
|
||||
|
|
@ -621,9 +629,12 @@ JWT Authenticator 是一个使用 JWT 兼容令牌对 Kubernetes 用户进行身
|
|||
```
|
||||
|
||||
<!--
|
||||
The configuration file approach allows you to configure multiple JWT authenticators, each with a unique `issuer.url` and `issuer.discoveryURL`. The configuration file even allows you to specify [CEL](/docs/reference/using-api/cel/)
|
||||
expressions to map claims to user attributes, and to validate claims and user information. The API server also automatically reloads the authenticators when the configuration file is modified. You can use
|
||||
`apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds` metric to monitor the last time the configuration was reloaded by the API server.
|
||||
The configuration file approach allows you to configure multiple JWT authenticators, each with a unique
|
||||
`issuer.url` and `issuer.discoveryURL`. The configuration file even allows you to specify [CEL](/docs/reference/using-api/cel/)
|
||||
expressions to map claims to user attributes, and to validate claims and user information.
|
||||
The API server also automatically reloads the authenticators when the configuration file is modified.
|
||||
You can use `apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds` metric
|
||||
to monitor the last time the configuration was reloaded by the API server.
|
||||
-->
|
||||
配置文件方法允许你配置多个 JWT 认证组件,每个身份认证组件都有唯一的 `issuer.url` 和 `issuer.discoveryURL`。
|
||||
配置文件甚至允许你指定 [CEL](/zh-cn/docs/reference/using-api/cel/)
|
||||
|
|
@ -633,8 +644,10 @@ expressions to map claims to user attributes, and to validate claims and user in
|
|||
指标来监控 API 服务器上次重新加载配置的时间。
|
||||
|
||||
<!--
|
||||
You must specify the path to the authentication configuration using the `--authentication-config` flag on the API server. If you want to use command line flags instead of the configuration file, those will continue to work as-is.
|
||||
To access the new capabilities like configuring multiple authenticators, setting multiple audiences for an issuer, switch to using the configuration file.
|
||||
You must specify the path to the authentication configuration using the `--authentication-config` flag
|
||||
on the API server. If you want to use command line flags instead of the configuration file, those will
|
||||
continue to work as-is. To access the new capabilities like configuring multiple authenticators,
|
||||
setting multiple audiences for an issuer, switch to using the configuration file.
|
||||
-->
|
||||
你必须使用 API 服务器上的 `--authentication-config` 标志指定身份验证配置的路径。
|
||||
如果你想使用命令行标志而不是配置文件,命令行标志仍然有效。
|
||||
|
|
@ -888,8 +901,8 @@ jwt:
|
|||
|
||||
`jwt.userValidationRules[i].expression` represents the expression which will be evaluated by CEL.
|
||||
CEL expressions have access to the contents of `userInfo`, organized into `user` CEL variable.
|
||||
Refer to the [UserInfo](/docs/reference/generated/kubernetes-api/v{{< skew currentVersion >}}/#userinfo-v1-authentication-k8s-io) API documentation for the schema of `user`.
|
||||
|
||||
Refer to the [UserInfo](/docs/reference/generated/kubernetes-api/v{{< skew currentVersion >}}/#userinfo-v1-authentication-k8s-io)
|
||||
API documentation for the schema of `user`.
|
||||
-->
|
||||
* 用户验证规则表达式
|
||||
|
||||
|
|
@ -1051,7 +1064,8 @@ jwt:
|
|||
```
|
||||
|
||||
<!--
|
||||
The token with the above `AuthenticationConfiguration` will fail to authenticate because the `hd` claim is not set to `example.com`. The API server will return `401 Unauthorized` error.
|
||||
The token with the above `AuthenticationConfiguration` will fail to authenticate because the
|
||||
`hd` claim is not set to `example.com`. The API server will return `401 Unauthorized` error.
|
||||
-->
|
||||
具有上述 `AuthenticationConfiguration` 的令牌将无法进行身份认证,
|
||||
因为 `hd` 声明未设置为 `example.com`。API 服务器将返回 `401 Unauthorized` 错误。
|
||||
|
|
@ -1132,7 +1146,8 @@ jwt:
|
|||
```
|
||||
|
||||
<!--
|
||||
which will fail user validation because the username starts with `system:`. The API server will return `401 Unauthorized` error.
|
||||
which will fail user validation because the username starts with `system:`.
|
||||
The API server will return `401 Unauthorized` error.
|
||||
-->
|
||||
这将导致用户验证失败,因为用户名以 `system:` 开头。 API 服务器将返回 `401 Unauthorized` 错误。
|
||||
{{% /tab %}}
|
||||
|
|
@ -1185,19 +1200,19 @@ For an identity provider to work with Kubernetes it must:
|
|||
你可以将发现端点托管在与颁发者不同的位置(例如集群本地),并在配置文件中指定 `issuer.discoveryURL`。
|
||||
|
||||
<!--
|
||||
2. Run in TLS with non-obsolete ciphers
|
||||
3. Have a CA signed certificate (even if the CA is not a commercial CA or is self signed)
|
||||
1. Run in TLS with non-obsolete ciphers
|
||||
1. Have a CA signed certificate (even if the CA is not a commercial CA or is self signed)
|
||||
-->
|
||||
2. 使用未过时的密钥以 TLS 模式运行
|
||||
3. 拥有 CA 签名的证书(即使该 CA 不是商业 CA 或者是自签名的)
|
||||
|
||||
<!--
|
||||
A note about requirement #3 above, requiring a CA signed certificate. If you deploy your own
|
||||
A note about requirement #3 above, requiring a CA signed certificate. If you deploy your own
|
||||
identity provider (as opposed to one of the cloud providers like Google or Microsoft) you MUST
|
||||
have your identity provider's web server certificate signed by a certificate with the `CA` flag
|
||||
set to `TRUE`, even if it is self signed. This is due to GoLang's TLS client implementation
|
||||
being very strict to the standards around certificate validation. If you don't have a CA handy,
|
||||
you can use [this script](https://github.com/dexidp/dex/blob/master/examples/k8s/gencert.sh)
|
||||
set to `TRUE`, even if it is self signed. This is due to GoLang's TLS client implementation
|
||||
being very strict to the standards around certificate validation. If you don't have a CA handy,
|
||||
you can use the [gencert script](https://github.com/dexidp/dex/blob/master/examples/k8s/gencert.sh)
|
||||
from the Dex team to create a simple CA and a signed certificate and key pair. Or you can use
|
||||
[this similar script](https://raw.githubusercontent.com/TremoloSecurity/openunison-qs-kubernetes/master/src/main/bash/makessl.sh)
|
||||
that generates SHA256 certs with a longer life and larger key size.
|
||||
|
|
@ -1205,16 +1220,17 @@ that generates SHA256 certs with a longer life and larger key size.
|
|||
关于上述第三条需求,即要求具备 CA 签名的证书,有一些额外的注意事项。
|
||||
如果你部署了自己的身份服务,而不是使用云厂商(如 Google 或 Microsoft)所提供的服务,
|
||||
你必须对身份服务的 Web 服务器证书进行签名,签名所用证书的 `CA` 标志要设置为
|
||||
`TRUE`,即使用的是自签名证书。这是因为 GoLang 的 TLS 客户端实现对证书验证标准方面有非常严格的要求。如果你手头没有现成的 CA 证书,可以使用 CoreOS
|
||||
团队所开发的[这个脚本](https://github.com/dexidp/dex/blob/master/examples/k8s/gencert.sh)
|
||||
`TRUE`,即使用的是自签名证书。这是因为 GoLang 的 TLS 客户端实现对证书验证标准方面有非常严格的要求。
|
||||
如果你手头没有现成的 CA 证书,可以使用 Dex
|
||||
团队所开发的[证书生成脚本](https://github.com/dexidp/dex/blob/master/examples/k8s/gencert.sh)
|
||||
来创建一个简单的 CA 和被签了名的证书与密钥对。
|
||||
或者你也可以使用[这个类似的脚本](https://raw.githubusercontent.com/TremoloSecurity/openunison-qs-kubernetes/master/src/main/bash/makessl.sh),
|
||||
生成一个合法期更长、密钥尺寸更大的 SHA256 证书。
|
||||
|
||||
<!--
|
||||
Setup instructions for specific systems:
|
||||
Refer to setup instructions for specific systems:
|
||||
-->
|
||||
特定系统的安装指令:
|
||||
参阅特定系统的安装指令:
|
||||
|
||||
- [UAA](https://docs.cloudfoundry.org/concepts/architecture/uaa.html)
|
||||
- [Dex](https://dexidp.io/docs/kubernetes/)
|
||||
|
|
@ -1302,7 +1318,8 @@ and `client_secret` storing the new values for the `refresh_token` and `id_token
|
|||
<!--
|
||||
##### Option 2 - Use the `--token` Option
|
||||
|
||||
The `kubectl` command lets you pass in a token using the `--token` option. Copy and paste the `id_token` into this option:
|
||||
The `kubectl` command lets you pass in a token using the `--token` option.
|
||||
Copy and paste the `id_token` into this option:
|
||||
-->
|
||||
##### 选项二:使用 `--token` 选项
|
||||
|
||||
|
|
@ -1322,7 +1339,6 @@ Webhook authentication is a hook for verifying bearer tokens.
|
|||
* `--authentication-token-webhook-cache-ttl` how long to cache authentication decisions. Defaults to two minutes.
|
||||
* `--authentication-token-webhook-version` determines whether to use `authentication.k8s.io/v1beta1` or `authentication.k8s.io/v1`
|
||||
`TokenReview` objects to send/receive information from the webhook. Defaults to `v1beta1`.
|
||||
|
||||
-->
|
||||
### Webhook 令牌身份认证 {#webhook-token-authentication}
|
||||
|
||||
|
|
@ -2630,7 +2646,7 @@ Kubernetes API 服务器收到请求后,将使用用户属性填充 status 字
|
|||
|
||||
请求示例(主体将是 `SelfSubjectReview`):
|
||||
|
||||
```
|
||||
```http
|
||||
POST /apis/authentication.k8s.io/v1/selfsubjectreviews
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,10 @@ stages:
|
|||
- stage: beta
|
||||
defaultValue: false
|
||||
fromVersion: "1.28"
|
||||
toVersion: "1.29"
|
||||
- stage: beta
|
||||
defaultValue: true
|
||||
fromVersion: "1.30"
|
||||
---
|
||||
|
||||
<!--
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ By default, Kubernetes fetches node summary metrics data using an embedded
|
|||
[cAdvisor](https://github.com/google/cadvisor) that runs within the kubelet. If you
|
||||
enable the `PodAndContainerStatsFromCRI` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/)
|
||||
in your cluster, and you use a container runtime that supports statistics access via
|
||||
{{< glossary_tooltip term_id="cri" text="Container Runtime Interface">}} (CRI), then
|
||||
{{< glossary_tooltip term_id="container-runtime-interface" text="Container Runtime Interface">}} (CRI), then
|
||||
the kubelet [fetches Pod- and container-level metric data using CRI](/docs/reference/instrumentation/cri-pod-container-metrics), and not via cAdvisor.
|
||||
-->
|
||||
## 概要指标 API 源 {#summary-api-source}
|
||||
|
|
@ -77,9 +77,10 @@ the kubelet [fetches Pod- and container-level metric data using CRI](/docs/refer
|
|||
默认情况下,Kubernetes 使用 kubelet 内运行的嵌入式 [cAdvisor](https://github.com/google/cadvisor)
|
||||
获取节点概要指标数据。如果你在自己的集群中启用 `PodAndContainerStatsFromCRI`
|
||||
[特性门控](/zh-cn/docs/reference/command-line-tools-reference/feature-gates/),
|
||||
且你通过{{< glossary_tooltip term_id="cri" text="容器运行时接口">}} (CRI) 使用支持统计访问的容器运行时,
|
||||
且你通过{{< glossary_tooltip term_id="container-runtime-interface" text="容器运行时接口">}}(CRI)使用支持统计访问的容器运行时,
|
||||
则 kubelet [将使用 CRI 来获取 Pod 和容器级别的指标数据](/zh-cn/docs/reference/instrumentation/cri-pod-container-metrics),
|
||||
而不是 cAdvisor 来获取。
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
<!--
|
||||
|
|
|
|||
|
|
@ -364,18 +364,6 @@ UID to impersonate for the operation.
|
|||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--azure-container-registry-config string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Path to the file containing Azure container registry configuration information.
|
||||
-->
|
||||
含 Azure 容器镜像库配置信息的文件的路径。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cache-dir string <!--Default: "$HOME/.kube/cache"-->默认值:"$HOME/.kube/cache"</td>
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,647 @@
|
|||
---
|
||||
title: kubectl api-resources
|
||||
content_type: tool-reference
|
||||
weight: 30
|
||||
auto_generated: true
|
||||
no_list: true
|
||||
---
|
||||
<!--
|
||||
title: kubectl api-resources
|
||||
content_type: tool-reference
|
||||
weight: 30
|
||||
auto_generated: true
|
||||
no_list: true
|
||||
-->
|
||||
|
||||
## {{% heading "synopsis" %}}
|
||||
|
||||
<!--
|
||||
Print the supported API resources on the server.
|
||||
-->
|
||||
打印服务器支持的 API 资源。
|
||||
|
||||
```
|
||||
kubectl api-resources [flags]
|
||||
```
|
||||
|
||||
## {{% heading "examples" %}}
|
||||
|
||||
<!--
|
||||
# Print the supported API resources
|
||||
# Print the supported API resources with more information
|
||||
# Print the supported API resources sorted by a column
|
||||
# Print the supported namespaced resources
|
||||
# Print the supported non-namespaced resources
|
||||
# Print the supported API resources with a specific APIGroup
|
||||
-->
|
||||
```
|
||||
# 打印服务器支持的 API 资源
|
||||
kubectl api-resources
|
||||
|
||||
# 打印支持的 API 资源,但包含更多信息
|
||||
kubectl api-resources -o wide
|
||||
|
||||
# 按列排序打印支持的 API 资源
|
||||
kubectl api-resources --sort-by=name
|
||||
|
||||
# 打印支持的命名空间资源
|
||||
kubectl api-resources --namespaced=true
|
||||
|
||||
# 打印支持的非命名空间资源
|
||||
kubectl api-resources --namespaced=false
|
||||
|
||||
# 打印特定 APIGroup 支持的 API 资源
|
||||
kubectl api-resources --api-group=rbac.authorization.k8s.io
|
||||
```
|
||||
|
||||
## {{% heading "options" %}}
|
||||
|
||||
<table style="width: 100%; table-layout: fixed;">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10px;" />
|
||||
<col span="1" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--api-group string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Limit to resources in the specified API group.
|
||||
-->
|
||||
限制为指定 API 组中的资源。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cached</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Use the cached list of resources if available.
|
||||
-->
|
||||
如果可用,将使用缓存的资源列表。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--categories strings</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Limit to resources that belong to the specified categories.
|
||||
-->
|
||||
指定资源的类别。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-h, --help</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
help for api-resources
|
||||
-->
|
||||
关于 api-resources 的帮助信息。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--namespaced <!--Default: true-->默认值:true</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If false, non-namespaced resources will be returned, otherwise returning namespaced resources by default.
|
||||
-->
|
||||
如果为false,则返回非命名空间作用域的资源,否则默认返回命名空间作用域的资源。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--no-headers</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
When using the default or custom-column output format, don't print headers (default print headers).
|
||||
-->
|
||||
当使用默认或自定义列输出格式时,不要打印标题(默认打印标题)。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-o, --output string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Output format. One of: (wide, name).
|
||||
-->
|
||||
输出格式,可选值为:wide、name。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--sort-by string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If non-empty, sort list of resources using specified field. The field can be either 'name' or 'kind'.
|
||||
-->
|
||||
如果非空,则使用指定字段对资源列表进行排序,此字段可以是 "name" 或 "kind"。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--verbs strings</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Limit to resources that support the specified verbs.
|
||||
-->
|
||||
筛选支持指定动词的资源。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## {{% heading "parentoptions" %}}
|
||||
|
||||
<table style="width: 100%; table-layout: fixed;">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10px;" />
|
||||
<col span="1" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Username to impersonate for the operation. User could be a regular user or a service account in a namespace.
|
||||
-->
|
||||
操作所用的伪装用户名。用户可以是常规用户或命名空间中的服务账号。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as-group strings</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
|
||||
-->
|
||||
操作所用的伪装用户组,此标志可以被重复设置以指定多个组。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as-uid string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
UID to impersonate for the operation.
|
||||
-->
|
||||
操作所用的伪装 UID。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cache-dir string <!--Default: "$HOME/.kube/cache"-->默认值:"$HOME/.kube/cache"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Default cache directory
|
||||
-->
|
||||
默认缓存目录。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--certificate-authority string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Path to a cert file for the certificate authority
|
||||
-->
|
||||
证书机构的证书文件的路径。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--client-certificate string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Path to a client certificate file for TLS
|
||||
-->
|
||||
TLS 客户端证书文件的路径。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--client-key string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Path to a client key file for TLS
|
||||
-->
|
||||
TLS 客户端密钥文件的路径。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cloud-provider-gce-l7lb-src-cidrs cidrs <!--Default: 130.211.0.0/22,35.191.0.0/16"-->默认值:130.211.0.0/22,35.191.0.0/16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
CIDRs opened in GCE firewall for L7 LB traffic proxy & health checks
|
||||
-->
|
||||
GCE 防火墙中为 L7 负载均衡流量代理和健康检查开放的 CIDR。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cloud-provider-gce-lb-src-cidrs cidrs <!--Default: 130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16-->默认值:130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
CIDRs opened in GCE firewall for L4 LB traffic proxy & health checks
|
||||
-->
|
||||
GCE 防火墙中为 L4 负载均衡流量代理和健康检查开放的 CIDR。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cluster string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The name of the kubeconfig cluster to use
|
||||
-->
|
||||
要使用的 kubeconfig 中集群的名称。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--context string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The name of the kubeconfig context to use
|
||||
-->
|
||||
要使用的 kubeconfig 上下文的名称。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--default-not-ready-toleration-seconds int <!--Default: 300-->默认值:300</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Indicates the tolerationSeconds of the toleration for notReady:NoExecute that is added by default to every pod that does not already have such a toleration.
|
||||
-->
|
||||
设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--default-unreachable-toleration-seconds int <!--Default: 300-->默认值:300</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Indicates the tolerationSeconds of the toleration for unreachable:NoExecute that is added by default to every pod that does not already have such a toleration.
|
||||
-->
|
||||
设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--disable-compression</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
If true, opt-out of response compression for all requests to the server
|
||||
-->
|
||||
如果为 true,则对服务器所有请求的响应不再压缩。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--insecure-skip-tls-verify</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
|
||||
-->
|
||||
如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--kubeconfig string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Path to the kubeconfig file to use for CLI requests.
|
||||
-->
|
||||
CLI 请求要使用的 kubeconfig 文件的路径。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--match-server-version</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Require server version to match client version
|
||||
-->
|
||||
要求服务器版本与客户端版本匹配。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-n, --namespace string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
If present, the namespace scope for this CLI request
|
||||
-->
|
||||
如果存在,则是此 CLI 请求的命名空间范围。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--password string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Password for basic authentication to the API server
|
||||
-->
|
||||
对 API 服务器进行基本身份验证所用的密码。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--profile string <!--Default: "none"-->默认值:"none"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex)
|
||||
-->
|
||||
要记录的性能分析信息。可选值为(none|cpu|heap|goroutine|threadcreate|block|mutex)。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--profile-output string <!--Default: "profile.pprof"-->默认值:"profile.pprof"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Name of the file to write the profile to
|
||||
-->
|
||||
性能分析信息要写入的目标文件的名称。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--request-timeout string <!--Default: "0"-->默认值:"0"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.
|
||||
-->
|
||||
在放弃某个服务器请求之前等待的时长。非零值应包含相应的时间单位(例如 1s、2m、3h)。
|
||||
值为零表示请求不会超时。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-s, --server string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The address and port of the Kubernetes API server
|
||||
-->
|
||||
Kubernetes API 服务器的地址和端口。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-buffer-duration duration <!--Default: 1m0s-->默认值:1m0s</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Writes in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transaction
|
||||
-->
|
||||
对存储驱动的写入操作将被缓存的时长;缓存的操作会作为一个事务提交给非内存后端。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-db string <!--Default: "cadvisor"-->默认值:"cadvisor"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
database name
|
||||
-->
|
||||
数据库名称。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-host string <!--Default: "localhost:8086"-->默认值:"localhost:8086"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
database host:port
|
||||
-->
|
||||
数据库 host:port。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-password string <!--Default: "root"-->默认值:"root"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
database password
|
||||
-->
|
||||
数据库密码。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-secure</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
use secure connection with database
|
||||
-->
|
||||
使用与数据库的安全连接。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-table string <!--Default: "stats"-->默认值:"stats"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
table name
|
||||
-->
|
||||
表名。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-user string <!--Default: "root"-->默认值:"root"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
database username
|
||||
-->
|
||||
数据库用户名。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--tls-server-name string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used
|
||||
-->
|
||||
服务器证书验证所用的服务器名称。如果未提供,则使用与服务器通信所用的主机名。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--token string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Bearer token for authentication to the API server
|
||||
-->
|
||||
向 API 服务器进行身份验证的持有者令牌。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--user string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The name of the kubeconfig user to use
|
||||
-->
|
||||
要使用的 kubeconfig 用户的名称。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--username string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Username for basic authentication to the API server
|
||||
-->
|
||||
对 API 服务器进行基本身份验证时所用的用户名。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--version version[=true]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
--version, --version=raw prints version information and quits; --version=vX.Y.Z... sets the reported version
|
||||
-->
|
||||
--version, --version=raw 打印版本信息并退出;--version=vX.Y.Z... 设置报告的版本。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--warnings-as-errors</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Treat warnings received from the server as errors and exit with a non-zero exit code
|
||||
-->
|
||||
将从服务器收到的警告视为错误,并以非零退出码退出。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
## {{% heading "seealso" %}}
|
||||
|
||||
<!--
|
||||
* [kubectl](../kubectl/) - kubectl controls the Kubernetes cluster manager
|
||||
-->
|
||||
* [kubectl](../kubectl/) - kubectl 控制 Kubernetes 集群管理器
|
||||
|
|
@ -0,0 +1,607 @@
|
|||
---
|
||||
title: kubectl attach
|
||||
content_type: tool-reference
|
||||
weight: 30
|
||||
no_list: true
|
||||
---
|
||||
<!--
|
||||
title: kubectl attach
|
||||
content_type: tool-reference
|
||||
weight: 30
|
||||
auto_generated: true
|
||||
no_list: true
|
||||
-->
|
||||
|
||||
## {{% heading "synopsis" %}}
|
||||
|
||||
<!--
|
||||
Attach to a process that is already running inside an existing container.
|
||||
-->
|
||||
挂接到现有容器内已运行的进程。
|
||||
|
||||
```
|
||||
kubectl attach (POD | TYPE/NAME) -c CONTAINER
|
||||
```
|
||||
|
||||
## {{% heading "examples" %}}
|
||||
|
||||
<!--
|
||||
# Get output from running pod mypod; use the 'kubectl.kubernetes.io/default-container' annotation
|
||||
# for selecting the container to be attached or the first container in the pod will be chosen
|
||||
|
||||
# Get output from ruby-container from pod mypod
|
||||
|
||||
# Switch to raw terminal mode; sends stdin to 'bash' in ruby-container from pod mypod
|
||||
# and sends stdout/stderr from 'bash' back to the client
|
||||
|
||||
# Get output from the first pod of a replica set named nginx
|
||||
-->
|
||||
```
|
||||
# 从运行的 Pod mypod 获取输出;使用 'kubectl.kubernetes.io/default-container' 注解来选择要挂接的容器,
|
||||
# 否则将选择 Pod 中的第一个容器
|
||||
kubectl attach mypod
|
||||
|
||||
# 从 Pod mypod 获取 ruby-container 的输出
|
||||
kubectl attach mypod -c ruby-container
|
||||
|
||||
# 切换到原始终端模式;从 Pod mypod 将 stdin 发送到 ruby-container 中的 'bash',
|
||||
# 并将 stdout/stderr 从 'bash' 发送回客户端
|
||||
kubectl attach mypod -c ruby-container -i -t
|
||||
|
||||
# 获取名为 nginx 的 ReplicaSet 中第一个 Pod 的输出
|
||||
kubectl attach rs/nginx
|
||||
```
|
||||
|
||||
## {{% heading "options" %}}
|
||||
|
||||
<table style="width: 100%; table-layout: fixed;">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10px;" />
|
||||
<col span="1" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-c, --container string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Container name. If omitted, use the kubectl.kubernetes.io/default-container annotation for selecting the container to be attached or the first container in the pod will be chosen
|
||||
-->
|
||||
容器名称。
|
||||
如果省略,则使用 kubectl.kubernetes.io/default-container 注解来选择要挂接的容器,
|
||||
否则将选择 Pod 中的第一个容器。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-h, --help</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
help for attach
|
||||
-->
|
||||
关于 attach 的帮助信息。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--pod-running-timeout duration <!--Default: 1m0s-->默认值:1m0s</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
The length of time (like 5s, 2m, or 3h, higher than zero) to wait until at least one pod is running
|
||||
-->
|
||||
等待至少一个 Pod 运行的时间长度(例如 5 秒、2 分钟或 3 小时,大于零)。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-q, --quiet</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Only print output from the remote session
|
||||
-->
|
||||
仅打印远程会话的输出。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-i, --stdin</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Pass stdin to the container
|
||||
-->
|
||||
将 stdin 传递给容器。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-t, --tty</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Stdin is a TTY
|
||||
-->
|
||||
Stdin 是一个 TTY。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
## {{% heading "parentoptions" %}}
|
||||
|
||||
<table style="width: 100%; table-layout: fixed;">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10px;" />
|
||||
<col span="1" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Username to impersonate for the operation. User could be a regular user or a service account in a namespace.
|
||||
-->
|
||||
操作所用的伪装用户名。用户可以是常规用户或命名空间中的服务账号。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as-group strings</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
|
||||
-->
|
||||
操作所用的伪装用户组,此标志可以被重复设置以指定多个组。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as-uid string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
UID to impersonate for the operation.
|
||||
-->
|
||||
操作所用的伪装 UID。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cache-dir string <!--Default: "$HOME/.kube/cache"-->默认值:"$HOME/.kube/cache"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Default cache directory
|
||||
-->
|
||||
默认缓存目录。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--certificate-authority string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Path to a cert file for the certificate authority
|
||||
-->
|
||||
证书机构的证书文件的路径。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--client-certificate string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Path to a client certificate file for TLS
|
||||
-->
|
||||
TLS 客户端证书文件的路径。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--client-key string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Path to a client key file for TLS
|
||||
-->
|
||||
TLS 客户端密钥文件的路径。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cloud-provider-gce-l7lb-src-cidrs cidrs <!--Default: 130.211.0.0/22,35.191.0.0/16"-->默认值:130.211.0.0/22,35.191.0.0/16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
CIDRs opened in GCE firewall for L7 LB traffic proxy & health checks
|
||||
-->
|
||||
GCE 防火墙中为 L7 负载均衡流量代理和健康检查开放的 CIDR。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cloud-provider-gce-lb-src-cidrs cidrs <!--Default: 130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16-->默认值:130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
CIDRs opened in GCE firewall for L4 LB traffic proxy & health checks
|
||||
-->
|
||||
GCE 防火墙中为 L4 负载均衡流量代理和健康检查开放的 CIDR。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cluster string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The name of the kubeconfig cluster to use
|
||||
-->
|
||||
要使用的 kubeconfig 中集群的名称。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--context string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The name of the kubeconfig context to use
|
||||
-->
|
||||
要使用的 kubeconfig 上下文的名称。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--default-not-ready-toleration-seconds int <!--Default: 300-->默认值:300</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Indicates the tolerationSeconds of the toleration for notReady:NoExecute that is added by default to every pod that does not already have such a toleration.
|
||||
-->
|
||||
设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--default-unreachable-toleration-seconds int <!--Default: 300-->默认值:300</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Indicates the tolerationSeconds of the toleration for unreachable:NoExecute that is added by default to every pod that does not already have such a toleration.
|
||||
-->
|
||||
设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--disable-compression</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
If true, opt-out of response compression for all requests to the server
|
||||
-->
|
||||
如果为 true,则对服务器所有请求的响应不再压缩。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--insecure-skip-tls-verify</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
|
||||
-->
|
||||
如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--kubeconfig string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Path to the kubeconfig file to use for CLI requests.
|
||||
-->
|
||||
CLI 请求要使用的 kubeconfig 文件的路径。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--match-server-version</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Require server version to match client version
|
||||
-->
|
||||
要求服务器版本与客户端版本匹配。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-n, --namespace string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
If present, the namespace scope for this CLI request
|
||||
-->
|
||||
如果存在,则是此 CLI 请求的命名空间范围。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--password string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Password for basic authentication to the API server
|
||||
-->
|
||||
对 API 服务器进行基本身份验证所用的密码。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--profile string <!--Default: "none"-->默认值:"none"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex)
|
||||
-->
|
||||
要记录的性能分析信息。可选值为(none|cpu|heap|goroutine|threadcreate|block|mutex)。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--profile-output string <!--Default: "profile.pprof"-->默认值:"profile.pprof"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Name of the file to write the profile to
|
||||
-->
|
||||
性能分析信息要写入的目标文件的名称。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--request-timeout string <!--Default: "0"-->默认值:"0"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.
|
||||
-->
|
||||
在放弃某个服务器请求之前等待的时长。非零值应包含相应的时间单位(例如 1s、2m、3h)。
|
||||
值为零表示请求不会超时。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-s, --server string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The address and port of the Kubernetes API server
|
||||
-->
|
||||
Kubernetes API 服务器的地址和端口。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-buffer-duration duration <!--Default: 1m0s-->默认值:1m0s</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Writes in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transaction
|
||||
-->
|
||||
对存储驱动的写入操作将被缓存的时长;缓存的操作会作为一个事务提交给非内存后端。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-db string <!--Default: "cadvisor"-->默认值:"cadvisor"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
database name
|
||||
-->
|
||||
数据库名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-host string <!--Default: "localhost:8086"-->默认值:"localhost:8086"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
database host:port
|
||||
-->
|
||||
数据库 host:port。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-password string <!--Default: "root"-->默认值:"root"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
database password
|
||||
-->
|
||||
数据库密码。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-secure</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
use secure connection with database
|
||||
-->
|
||||
使用与数据库的安全连接。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-table string <!--Default: "stats"-->默认值:"stats"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
table name
|
||||
-->
|
||||
表名。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-user string <!--Default: "root"-->默认值:"root"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
database username
|
||||
-->
|
||||
数据库用户名。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--tls-server-name string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used
|
||||
-->
|
||||
服务器证书验证所用的服务器名称。如果未提供,则使用与服务器通信所用的主机名。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--token string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Bearer token for authentication to the API server
|
||||
-->
|
||||
向 API 服务器进行身份验证的持有者令牌。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--user string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The name of the kubeconfig user to use
|
||||
-->
|
||||
要使用的 kubeconfig 用户的名称。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--username string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Username for basic authentication to the API server
|
||||
-->
|
||||
对 API 服务器进行基本身份验证时所用的用户名。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--version version[=true]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
--version, --version=raw prints version information and quits; --version=vX.Y.Z... sets the reported version
|
||||
-->
|
||||
--version, --version=raw 打印版本信息并退出;--version=vX.Y.Z... 设置报告的版本。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--warnings-as-errors</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Treat warnings received from the server as errors and exit with a non-zero exit code
|
||||
-->
|
||||
将从服务器收到的警告视为错误,并以非零退出码退出。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## {{% heading "seealso" %}}
|
||||
|
||||
<!--
|
||||
* [kubectl](../kubectl/) - kubectl controls the Kubernetes cluster manager
|
||||
-->
|
||||
* [kubectl](../kubectl/) - kubectl 控制 Kubernetes 集群管理器
|
||||
|
|
@ -0,0 +1,666 @@
|
|||
---
|
||||
title: kubectl kustomize
|
||||
content_type: tool-reference
|
||||
weight: 30
|
||||
no_list: true
|
||||
---
|
||||
<!--
|
||||
title: kubectl kustomize
|
||||
content_type: tool-reference
|
||||
weight: 30
|
||||
auto_generated: true
|
||||
no_list: true
|
||||
-->
|
||||
|
||||
|
||||
## {{% heading "synopsis" %}}
|
||||
|
||||
<!--
|
||||
Build a set of KRM resources using a 'kustomization.yaml' file. The DIR argument must be a path to a directory containing 'kustomization.yaml', or a git repository URL with a path suffix specifying same with respect to the repository root. If DIR is omitted, '.' is assumed.
|
||||
-->
|
||||
使用 'kustomization.yaml' 文件构建一组 KRM 资源。
|
||||
DIR 参数必须是包含 'kustomization.yaml' 的目录的路径,
|
||||
或相对于 git 仓库根目录而言路径后缀相同的 Git 存储库 URL。
|
||||
如果省略 DIR,则认定为 '.'(当前目录)。
|
||||
|
||||
```
|
||||
kubectl kustomize DIR [flags]
|
||||
```
|
||||
|
||||
## {{% heading "examples" %}}
|
||||
|
||||
<!--
|
||||
# Build the current working directory
|
||||
# Build some shared configuration directory
|
||||
# Build from github
|
||||
-->
|
||||
```
|
||||
# 使用当前工作目录执行 build 操作
|
||||
kubectl kustomize
|
||||
|
||||
# 使用一些共享的配置目录来执行 build 操作
|
||||
kubectl kustomize /home/config/production
|
||||
|
||||
# 基于 Github 仓库来执行 build 操作
|
||||
kubectl kustomize https://github.com/kubernetes-sigs/kustomize.git/examples/helloWorld?ref=v1.0.6
|
||||
```
|
||||
|
||||
## {{% heading "options" %}}
|
||||
|
||||
<table style="width: 100%; table-layout: fixed;">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10px;" />
|
||||
<col span="1" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as-current-user</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
use the uid and gid of the command executor to run the function in the container
|
||||
-->
|
||||
使用命令执行者所拥有的 uid 和 gid 在容器中执行此操作。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--enable-alpha-plugins</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
enable kustomize plugins
|
||||
-->
|
||||
启用 Kustomize 插件。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--enable-helm</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Enable use of the Helm chart inflator generator.
|
||||
-->
|
||||
启用 Helm Chart 生成器。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-e, --env strings</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
a list of environment variables to be used by functions
|
||||
-->
|
||||
函数要使用的环境变量列表。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--helm-command string <!--Default: "helm"-->默认:"helm"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
helm command (path to executable)
|
||||
-->
|
||||
helm 命令(可执行文件路径)。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-h, --help</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
help for kustomize
|
||||
-->
|
||||
关于 Kustomize 的帮助信息。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--load-restrictor string <!--Default: "LoadRestrictionsRootOnly"-->默认:"LoadRestrictionsRootOnly"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
if set to 'LoadRestrictionsNone', local kustomizations may load files from outside their root. This does, however, break the relocatability of the kustomization.
|
||||
-->
|
||||
如果设置为 'LoadRestrictionsNone',本地 kustomization
|
||||
可能会从其根目录之外加载文件,但这会破坏了 kustomization 的可重定位能力。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--mount strings</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
a list of storage options read from the filesystem
|
||||
-->
|
||||
针对从文件系统读取的存储选项列表。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--network</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
enable network access for functions that declare it
|
||||
-->
|
||||
为声明网络的函数启用网络访问。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--network-name string <!--Default: "bridge"-->默认:"bridge"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
the docker network to run the container in
|
||||
-->
|
||||
运行容器的 Docker 网络。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-o, --output string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If specified, write output to this path.
|
||||
-->
|
||||
如果指定,则将输出写入此路径。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
## {{% heading "parentoptions" %}}
|
||||
|
||||
<table style="width: 100%; table-layout: fixed;">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10px;" />
|
||||
<col span="1" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Username to impersonate for the operation. User could be a regular user or a service account in a namespace.
|
||||
-->
|
||||
操作所用的伪装用户名。用户可以是常规用户或命名空间中的服务账号。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as-group strings</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
|
||||
-->
|
||||
操作所用的伪装用户组,此标志可以被重复设置以指定多个组。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as-uid string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
UID to impersonate for the operation.
|
||||
-->
|
||||
操作所用的伪装 UID。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cache-dir string <!--Default: "$HOME/.kube/cache"-->默认值:"$HOME/.kube/cache"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Default cache directory
|
||||
-->
|
||||
默认缓存目录。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--certificate-authority string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Path to a cert file for the certificate authority
|
||||
-->
|
||||
证书机构的证书文件的路径。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--client-certificate string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Path to a client certificate file for TLS
|
||||
-->
|
||||
TLS 客户端证书文件的路径。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--client-key string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Path to a client key file for TLS
|
||||
-->
|
||||
TLS 客户端密钥文件的路径。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cloud-provider-gce-l7lb-src-cidrs cidrs <!--Default: 130.211.0.0/22,35.191.0.0/16"-->默认值:130.211.0.0/22,35.191.0.0/16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
CIDRs opened in GCE firewall for L7 LB traffic proxy & health checks
|
||||
-->
|
||||
GCE 防火墙中为 L7 负载均衡流量代理和健康检查开放的 CIDR。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cloud-provider-gce-lb-src-cidrs cidrs <!--Default: 130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16-->默认值:130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
CIDRs opened in GCE firewall for L4 LB traffic proxy & health checks
|
||||
-->
|
||||
GCE 防火墙中为 L4 负载均衡流量代理和健康检查开放的 CIDR。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cluster string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The name of the kubeconfig cluster to use
|
||||
-->
|
||||
要使用的 kubeconfig 中集群的名称。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--context string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The name of the kubeconfig context to use
|
||||
-->
|
||||
要使用的 kubeconfig 上下文的名称。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--default-not-ready-toleration-seconds int <!--Default: 300-->默认值:300</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Indicates the tolerationSeconds of the toleration for notReady:NoExecute that is added by default to every pod that does not already have such a toleration.
|
||||
-->
|
||||
设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--default-unreachable-toleration-seconds int <!--Default: 300-->默认值:300</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Indicates the tolerationSeconds of the toleration for unreachable:NoExecute that is added by default to every pod that does not already have such a toleration.
|
||||
-->
|
||||
设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--disable-compression</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
If true, opt-out of response compression for all requests to the server
|
||||
-->
|
||||
如果为 true,则对服务器所有请求的响应不再压缩。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--insecure-skip-tls-verify</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
|
||||
-->
|
||||
如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--kubeconfig string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Path to the kubeconfig file to use for CLI requests.
|
||||
-->
|
||||
CLI 请求要使用的 kubeconfig 文件的路径。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--match-server-version</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Require server version to match client version
|
||||
-->
|
||||
要求服务器版本与客户端版本匹配。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-n, --namespace string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
If present, the namespace scope for this CLI request
|
||||
-->
|
||||
如果存在,则是此 CLI 请求的命名空间范围。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--password string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Password for basic authentication to the API server
|
||||
-->
|
||||
对 API 服务器进行基本身份验证所用的密码。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--profile string <!--Default: "none"-->默认值:"none"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex)
|
||||
-->
|
||||
要记录的性能分析信息。可选值为(none|cpu|heap|goroutine|threadcreate|block|mutex)。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--profile-output string <!--Default: "profile.pprof"-->默认值:"profile.pprof"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Name of the file to write the profile to
|
||||
-->
|
||||
性能分析信息要写入的目标文件的名称。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--request-timeout string <!--Default: "0"-->默认值:"0"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.
|
||||
-->
|
||||
在放弃某个服务器请求之前等待的时长。非零值应包含相应的时间单位(例如 1s、2m、3h)。
|
||||
值为零表示请求不会超时。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-s, --server string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The address and port of the Kubernetes API server
|
||||
-->
|
||||
Kubernetes API 服务器的地址和端口。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-buffer-duration duration <!--Default: 1m0s-->默认值:1m0s</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Writes in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transaction
|
||||
-->
|
||||
对存储驱动的写入操作将被缓存的时长;缓存的操作会作为一个事务提交给非内存后端。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-db string <!--Default: "cadvisor"-->默认值:"cadvisor"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
database name
|
||||
-->
|
||||
数据库名称。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-host string <!--Default: "localhost:8086"-->默认值:"localhost:8086"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
database host:port
|
||||
-->
|
||||
数据库 host:port。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-password string <!--Default: "root"-->默认值:"root"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
database password
|
||||
-->
|
||||
数据库密码。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-secure</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
use secure connection with database
|
||||
-->
|
||||
使用与数据库的安全连接。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-table string <!--Default: "stats"-->默认值:"stats"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
table name
|
||||
-->
|
||||
表名。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-user string <!--Default: "root"-->默认值:"root"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
database username
|
||||
-->
|
||||
数据库用户名。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--tls-server-name string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used
|
||||
-->
|
||||
服务器证书验证所用的服务器名称。如果未提供,则使用与服务器通信所用的主机名。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--token string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Bearer token for authentication to the API server
|
||||
-->
|
||||
向 API 服务器进行身份验证的持有者令牌。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--user string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The name of the kubeconfig user to use
|
||||
-->
|
||||
要使用的 kubeconfig 用户的名称。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--username string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Username for basic authentication to the API server
|
||||
-->
|
||||
对 API 服务器进行基本身份验证时所用的用户名。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--version version[=true]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
--version, --version=raw prints version information and quits; --version=vX.Y.Z... sets the reported version
|
||||
-->
|
||||
--version, --version=raw 打印版本信息并退出;--version=vX.Y.Z... 设置报告的版本。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--warnings-as-errors</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Treat warnings received from the server as errors and exit with a non-zero exit code
|
||||
-->
|
||||
将从服务器收到的警告视为错误,并以非零退出码退出。
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## {{% heading "seealso" %}}
|
||||
|
||||
<!--
|
||||
* [kubectl](../kubectl/) - kubectl controls the Kubernetes cluster manager
|
||||
-->
|
||||
* [kubectl](../kubectl/) - kubectl 控制 Kubernetes 集群管理器
|
||||
|
|
@ -0,0 +1,769 @@
|
|||
---
|
||||
title: kubectl taint
|
||||
content_type: tool-reference
|
||||
weight: 30
|
||||
no_list: true
|
||||
---
|
||||
<!--
|
||||
title: kubectl taint
|
||||
content_type: tool-reference
|
||||
weight: 30
|
||||
auto_generated: true
|
||||
no_list: true
|
||||
-->
|
||||
|
||||
## {{% heading "synopsis" %}}
|
||||
|
||||
<!--
|
||||
Update the taints on one or more nodes.
|
||||
|
||||
* A taint consists of a key, value, and effect. As an argument here, it is expressed as key=value:effect.
|
||||
* The key must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to 253 characters.
|
||||
* Optionally, the key can begin with a DNS subdomain prefix and a single '/', like example.com/my-app.
|
||||
* The value is optional. If given, it must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to 63 characters.
|
||||
* The effect must be NoSchedule, PreferNoSchedule or NoExecute.
|
||||
* Currently taint can only apply to node.
|
||||
-->
|
||||
更新一个或多个节点上的污点。
|
||||
|
||||
* 污点由键、值和效果组成。作为此命令的参数,污点表示为 key=value:effect。
|
||||
* 键必须以字母或数字开头,可以包含字母、数字、连字符、点和下划线,最多 253 个字符。
|
||||
* 可选地,键可以以 DNS 子域前缀加上一个 "/" 开头,例如 example.com/my-app。
|
||||
* 值是可选的。如果给定,则必须以字母或数字开头,可以包含字母、数字、连字符、点和下划线,最多 63 个字符。
|
||||
* 效果必须是 NoSchedule、PreferNoSchedule 或 NoExecute。
|
||||
* 目前污点只能应用于节点。
|
||||
|
||||
```
|
||||
kubectl taint NODE NAME KEY_1=VAL_1:TAINT_EFFECT_1 ... KEY_N=VAL_N:TAINT_EFFECT_N
|
||||
```
|
||||
|
||||
## {{% heading "examples" %}}
|
||||
|
||||
<!--
|
||||
# Update node 'foo' with a taint with key 'dedicated' and value 'special-user' and effect 'NoSchedule'
|
||||
# If a taint with that key and effect already exists, its value is replaced as specified
|
||||
|
||||
# Remove from node 'foo' the taint with key 'dedicated' and effect 'NoSchedule' if one exists
|
||||
|
||||
# Remove from node 'foo' all the taints with key 'dedicated'
|
||||
|
||||
# Add a taint with key 'dedicated' on nodes having label myLabel=X
|
||||
|
||||
# Add to node 'foo' a taint with key 'bar' and no value
|
||||
-->
|
||||
```
|
||||
# 使用带有键为 "dedicated" 和值为 "special-user" 以及效果为 "NoSchedule" 的污点来更新节点 "foo"
|
||||
# 如果具有该键和效果的污点已经存在,则其值将按指定方式替换
|
||||
kubectl taint nodes foo dedicated=special-user:NoSchedule
|
||||
|
||||
# 从节点 "foo" 中删除键为 "dedicated" 且效果为 "NoSchedule" 的污点(如果存在)
|
||||
kubectl taint nodes foo dedicated:NoSchedule-
|
||||
|
||||
# 从节点 "foo" 中删除所有带有键为 "dedicated" 的污点
|
||||
kubectl taint nodes foo dedicated-
|
||||
|
||||
# 在标签为 myLabel=X 的节点上添加键为 'dedicated' 的污点
|
||||
kubectl taint node -l myLabel=X dedicated=foo:PreferNoSchedule
|
||||
|
||||
# 向节点 "foo" 添加一个带有键 "bar" 且没有值的污点
|
||||
kubectl taint nodes foo bar:NoSchedule
|
||||
```
|
||||
|
||||
## {{% heading "options" %}}
|
||||
|
||||
<table style="width: 100%; table-layout: fixed;">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10px;" />
|
||||
<col span="1" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--all</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
Select all nodes in the cluster
|
||||
-->
|
||||
选择集群中的所有节点
|
||||
</p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--allow-missing-template-keys <!--Default: true-->默认值:true</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.
|
||||
-->
|
||||
如果为 true,则当模板中缺少字段或映射键时,忽略模板中的任何错误。
|
||||
仅适用于 golang 和 jsonpath 输出格式。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--dry-run string[="unchanged"] <!--Default: "none"-->默认值:"none"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Must be "none", "server", or "client". If client strategy, only print the object that would be sent, without sending it. If server strategy, submit server-side request without persisting the resource.
|
||||
-->
|
||||
必须是 "none"、"server" 或 "client"。如果是客户端策略,则只打印要发送的对象,
|
||||
而不发送该对象。如果是服务器策略,则提交服务器端请求而不持久化资源。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--field-manager string <!--Default: "kubectl-taint"-->默认值:"kubectl-taint"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Name of the manager used to track field ownership.
|
||||
-->
|
||||
用于追踪字段所有权的管理者名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-h, --help</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
help for taint
|
||||
-->
|
||||
关于 taint 的帮助信息。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-o, --output string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Output format. One of: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file).
|
||||
-->
|
||||
输出格式,可以为以下选项之一:
|
||||
(json、yaml、name、go-template、go-template-file、template、templatefile、jsonpath、jsonpath-as-json、jsonpath-file)。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--overwrite</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If true, allow taints to be overwritten, otherwise reject taint updates that overwrite existing taints.
|
||||
-->
|
||||
如果为真,则允许覆盖污点,否则拒绝覆盖现有污点的污点更新。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-l, --selector string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Selector (label query) to filter on, supports '=', '==', and '!='.(e.g. -l key1=value1,key2=value2). Matching objects must satisfy all of the specified label constraints.
|
||||
-->
|
||||
用来执行过滤的选择算符(标签查询),支持 '='、'==' 和 '!='(例如 -l key1=value1,key2=value2)。
|
||||
匹配的对象必须满足所有指定的标签约束。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--show-managed-fields</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If true, keep the managedFields when printing objects in JSON or YAML format.
|
||||
-->
|
||||
如果为 true,则在以 JSON 或 YAML 格式打印对象时保留 managedFields。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--template string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview].
|
||||
-->
|
||||
当 -o=go-template、-o=go-template-file 时使用的模板字符串或模板文件路径。
|
||||
模板格式为 [golang 模板](http://golang.org/pkg/text/template/#pkg-overview)。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--validate string[="strict"] <!--Default: "strict"-->默认值:"strict"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Must be one of: strict (or true), warn, ignore (or false).<br/>"true" or "strict" will use a schema to validate the input and fail the request if invalid. It will perform server side validation if ServerSideFieldValidation is enabled on the api-server, but will fall back to less reliable client-side validation if not.<br/>"warn" will warn about unknown or duplicate fields without blocking the request if server-side field validation is enabled on the API server, and behave as "ignore" otherwise.<br/>"false" or "ignore" will not perform any schema validation, silently dropping any unknown or duplicate fields.
|
||||
-->
|
||||
必须是以下选项之一:strict(或 true)、warn、ignore(或 false)。<br/>
|
||||
"true" 或 "strict" 将使用模式定义来验证输入,如果无效,则请求失败。
|
||||
如果在 API 服务器上启用了 ServerSideFieldValidation,则执行服务器端验证,
|
||||
但如果未启用,它将回退到可靠性较低的客户端验证。<br/>
|
||||
如果在 API 服务器上启用了服务器端字段验证,"warn" 将警告未知或重复的字段而不阻止请求,
|
||||
否则操作与 "ignore" 的表现相同。<br/>
|
||||
"false" 或 "ignore" 将不会执行任何模式定义检查,而是静默删除所有未知或重复的字段。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## {{% heading "parentoptions" %}}
|
||||
|
||||
<table style="width: 100%; table-layout: fixed;">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10px;" />
|
||||
<col span="1" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Username to impersonate for the operation. User could be a regular user or a service account in a namespace.
|
||||
-->
|
||||
操作所用的伪装用户名。用户可以是常规用户或命名空间中的服务账号。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as-group strings</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
|
||||
-->
|
||||
操作所用的伪装用户组,此标志可以被重复设置以指定多个组。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as-uid string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
UID to impersonate for the operation.
|
||||
-->
|
||||
操作所用的伪装 UID。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cache-dir string Default: "$HOME/.kube/cache"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Default cache directory
|
||||
-->
|
||||
默认缓存目录。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--certificate-authority string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Path to a cert file for the certificate authority
|
||||
-->
|
||||
证书机构的证书文件的路径。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--client-certificate string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Path to a client certificate file for TLS
|
||||
-->
|
||||
TLS 客户端证书文件的路径。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--client-key string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Path to a client key file for TLS
|
||||
-->
|
||||
TLS 客户端密钥文件的路径。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cloud-provider-gce-l7lb-src-cidrs cidrs <!--Default: 130.211.0.0/22,35.191.0.0/16"-->默认值:130.211.0.0/22,35.191.0.0/16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
CIDRs opened in GCE firewall for L7 LB traffic proxy & health checks
|
||||
-->
|
||||
GCE 防火墙中为 L7 负载均衡流量代理和健康检查开放的 CIDR。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cloud-provider-gce-lb-src-cidrs cidrs <!--Default: 130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16-->默认值:130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
CIDRs opened in GCE firewall for L4 LB traffic proxy & health checks
|
||||
-->
|
||||
GCE 防火墙中为 L4 负载均衡流量代理和健康检查开放的 CIDR。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cluster string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
</td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The name of the kubeconfig cluster to use
|
||||
-->
|
||||
要使用的 kubeconfig 中集群的名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--context string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
The name of the kubeconfig context to use
|
||||
-->
|
||||
要使用的 kubeconfig 上下文的名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--default-not-ready-toleration-seconds int <!--Default: 300-->默认值:300</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Indicates the tolerationSeconds of the toleration for notReady:NoExecute that is added by default to every pod that does not already have such a toleration.
|
||||
-->
|
||||
设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--default-unreachable-toleration-seconds int <!--Default: 300-->默认值:300</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Indicates the tolerationSeconds of the toleration for unreachable:NoExecute that is added by default to every pod that does not already have such a toleration.
|
||||
-->
|
||||
设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--disable-compression</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If true, opt-out of response compression for all requests to the server
|
||||
-->
|
||||
如果为 true,则对服务器所有请求的响应不再压缩。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--insecure-skip-tls-verify</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
|
||||
-->
|
||||
如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--kubeconfig string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Path to the kubeconfig file to use for CLI requests.
|
||||
-->
|
||||
CLI 请求要使用的 kubeconfig 文件的路径。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--match-server-version</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Require server version to match client version
|
||||
-->
|
||||
要求服务器版本与客户端版本匹配。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-n, --namespace string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If present, the namespace scope for this CLI request
|
||||
-->
|
||||
如果存在,则是此 CLI 请求的命名空间范围。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--password string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Password for basic authentication to the API server
|
||||
-->
|
||||
对 API 服务器进行基本身份验证所用的密码。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--profile string <!--Default: "none"-->默认值:"none"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex)
|
||||
-->
|
||||
要记录的性能分析信息。可选值为(none|cpu|heap|goroutine|threadcreate|block|mutex)。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--profile-output string <!--Default: "profile.pprof"-->默认值:"profile.pprof"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Name of the file to write the profile to
|
||||
-->
|
||||
性能分析信息要写入的目标文件的名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--request-timeout string <!--Default: "0"-->默认值:"0"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.
|
||||
-->
|
||||
在放弃某个服务器请求之前等待的时长。非零值应包含相应的时间单位(例如 1s、2m、3h)。
|
||||
值为零表示请求不会超时。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-s, --server string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
The address and port of the Kubernetes API server
|
||||
-->
|
||||
Kubernetes API 服务器的地址和端口。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-buffer-duration duration <!--Default: 1m0s-->默认值:1m0s</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Writes in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transaction
|
||||
-->
|
||||
对存储驱动的写入操作将被缓存的时长;缓存的操作会作为一个事务提交给非内存后端。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-db string <!--Default: "cadvisor"-->默认值:"cadvisor"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
database name
|
||||
-->
|
||||
数据库名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-host string <!--Default: "localhost:8086"-->默认值:"localhost:8086"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
database host:port
|
||||
-->
|
||||
数据库 host:port。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-password string <!--Default: "root"-->默认值:"root"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
database password
|
||||
-->
|
||||
数据库密码。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-secure</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
use secure connection with database
|
||||
-->
|
||||
使用与数据库的安全连接。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-table string <!--Default: "stats"-->默认值:"stats"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
table name
|
||||
-->
|
||||
表名。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-user string <!--Default: "root"-->默认值:"root"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
database username
|
||||
-->
|
||||
数据库用户名。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--tls-server-name string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used
|
||||
-->
|
||||
服务器证书验证所用的服务器名称。如果未提供,则使用与服务器通信所用的主机名。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--token string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Bearer token for authentication to the API server
|
||||
-->
|
||||
向 API 服务器进行身份验证的持有者令牌。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--user string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
The name of the kubeconfig user to use
|
||||
-->
|
||||
要使用的 kubeconfig 用户的名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--username string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Username for basic authentication to the API server
|
||||
-->
|
||||
对 API 服务器进行基本身份验证时所用的用户名。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--version version[=true]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
--version, --version=raw prints version information and quits; --version=vX.Y.Z... sets the reported version
|
||||
-->
|
||||
--version, --version=raw 打印版本信息并退出;--version=vX.Y.Z... 设置报告的版本。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--warnings-as-errors</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Treat warnings received from the server as errors and exit with a non-zero exit code
|
||||
-->
|
||||
将从服务器收到的警告视为错误,并以非零退出码退出。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## {{% heading "seealso" %}}
|
||||
|
||||
<!--
|
||||
* [kubectl](../kubectl/) - kubectl controls the Kubernetes cluster manager
|
||||
-->
|
||||
* [kubectl](../kubectl/) - kubectl 控制 Kubernetes 集群管理器
|
||||
|
|
@ -0,0 +1,599 @@
|
|||
---
|
||||
title: kubectl uncordon
|
||||
content_type: tool-reference
|
||||
weight: 30
|
||||
no_list: true
|
||||
---
|
||||
<!--
|
||||
title: kubectl uncordon
|
||||
content_type: tool-reference
|
||||
weight: 30
|
||||
auto_generated: true
|
||||
no_list: true
|
||||
-->
|
||||
|
||||
## {{% heading "synopsis" %}}
|
||||
|
||||
<!--
|
||||
Mark node as schedulable.
|
||||
-->
|
||||
将节点标记为可调度。
|
||||
|
||||
```
|
||||
kubectl uncordon NODE
|
||||
```
|
||||
|
||||
## {{% heading "examples" %}}
|
||||
|
||||
```
|
||||
# Mark node "foo" as schedulable
|
||||
kubectl uncordon foo
|
||||
```
|
||||
|
||||
## {{% heading "options" %}}
|
||||
|
||||
<table style="width: 100%; table-layout: fixed;">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10px;" />
|
||||
<col span="1" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--dry-run string[="unchanged"] <!--Default: "none"-->默认值:"none"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Must be "none", "server", or "client". If client strategy, only print the object that would be sent, without sending it. If server strategy, submit server-side request without persisting the resource.
|
||||
-->
|
||||
必须是 "none"、"server" 或 "client"。如果是客户端策略,则只打印要发送的对象,
|
||||
而不发送该对象。如果是服务器策略,则提交服务器端请求而不持久化资源。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-h, --help</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
help for uncordon
|
||||
-->
|
||||
关于 uncordon 的帮助信息。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-l, --selector string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Selector (label query) to filter on, supports '=', '==', and '!='.(e.g. -l key1=value1,key2=value2). Matching objects must satisfy all of the specified label constraints.
|
||||
-->
|
||||
用来过滤的选择算符(标签查询),支持 '='、'==' 和 '!='(例如 -l key1=value1,key2=value2)。
|
||||
匹配的对象必须满足所有指定的标签约束。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
## {{% heading "parentoptions" %}}
|
||||
|
||||
<table style="width: 100%; table-layout: fixed;">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10px;" />
|
||||
<col span="1" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Username to impersonate for the operation. User could be a regular user or a service account in a namespace.
|
||||
-->
|
||||
操作所用的伪装用户名。用户可以是常规用户或命名空间中的服务账号。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as-group strings</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
|
||||
-->
|
||||
操作所用的伪装用户组,此标志可以被重复设置以指定多个组。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as-uid string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
UID to impersonate for the operation.
|
||||
-->
|
||||
操作所用的伪装 UID。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cache-dir string Default: "$HOME/.kube/cache"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Default cache directory
|
||||
-->
|
||||
默认缓存目录。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--certificate-authority string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Path to a cert file for the certificate authority
|
||||
-->
|
||||
证书机构的证书文件的路径。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--client-certificate string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Path to a client certificate file for TLS
|
||||
-->
|
||||
TLS 客户端证书文件的路径。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--client-key string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Path to a client key file for TLS
|
||||
-->
|
||||
TLS 客户端密钥文件的路径。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cloud-provider-gce-l7lb-src-cidrs cidrs <!--Default: 130.211.0.0/22,35.191.0.0/16"-->默认值:130.211.0.0/22,35.191.0.0/16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
CIDRs opened in GCE firewall for L7 LB traffic proxy & health checks
|
||||
-->
|
||||
GCE 防火墙中为 L7 负载均衡流量代理和健康检查开放的 CIDR。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cloud-provider-gce-lb-src-cidrs cidrs <!--Default: 130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16-->默认值:130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
CIDRs opened in GCE firewall for L4 LB traffic proxy & health checks
|
||||
-->
|
||||
GCE 防火墙中为 L4 负载均衡流量代理和健康检查开放的 CIDR。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cluster string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
</td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The name of the kubeconfig cluster to use
|
||||
-->
|
||||
要使用的 kubeconfig 中集群的名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--context string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
The name of the kubeconfig context to use
|
||||
-->
|
||||
要使用的 kubeconfig 上下文的名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--default-not-ready-toleration-seconds int <!--Default: 300-->默认值:300</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Indicates the tolerationSeconds of the toleration for notReady:NoExecute that is added by default to every pod that does not already have such a toleration.
|
||||
-->
|
||||
设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--default-unreachable-toleration-seconds int <!--Default: 300-->默认值:300</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Indicates the tolerationSeconds of the toleration for unreachable:NoExecute that is added by default to every pod that does not already have such a toleration.
|
||||
-->
|
||||
设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--disable-compression</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If true, opt-out of response compression for all requests to the server
|
||||
-->
|
||||
如果为 true,则对服务器所有请求的响应不再压缩。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--insecure-skip-tls-verify</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
|
||||
-->
|
||||
如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--kubeconfig string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Path to the kubeconfig file to use for CLI requests.
|
||||
-->
|
||||
CLI 请求要使用的 kubeconfig 文件的路径。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--match-server-version</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Require server version to match client version
|
||||
-->
|
||||
要求服务器版本与客户端版本匹配。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-n, --namespace string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If present, the namespace scope for this CLI request
|
||||
-->
|
||||
如果存在,则是此 CLI 请求的命名空间范围。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--profile string <!--Default: "none"-->默认值:"none"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex)
|
||||
-->
|
||||
要记录的性能分析信息。可选值为(none|cpu|heap|goroutine|threadcreate|block|mutex)。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--profile-output string <!--Default: "profile.pprof"-->默认值:"profile.pprof"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Name of the file to write the profile to
|
||||
-->
|
||||
性能分析信息要写入的目标文件的名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--request-timeout string <!--Default: "0"-->默认值:"0"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.
|
||||
-->
|
||||
在放弃某个服务器请求之前等待的时长。非零值应包含相应的时间单位(例如 1s、2m、3h)。
|
||||
值为零表示请求不会超时。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-s, --server string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
The address and port of the Kubernetes API server
|
||||
-->
|
||||
Kubernetes API 服务器的地址和端口。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-buffer-duration duration <!--Default: 1m0s-->默认值:1m0s</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Writes in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transaction
|
||||
-->
|
||||
对存储驱动的写入操作将被缓存的时长;缓存的操作会作为一个事务提交给非内存后端。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-db string <!--Default: "cadvisor"-->默认值:"cadvisor"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
database name
|
||||
-->
|
||||
数据库名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-host string <!--Default: "localhost:8086"-->默认值:"localhost:8086"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
database host:port
|
||||
-->
|
||||
数据库 host:port。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-password string <!--Default: "root"-->默认值:"root"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
database password
|
||||
-->
|
||||
数据库密码。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-secure</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
use secure connection with database
|
||||
-->
|
||||
使用与数据库的安全连接。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-table string <!--Default: "stats"-->默认值:"stats"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
table name
|
||||
-->
|
||||
表名。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-user string <!--Default: "root"-->默认值:"root"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
database username
|
||||
-->
|
||||
数据库用户名。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--tls-server-name string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used
|
||||
-->
|
||||
服务器证书验证所用的服务器名称。如果未提供,则使用与服务器通信所用的主机名。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--token string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Bearer token for authentication to the API server
|
||||
-->
|
||||
向 API 服务器进行身份验证的持有者令牌。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--user string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
The name of the kubeconfig user to use
|
||||
-->
|
||||
要使用的 kubeconfig 用户的名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--username string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Username for basic authentication to the API server
|
||||
-->
|
||||
对 API 服务器进行基本身份验证时所用的用户名。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--version version[=true]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
--version, --version=raw prints version information and quits; --version=vX.Y.Z... sets the reported version
|
||||
-->
|
||||
--version, --version=raw 打印版本信息并退出;--version=vX.Y.Z... 设置报告的版本。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--warnings-as-errors</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Treat warnings received from the server as errors and exit with a non-zero exit code
|
||||
-->
|
||||
将从服务器收到的警告视为错误,并以非零退出码退出。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## {{% heading "seealso" %}}
|
||||
|
||||
<!--
|
||||
* [kubectl](../kubectl/) - kubectl controls the Kubernetes cluster manager
|
||||
-->
|
||||
* [kubectl](../kubectl/) - kubectl 控制 Kubernetes 集群管理器
|
||||
|
|
@ -0,0 +1,612 @@
|
|||
---
|
||||
title: kubectl version
|
||||
content_type: tool-reference
|
||||
weight: 30
|
||||
no_list: true
|
||||
---
|
||||
|
||||
<!--
|
||||
title: kubectl version
|
||||
content_type: tool-reference
|
||||
weight: 30
|
||||
auto_generated: true
|
||||
no_list: true
|
||||
-->
|
||||
|
||||
## {{% heading "synopsis" %}}
|
||||
|
||||
<!--
|
||||
Print the client and server version information for the current context.
|
||||
-->
|
||||
打印当前上下文的客户端和服务器版本信息。
|
||||
|
||||
```
|
||||
kubectl version [flags]
|
||||
```
|
||||
|
||||
## {{% heading "examples" %}}
|
||||
|
||||
```
|
||||
# Print the client and server versions for the current context
|
||||
kubectl version
|
||||
```
|
||||
|
||||
## {{% heading "options" %}}
|
||||
|
||||
<table style="width: 100%; table-layout: fixed;">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10px;" />
|
||||
<col span="1" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--client</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If true, shows client version only (no server required).
|
||||
-->
|
||||
如果为 true,则仅显示客户端版本(不需要服务器)。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-h, --help</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
help for version
|
||||
-->
|
||||
关于版本的帮助信息
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-o, --output string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
One of 'yaml' or 'json'.
|
||||
-->
|
||||
`yaml` 或 `json` 之一。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
## {{% heading "parentoptions" %}}
|
||||
|
||||
<table style="width: 100%; table-layout: fixed;">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10px;" />
|
||||
<col span="1" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Username to impersonate for the operation. User could be a regular user or a service account in a namespace.
|
||||
-->
|
||||
操作所用的伪装用户名。用户可以是常规用户或命名空间中的服务账号。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as-group strings</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
|
||||
-->
|
||||
操作所用的伪装用户组,此标志可以被重复设置以指定多个组。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as-uid string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
UID to impersonate for the operation.
|
||||
-->
|
||||
操作所用的伪装 UID。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cache-dir string Default: "$HOME/.kube/cache"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Default cache directory
|
||||
-->
|
||||
默认缓存目录。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--certificate-authority string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Path to a cert file for the certificate authority
|
||||
-->
|
||||
证书机构的证书文件的路径。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--client-certificate string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Path to a client certificate file for TLS
|
||||
-->
|
||||
TLS 客户端证书文件的路径。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--client-key string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Path to a client key file for TLS
|
||||
-->
|
||||
TLS 客户端密钥文件的路径。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cloud-provider-gce-l7lb-src-cidrs cidrs <!--Default: 130.211.0.0/22,35.191.0.0/16"-->默认值:130.211.0.0/22,35.191.0.0/16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
CIDRs opened in GCE firewall for L7 LB traffic proxy & health checks
|
||||
-->
|
||||
GCE 防火墙中为 L7 负载均衡流量代理和健康检查开放的 CIDR。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cloud-provider-gce-lb-src-cidrs cidrs <!--Default: 130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16-->默认值:130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
CIDRs opened in GCE firewall for L4 LB traffic proxy & health checks
|
||||
-->
|
||||
GCE 防火墙中为 L4 负载均衡流量代理和健康检查开放的 CIDR。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cluster string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
</td><td style="line-height: 130%; word-wrap: break-word;"><p>
|
||||
<!--
|
||||
The name of the kubeconfig cluster to use
|
||||
-->
|
||||
要使用的 kubeconfig 中集群的名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--context string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
The name of the kubeconfig context to use
|
||||
-->
|
||||
要使用的 kubeconfig 上下文的名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--default-not-ready-toleration-seconds int <!--Default: 300-->默认值:300</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Indicates the tolerationSeconds of the toleration for notReady:NoExecute that is added by default to every pod that does not already have such a toleration.
|
||||
-->
|
||||
设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--default-unreachable-toleration-seconds int <!--Default: 300-->默认值:300</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Indicates the tolerationSeconds of the toleration for unreachable:NoExecute that is added by default to every pod that does not already have such a toleration.
|
||||
-->
|
||||
设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--disable-compression</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If true, opt-out of response compression for all requests to the server
|
||||
-->
|
||||
如果为 true,则对服务器所有请求的响应不再压缩。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--insecure-skip-tls-verify</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
|
||||
-->
|
||||
如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--kubeconfig string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Path to the kubeconfig file to use for CLI requests.
|
||||
-->
|
||||
CLI 请求要使用的 kubeconfig 文件的路径。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--match-server-version</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Require server version to match client version
|
||||
-->
|
||||
要求服务器版本与客户端版本匹配。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-n, --namespace string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
If present, the namespace scope for this CLI request
|
||||
-->
|
||||
如果存在,则是此 CLI 请求的命名空间范围。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--password string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Password for basic authentication to the API server
|
||||
-->
|
||||
对 API 服务器进行基本身份验证所用的密码。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--profile string <!--Default: "none"-->默认值:"none"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex)
|
||||
-->
|
||||
要记录的性能分析信息。可选值为(none|cpu|heap|goroutine|threadcreate|block|mutex)。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--profile-output string <!--Default: "profile.pprof"-->默认值:"profile.pprof"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Name of the file to write the profile to
|
||||
-->
|
||||
性能分析信息要写入的目标文件的名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--request-timeout string <!--Default: "0"-->默认值:"0"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.
|
||||
-->
|
||||
在放弃某个服务器请求之前等待的时长。非零值应包含相应的时间单位(例如 1s、2m、3h)。
|
||||
值为零表示请求不会超时。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-s, --server string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
The address and port of the Kubernetes API server
|
||||
-->
|
||||
Kubernetes API 服务器的地址和端口。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-buffer-duration duration <!--Default: 1m0s-->默认值:1m0s</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Writes in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transaction
|
||||
-->
|
||||
对存储驱动的写入操作将被缓存的时长;缓存的操作会作为一个事务提交给非内存后端。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-db string <!--Default: "cadvisor"-->默认值:"cadvisor"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
database name
|
||||
-->
|
||||
数据库名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-host string <!--Default: "localhost:8086"-->默认值:"localhost:8086"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
database host:port
|
||||
-->
|
||||
数据库 host:port。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-password string <!--Default: "root"-->默认值:"root"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
database password
|
||||
-->
|
||||
数据库密码。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-secure</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
use secure connection with database
|
||||
-->
|
||||
使用与数据库的安全连接。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-table string <!--Default: "stats"-->默认值:"stats"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
table name
|
||||
-->
|
||||
表名。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-user string <!--Default: "root"-->默认值:"root"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
database username
|
||||
-->
|
||||
数据库用户名。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--tls-server-name string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used
|
||||
-->
|
||||
服务器证书验证所用的服务器名称。如果未提供,则使用与服务器通信所用的主机名。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--token string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Bearer token for authentication to the API server
|
||||
-->
|
||||
向 API 服务器进行身份验证的持有者令牌。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--user string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
The name of the kubeconfig user to use
|
||||
-->
|
||||
要使用的 kubeconfig 用户的名称。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--username string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Username for basic authentication to the API server
|
||||
-->
|
||||
对 API 服务器进行基本身份验证时所用的用户名。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--version version[=true]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
--version, --version=raw prints version information and quits; --version=vX.Y.Z... sets the reported version
|
||||
-->
|
||||
--version, --version=raw 打印版本信息并退出;--version=vX.Y.Z... 设置报告的版本。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--warnings-as-errors</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<p>
|
||||
<!--
|
||||
Treat warnings received from the server as errors and exit with a non-zero exit code
|
||||
-->
|
||||
将从服务器收到的警告视为错误,并以非零退出码退出。
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## {{% heading "seealso" %}}
|
||||
|
||||
<!--
|
||||
* [kubectl](../kubectl/) - kubectl controls the Kubernetes cluster manager
|
||||
-->
|
||||
* [kubectl](../kubectl/) - kubectl 控制 Kubernetes 集群管理器
|
||||
|
|
@ -202,7 +202,7 @@ helpful for troubleshooting.
|
|||
There are many configurations for load balancers. The following example is only one
|
||||
option. Your cluster requirements may need a different configuration.
|
||||
-->
|
||||
使用负载均衡器需要许多配置。你的集群搭建可能需要不同的配置。下面的例子只是其中的一方面配置。
|
||||
负载均衡器有很多种可能的配置方式。以下仅提供一个配置的例子。你的集群可能需要进行不同的配置。
|
||||
{{< /note >}}
|
||||
|
||||
<!--
|
||||
|
|
@ -314,7 +314,7 @@ option. Your cluster requirements may need a different configuration.
|
|||
you must add the `certificateKey` field in the appropriate config locations
|
||||
(under `InitConfiguration` and `JoinConfiguration: controlPlane`).
|
||||
-->
|
||||
标志 `kubeadm init`、`--config` 和 `--certificate-key` 不能混合使用,
|
||||
在使用 `kubeadm init` 时,标记 `--config` 和 `--certificate-key` 不能混用,
|
||||
因此如果你要使用
|
||||
[kubeadm 配置](/zh-cn/docs/reference/config-api/kubeadm-config.v1beta3/),你必须在相应的配置结构
|
||||
(位于 `InitConfiguration` 和 `JoinConfiguration: controlPlane`)添加 `certificateKey` 字段。
|
||||
|
|
|
|||
|
|
@ -43,8 +43,7 @@ see the [Creating a cluster with kubeadm](/docs/setup/production-environment/too
|
|||
* Unique hostname, MAC address, and product_uuid for every node. See [here](#verify-mac-address) for more details.
|
||||
* Certain ports are open on your machines. See [here](#check-required-ports) for more details.
|
||||
* Swap configuration. The default behavior of a kubelet was to fail to start if swap memory was detected on a node.
|
||||
Swap has been supported since v1.22. And since v1.28, Swap is supported for cgroup v2 only; the NodeSwap feature
|
||||
gate of the kubelet is beta but disabled by default.
|
||||
See [Swap memory management](/docs/concepts/architecture/nodes/#swap-memory) for more details.
|
||||
* You **MUST** disable swap if the kubelet is not properly configured to use swap. For example, `sudo swapoff -a`
|
||||
will disable swapping temporarily. To make this change persistent across reboots, make sure swap is disabled in
|
||||
config files like `/etc/fstab`, `systemd.swap`, depending how it was configured on your system.
|
||||
|
|
@ -57,8 +56,7 @@ see the [Creating a cluster with kubeadm](/docs/setup/production-environment/too
|
|||
* 节点之中不可以有重复的主机名、MAC 地址或 product_uuid。请参见[这里](#verify-mac-address)了解更多详细信息。
|
||||
* 开启机器上的某些端口。请参见[这里](#check-required-ports)了解更多详细信息。
|
||||
* 交换分区的配置。kubelet 的默认行为是在节点上检测到交换内存时无法启动。
|
||||
kubelet 自 v1.22 起已开始支持交换分区。自 v1.28 起,仅针对 cgroup v2 支持交换分区;
|
||||
kubelet 的 NodeSwap 特性门控处于 Beta 阶段,但默认被禁用。
|
||||
更多细节参阅[交换内存管理](/zh-cn/docs/concepts/architecture/nodes/#swap-memory)。
|
||||
* 如果 kubelet 未被正确配置使用交换分区,则你**必须**禁用交换分区。
|
||||
例如,`sudo swapoff -a` 将暂时禁用交换分区。要使此更改在重启后保持不变,请确保在如
|
||||
`/etc/fstab`、`systemd.swap` 等配置文件中禁用交换分区,具体取决于你的系统如何配置。
|
||||
|
|
@ -118,7 +116,7 @@ These [required ports](/docs/reference/networking/ports-and-protocols/)
|
|||
need to be open in order for Kubernetes components to communicate with each other.
|
||||
You can use tools like [netcat](https://netcat.sourceforge.net) to check if a port is open. For example:
|
||||
-->
|
||||
## 检查所需端口{#check-required-ports}
|
||||
## 检查所需端口 {#check-required-ports}
|
||||
|
||||
启用这些[必要的端口](/zh-cn/docs/reference/networking/ports-and-protocols/)后才能使 Kubernetes 的各组件相互通信。
|
||||
可以使用 [netcat](https://netcat.sourceforge.net) 之类的工具来检查端口是否开放,例如:
|
||||
|
|
@ -497,7 +495,7 @@ Install crictl (required for kubeadm / Kubelet Container Runtime Interface (CRI)
|
|||
安装 crictl(kubeadm/kubelet 容器运行时接口(CRI)所需):
|
||||
|
||||
```bash
|
||||
CRICTL_VERSION="v1.28.0"
|
||||
CRICTL_VERSION="v1.30.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
|
||||
```
|
||||
|
|
|
|||
|
|
@ -200,7 +200,9 @@ Here is the configuration file for the application Deployment:
|
|||
对于请求成功的响应是一个 hello 消息:
|
||||
|
||||
```none
|
||||
Hello Kubernetes!
|
||||
Hello, world!
|
||||
Version: 2.0.0
|
||||
Hostname: hello-world-cdd4458f4-m47c8
|
||||
```
|
||||
|
||||
<!--
|
||||
|
|
|
|||
|
|
@ -616,17 +616,24 @@ When restoring the cluster, use the `--data-dir` option to specify to which fold
|
|||
在恢复集群时,使用 `--data-dir` 选项来指定集群应被恢复到哪个文件夹。
|
||||
|
||||
```shell
|
||||
ETCDCTL_API=3 etcdctl --data-dir <data-dir-location> snapshot restore snapshot.db
|
||||
etcdutl --data-dir <data-dir-location> snapshot restore snapshot.db
|
||||
```
|
||||
|
||||
<!--
|
||||
where `<data-dir-location>` is a directory that will be created during the restore process.
|
||||
|
||||
Yet another example would be to first export the `ETCDCTL_API` environment variable:
|
||||
The below example depicts the usage of the `etcdctl` tool for the restore operation:
|
||||
-->
|
||||
其中 `<data-dir-location>` 是将在恢复过程中创建的目录。
|
||||
|
||||
另一个例子是先导出 `ETCDCTL_API` 环境变量:
|
||||
下面示例展示了如何使用 `etcdctl` 工具执行恢复操作:
|
||||
|
||||
{{< note >}}
|
||||
<!--
|
||||
The usage of `etcdctl` for restoring has been deprecated since etcd v3.5.x and may be removed from a future etcd release.
|
||||
-->
|
||||
自 etcd v3.5.x 版本起,使用 `etcdctl` 进行恢复的功能已被弃用,未来的可能会在 etcd 版本中被移除。
|
||||
{{< /note >}}
|
||||
|
||||
```shell
|
||||
export ETCDCTL_API=3
|
||||
|
|
|
|||
|
|
@ -262,7 +262,7 @@ kubelet 的配置插件目录机制类似,但与 `kubeadm` 工具允许 patch
|
|||
<!--
|
||||
## Viewing the kubelet configuration
|
||||
-->
|
||||
## 查看 kubelet 配置
|
||||
## 查看 kubelet 配置 {#viewing-the-kubelet-configuration}
|
||||
|
||||
<!--
|
||||
Since the configuration could now be spread over multiple files with this feature, if someone wants to inspect the final actuated configuration,
|
||||
|
|
@ -431,8 +431,9 @@ they can follow these steps to inspect the kubelet configuration:
|
|||
[`KubeletConfiguration`](/docs/reference/config-api/kubelet-config.v1beta1/)
|
||||
reference.
|
||||
- Learn more about kubelet configuration merging in the
|
||||
[reference document](/docs/reference/node/kubelet-config-directory-merging.md).
|
||||
[reference document](/docs/reference/node/kubelet-config-directory-merging).
|
||||
--->
|
||||
- 参阅 [`KubeletConfiguration`](/zh-cn/docs/reference/config-api/kubelet-config.v1beta1/)
|
||||
进一步学习 kubelet 的配置。
|
||||
- 在[参考文档](/zh-cn/docs/reference/node/kubelet-config-directory-merging.md)中了解有关 kubelet 配置合并的更多信息。
|
||||
- 在[参考文档](/zh-cn/docs/reference/node/kubelet-config-directory-merging)中了解有关
|
||||
kubelet 配置合并的更多信息。
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ If you do not already have an application running in your cluster, start
|
|||
如果你的集群中还没有任何应用,使用如下命令启动一个 Hello World 应用:
|
||||
|
||||
```shell
|
||||
kubectl create deployment node-hello --image=gcr.io/google-samples/node-hello:1.0 --port=8080
|
||||
kubectl create deployment hello-app --image=gcr.io/google-samples/hello-app:2.0 --port=8080
|
||||
```
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -354,7 +354,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: patch-demo-ctr-3
|
||||
image: gcr.io/google-samples/node-hello:1.0
|
||||
image: gcr.io/google-samples/hello-app:2.0
|
||||
```
|
||||
|
||||
<!--
|
||||
|
|
@ -385,7 +385,7 @@ patch 中指定的 `containers` 列表只有一个 Container。
|
|||
```yaml
|
||||
spec:
|
||||
containers:
|
||||
- image: gcr.io/google-samples/node-hello:1.0
|
||||
- image: gcr.io/google-samples/hello-app:2.0
|
||||
...
|
||||
name: patch-demo-ctr-3
|
||||
```
|
||||
|
|
|
|||
|
|
@ -195,8 +195,8 @@ nginx ClusterIP None <none> 80/TCP 12s
|
|||
kubectl get statefulset web
|
||||
```
|
||||
```
|
||||
NAME DESIRED CURRENT AGE
|
||||
web 2 1 20s
|
||||
NAME READY AGE
|
||||
web 2/2 37s
|
||||
```
|
||||
|
||||
<!--
|
||||
|
|
@ -984,7 +984,7 @@ image again:
|
|||
在一个终端窗口中对 `web` StatefulSet 执行 patch 操作来再次改变容器镜像:
|
||||
|
||||
```shell
|
||||
kubectl patch statefulset web --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"gcr.io/google_containers/nginx-slim:0.8"}]'
|
||||
kubectl patch statefulset web --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"registry.k8s.io/nginx-slim:0.8"}]'
|
||||
```
|
||||
```
|
||||
statefulset.apps/web patched
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: 公开外部 IP 地址以访问集群中应用程序
|
||||
title: 公开外部 IP 地址以访问集群中的应用
|
||||
content_type: tutorial
|
||||
weight: 10
|
||||
---
|
||||
|
|
@ -41,21 +41,21 @@ external IP address.
|
|||
* Create a Service object that exposes an external IP address.
|
||||
* Use the Service object to access the running application.
|
||||
-->
|
||||
* 运行 Hello World 应用程序的五个实例。
|
||||
* 运行 Hello World 应用的五个实例。
|
||||
* 创建一个公开外部 IP 地址的 Service 对象。
|
||||
* 使用 Service 对象访问正在运行的应用程序。
|
||||
* 使用 Service 对象访问正在运行的应用。
|
||||
|
||||
<!-- lessoncontent -->
|
||||
|
||||
<!--
|
||||
## Creating a service for an application running in five pods
|
||||
-->
|
||||
## 为一个在五个 pod 中运行的应用程序创建服务 {#creating-a-service-for-an-app-running-in-five-pods}
|
||||
## 为在五个 Pod 中运行的应用创建服务 {#creating-a-service-for-an-app-running-in-five-pods}
|
||||
|
||||
<!--
|
||||
1. Run a Hello World application in your cluster:
|
||||
-->
|
||||
1. 在集群中运行 Hello World 应用程序:
|
||||
1. 在集群中运行 Hello World 应用:
|
||||
|
||||
{{% code_sample file="service/load-balancer-example.yaml" %}}
|
||||
|
||||
|
|
@ -78,7 +78,7 @@ external IP address.
|
|||
对象和一个关联的
|
||||
{{< glossary_tooltip term_id="replica-set" text="ReplicaSet" >}} 对象。
|
||||
ReplicaSet 有五个 {{< glossary_tooltip text="Pod" term_id="pod" >}},
|
||||
每个都运行 Hello World 应用程序。
|
||||
每个都运行 Hello World 应用。
|
||||
|
||||
<!--
|
||||
1. Display information about the Deployment:
|
||||
|
|
@ -194,7 +194,7 @@ external IP address.
|
|||
-->
|
||||
7. 在前面的输出中,你可以看到服务有几个端点:
|
||||
10.0.0.6:8080、10.0.1.6:8080、10.0.1.7:8080 和另外两个,
|
||||
这些都是正在运行 Hello World 应用程序的 Pod 的内部地址。
|
||||
这些都是正在运行 Hello World 应用的 Pod 的内部地址。
|
||||
要验证这些是 Pod 地址,请输入以下命令:
|
||||
|
||||
```shell
|
||||
|
|
@ -219,7 +219,7 @@ external IP address.
|
|||
1. Use the external IP address (`LoadBalancer Ingress`) to access the Hello
|
||||
World application:
|
||||
-->
|
||||
8. 使用外部 IP 地址(`LoadBalancer Ingress`)访问 Hello World 应用程序:
|
||||
8. 使用外部 IP 地址(`LoadBalancer Ingress`)访问 Hello World 应用:
|
||||
|
||||
```shell
|
||||
curl http://<external-ip>:<port>
|
||||
|
|
@ -236,7 +236,7 @@ external IP address.
|
|||
其中 `<external-ip>` 是你的服务的外部 IP 地址(`LoadBalancer Ingress`),
|
||||
`<port>` 是你的服务描述中的 `port` 的值。
|
||||
如果你正在使用 minikube,输入 `minikube service my-service`
|
||||
将在浏览器中自动打开 Hello World 应用程序。
|
||||
将在浏览器中自动打开 Hello World 应用。
|
||||
|
||||
<!--
|
||||
The response to a successful request is a hello message:
|
||||
|
|
@ -245,7 +245,9 @@ external IP address.
|
|||
成功请求的响应是一条问候消息:
|
||||
|
||||
```shell
|
||||
Hello Kubernetes!
|
||||
Hello, world!
|
||||
Version: 2.0.0
|
||||
Hostname: 0bd46b45f32f
|
||||
```
|
||||
|
||||
## {{% heading "cleanup" %}}
|
||||
|
|
@ -263,7 +265,7 @@ kubectl delete services my-service
|
|||
To delete the Deployment, the ReplicaSet, and the Pods that are running
|
||||
the Hello World application, enter this command:
|
||||
-->
|
||||
要删除正在运行 Hello World 应用程序的 Deployment、ReplicaSet 和 Pod,请输入以下命令:
|
||||
要删除正在运行 Hello World 应用的 Deployment、ReplicaSet 和 Pod,请输入以下命令:
|
||||
|
||||
```shell
|
||||
kubectl delete deployment hello-world
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ spec:
|
|||
app.kubernetes.io/name: load-balancer-example
|
||||
spec:
|
||||
containers:
|
||||
- image: gcr.io/google-samples/node-hello:1.0
|
||||
- image: gcr.io/google-samples/hello-app:2.0
|
||||
name: hello-world
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
|
|
|
|||
|
|
@ -1,7 +1,88 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="-2.82 -4.07 419.64 80.14">
|
||||
<style>svg {enable-background:new 0 0 414 73}</style>
|
||||
<path d="M101.2 32c3.3 0 5.9-1.3 8-3.9l4.2 4.4c-3.4 3.8-7.3 5.7-11.9 5.7-4.6 0-8.3-1.4-11.3-4.3s-4.4-6.5-4.4-10.9 1.5-8.1 4.5-11c3-2.9 6.7-4.4 11.1-4.4 4.9 0 9 1.9 12.2 5.6l-4.1 4.7c-2.1-2.6-4.7-3.9-7.8-3.9-2.5 0-4.6.8-6.4 2.4-1.8 1.6-2.7 3.8-2.7 6.6s.8 5 2.5 6.7c1.7 1.4 3.7 2.3 6.1 2.3zm17.5 5.8V8.1h6.6v23.8H138v5.9zm48.3-4.1c-3 2.9-6.7 4.4-11.1 4.4-4.4 0-8.1-1.5-11.1-4.4-3-2.9-4.5-6.6-4.5-10.9s1.5-8 4.5-10.9c3-2.9 6.7-4.4 11.1-4.4 4.4 0 8.1 1.5 11.1 4.4 3 2.9 4.5 6.6 4.5 10.9s-1.5 8-4.5 10.9zm-2.3-10.9c0-2.6-.9-4.9-2.5-6.8-1.7-1.9-3.8-2.8-6.3-2.8s-4.6.9-6.3 2.8c-1.7 1.9-2.6 4.1-2.6 6.8s.9 4.9 2.6 6.8c1.7 1.9 3.8 2.8 6.3 2.8s4.6-.9 6.3-2.8 2.5-4.1 2.5-6.8zm20.3 7.4c1.1 1.4 2.6 2.1 4.5 2.1s3.4-.7 4.4-2.1c1.1-1.4 1.6-3.3 1.6-5.6V8.1h6.6v16.6c0 4.3-1.2 7.6-3.6 9.9-2.4 2.3-5.4 3.5-9.1 3.5-3.7 0-6.8-1.2-9.2-3.5-2.4-2.3-3.6-5.6-3.6-9.9V8.1h6.6v16.4c.1 2.4.7 4.3 1.8 5.7zM231.7 12c2.8 2.6 4.3 6.2 4.3 10.8s-1.4 8.3-4.1 11c-2.8 2.7-7 4-12.6 4H209V8.1h10.5c5.3 0 9.4 1.3 12.2 3.9zm-4.8 17.7c1.6-1.5 2.4-3.8 2.4-6.7 0-2.9-.8-5.2-2.4-6.7-1.6-1.6-4.1-2.4-7.5-2.4h-3.7V32h4.2c3 0 5.3-.8 7-2.3zm46.8-21.6h6.7v29.7h-6.7l-14.1-18.6v18.6h-6.7V8.1h6.3l14.5 19.2zm35.1 29.7l-2.8-6.4h-12.5l-2.8 6.4h-7.1l12.8-29.7h6.4l12.8 29.7h-6.8zM299.9 17l-3.7 8.6h7.4l-3.7-8.6zm29.9-3.1v23.9h-6.7V13.9h-8.4V8.1h23.5v5.8zM343 8.1h6.6v29.7H343zM367.9 27l7.6-18.9h7.2l-12 29.7h-5.6L353.2 8.1h7.2zm39.7-18.9V14h-14.8v6.2h13.3v5.6h-13.3V32h15.3v5.8h-21.9V8.1zm-314 55c1.8 0 3.3-.7 4.5-2.2l2.4 2.5c-1.9 2.1-4.1 3.2-6.7 3.2s-4.7-.8-6.3-2.4c-1.7-1.6-2.5-3.7-2.5-6.1 0-2.5.8-4.5 2.5-6.2s3.8-2.5 6.2-2.5c2.7 0 5 1 6.9 3.1l-2.3 2.6c-1.2-1.5-2.6-2.2-4.4-2.2-1.4 0-2.6.5-3.6 1.4-1 .9-1.5 2.1-1.5 3.7s.5 2.8 1.4 3.7c.9 1 2.1 1.4 3.4 1.4zm23.4 1c-1.7 1.6-3.8 2.5-6.2 2.5s-4.5-.8-6.2-2.5c-1.7-1.6-2.5-3.7-2.5-6.1s.8-4.5 2.5-6.1c1.7-1.6 3.8-2.5 6.2-2.5s4.5.8 6.2 2.5c1.7 1.6 2.5 3.7 2.5 6.1s-.8 4.5-2.5 6.1zm-1.2-6.1c0-1.5-.5-2.8-1.4-3.8-1-1-2.1-1.6-3.5-1.6s-2.6.5-3.5 1.6c-1 1-1.4 2.3-1.4 3.8s.5 2.7 1.4 3.8c1 1 2.1 1.6 3.5 1.6s2.6-.5 3.5-1.6c.9-1 1.4-2.3 1.4-3.8zm21.8-2.1l-4.5 9.2h-2.2l-4.5-9.2v10.5h-3.7V49.8h5l4.3 9.1 4.3-9.1h5v16.6h-3.7zm19.3-4.6c1.2 1 1.8 2.5 1.8 4.6s-.6 3.6-1.8 4.5c-1.2 1-3 1.4-5.5 1.4h-2.2v4.6h-3.7V49.8h5.9c2.5 0 4.3.5 5.5 1.5zm-2.7 6.5c.4-.5.7-1.2.7-2.2s-.3-1.6-.9-2c-.6-.4-1.5-.6-2.7-.6h-2.1v5.6h2.5c1.2 0 2-.3 2.5-.8zm11.8 4.3c.6.8 1.5 1.2 2.5 1.2s1.9-.4 2.5-1.2c.6-.8.9-1.8.9-3.2v-9.2h3.7V59c0 2.4-.7 4.3-2 5.6-1.3 1.3-3 1.9-5.1 1.9s-3.8-.7-5.1-2-2-3.2-2-5.6v-9.3h3.7V59c0 1.3.3 2.4.9 3.1zm20.5-9.1v13.4h-3.7V53h-4.7v-3.2h13.1V53zm7.5-3.2h3.7v16.7H194zm19.4 0h3.7v16.6h-3.7L205.5 56v10.4h-3.7V49.8h3.4l8.2 10.7zm18.7 8.2h3.7v5.9c-1.7 1.8-3.9 2.8-6.9 2.8-2.4 0-4.5-.8-6.2-2.4-1.7-1.6-2.5-3.7-2.5-6.1 0-2.5.8-4.5 2.5-6.2s3.7-2.5 6.1-2.5c2.4 0 4.5.8 6.2 2.4l-1.9 2.8c-.7-.7-1.4-1.1-2.1-1.3-.6-.2-1.3-.4-2-.4-1.4 0-2.6.5-3.6 1.4-1 1-1.5 2.2-1.5 3.8 0 1.6.5 2.8 1.4 3.8.9.9 2 1.4 3.3 1.4 1.3 0 2.4-.2 3.2-.7l.3-4.7zm24.7-8.2V53h-7.7v3.6h7.4v3.3h-7.4v6.5h-3.7V49.8zM274 64.1c-1.7 1.6-3.8 2.5-6.2 2.5-2.5 0-4.5-.8-6.2-2.5-1.7-1.6-2.5-3.7-2.5-6.1s.8-4.5 2.5-6.1c1.7-1.6 3.8-2.5 6.2-2.5 2.5 0 4.5.8 6.2 2.5 1.7 1.6 2.5 3.7 2.5 6.1s-.8 4.5-2.5 6.1zm-1.3-6.1c0-1.5-.5-2.8-1.4-3.8-1-1-2.1-1.6-3.5-1.6s-2.6.5-3.5 1.6c-1 1-1.4 2.3-1.4 3.8s.5 2.7 1.4 3.8c1 1 2.1 1.6 3.5 1.6s2.6-.5 3.5-1.6c1-1 1.4-2.3 1.4-3.8zm11.4 4.1c.6.8 1.5 1.2 2.5 1.2s1.9-.4 2.5-1.2c.6-.8.9-1.8.9-3.2v-9.2h3.7V59c0 2.4-.7 4.3-2 5.6-1.3 1.3-3 1.9-5.1 1.9s-3.8-.7-5.1-2c-1.3-1.3-2-3.2-2-5.6v-9.3h3.7V59c-.1 1.3.3 2.4.9 3.1zm25.1-12.3h3.7v16.6h-3.7L301.3 56v10.4h-3.7V49.8h3.4l8.2 10.7zm20.5 2.2c1.6 1.5 2.4 3.5 2.4 6.1 0 2.6-.8 4.6-2.3 6.1-1.5 1.5-3.9 2.3-7.1 2.3H317V49.8h5.9c3 0 5.3.7 6.8 2.2zm-2.7 9.9c.9-.9 1.4-2.1 1.4-3.7s-.5-2.9-1.4-3.8c-.9-.9-2.3-1.3-4.2-1.3h-2.1v10.1h2.4c1.7-.1 3-.5 3.9-1.3zm19.7 4.5l-1.5-3.6h-7l-1.5 3.6h-4l7.2-16.7h3.6l7.2 16.7h-4zm-5-11.7l-2.1 4.8h4.2l-2.1-4.8zm16.8-1.7v13.4h-3.8V53H350v-3.2h13.2V53zm7.4-3.2h3.7v16.7h-3.7zm21.8 14.3c-1.7 1.6-3.8 2.5-6.2 2.5-2.5 0-4.5-.8-6.2-2.5-1.7-1.6-2.5-3.7-2.5-6.1s.8-4.5 2.5-6.1c1.7-1.6 3.8-2.5 6.2-2.5 2.5 0 4.5.8 6.2 2.5 1.7 1.6 2.5 3.7 2.5 6.1s-.8 4.5-2.5 6.1zm-1.2-6.1c0-1.5-.5-2.8-1.4-3.8-1-1-2.1-1.6-3.5-1.6s-2.6.5-3.5 1.6c-1 1-1.4 2.3-1.4 3.8s.5 2.7 1.4 3.8c1 1 2.1 1.6 3.5 1.6s2.6-.5 3.5-1.6c.9-1 1.4-2.3 1.4-3.8zm18.5-8.2h3.8v16.6H405L397.1 56v10.4h-3.7V49.8h3.5l8.1 10.7z"/>
|
||||
<path fill="#446ca9" d="M14.5 46.7H5.4v21.4h21.3v-9.2H14.5zm45.8.1v12.1H48.1v-.1 9.3h21.3V46.7h-9.2zM5.4 25.4h9.2l-.1-.1V13.2h12.2V4H5.4zM48.1 4v9.2h12.2v12.2h9.1V4z"/>
|
||||
<path fill="#76c4d5" d="M46.9 25.4L34.7 13.2h13.4V4H26.7v9.2l12.2 12.2zm-11 21.3h-8L38 56.8l2 2.1H26.7v9.2h21.4v-9.3l-6.1-6zm24.4-21.3v13.3l-2.1-2.1-10.1-10.1v8.1l6 6 6.1 6.1h9.2V25.4zM26.7 37.5L14.6 25.4H5.4v21.3h9.1V33.4l12.2 12.2z"/>
|
||||
<!-- Generator: Adobe Illustrator 26.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="a" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 399.1 76.1" style="enable-background:new 0 0 399.1 76.1;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#0086FF;}
|
||||
.st1{fill:#93EAFF;}
|
||||
</style>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path d="M98.9,33.4c1.5,0,2.9-0.3,4.3-0.9c1.3-0.6,2.5-1.6,3.4-2.8l4.1,4.2c-3.2,3.6-6.9,5.4-11.3,5.4c-2,0.1-3.9-0.2-5.8-1
|
||||
c-1.8-0.7-3.5-1.8-5-3.1c-1.4-1.3-2.5-3-3.2-4.7c-0.7-1.8-1.1-3.7-1-5.6c-0.1-1.9,0.3-3.9,1-5.7c0.7-1.8,1.8-3.4,3.2-4.8
|
||||
c1.5-1.4,3.3-2.5,5.2-3.2c1.9-0.7,4-1,6.1-0.9c2.1,0.1,4.1,0.6,6,1.5c1.9,0.9,3.5,2.2,4.9,3.8l-3.9,4.5c-0.9-1.2-2-2.1-3.3-2.7
|
||||
c-1.3-0.6-2.7-1-4.2-1c-2.2,0-4.4,0.8-6.1,2.3c-0.9,0.8-1.5,1.8-2,2.9c-0.4,1.1-0.6,2.3-0.6,3.4c-0.1,1.2,0.1,2.3,0.5,3.4
|
||||
c0.4,1.1,1,2.1,1.9,2.9C94.7,32.6,96.8,33.4,98.9,33.4L98.9,33.4z M115.5,38.9V10.7h6.3v22.6h12.1v5.6H115.5z M161.5,35
|
||||
c-2.9,2.7-6.6,4.2-10.6,4.2s-7.7-1.5-10.6-4.2c-1.4-1.3-2.5-2.9-3.2-4.7c-0.7-1.8-1.1-3.7-1.1-5.6c-0.1-1.9,0.3-3.9,1-5.6
|
||||
c0.7-1.8,1.8-3.4,3.2-4.7c2.9-2.7,6.6-4.2,10.6-4.2s7.7,1.5,10.6,4.2c1.4,1.3,2.5,2.9,3.2,4.7c0.7,1.8,1.1,3.7,1,5.6
|
||||
c0.1,1.9-0.3,3.9-1,5.6C164,32.1,162.9,33.7,161.5,35z M159.3,24.7c0-2.4-0.9-4.7-2.5-6.5c-0.8-0.8-1.7-1.5-2.7-2
|
||||
c-1-0.5-2.2-0.7-3.3-0.7c-1.1,0-2.2,0.2-3.3,0.7c-1,0.5-2,1.1-2.7,2c-1.6,1.8-2.5,4.1-2.5,6.5c0,2.4,0.9,4.7,2.5,6.5
|
||||
c0.8,0.8,1.7,1.5,2.7,2c1,0.5,2.2,0.7,3.3,0.7c1.1,0,2.2-0.2,3.3-0.7c1-0.5,2-1.1,2.7-2c0.8-0.9,1.5-1.9,1.9-3
|
||||
C159.2,27,159.4,25.9,159.3,24.7z M178.6,31.7c0.5,0.7,1.2,1.2,1.9,1.5c0.7,0.3,1.6,0.5,2.4,0.5c0.8,0,1.6-0.1,2.3-0.5
|
||||
c0.7-0.3,1.4-0.9,1.8-1.5c1.1-1.6,1.6-3.4,1.5-5.3V10.8h6.3v15.8c0,4.1-1.1,7.2-3.4,9.4c-1.2,1.1-2.5,2-4,2.5
|
||||
c-1.5,0.6-3.1,0.8-4.7,0.8c-1.6,0-3.2-0.2-4.7-0.8c-1.5-0.6-2.9-1.4-4-2.5c-2.3-2.2-3.4-5.3-3.4-9.4V10.8h6.3v15.6
|
||||
C176.9,28.3,177.5,30.2,178.6,31.7z M223.1,14.4c2.7,2.5,4.1,5.9,4.1,10.3s-1.3,7.9-3.9,10.5c-2.6,2.6-6.7,3.8-12,3.8h-9.8V10.7
|
||||
h10C216.5,10.7,220.4,11.9,223.1,14.4z M218.5,31.2c1.5-1.4,2.3-3.6,2.3-6.4s-0.8-4.9-2.3-6.4s-3.9-2.3-7.1-2.3h-3.5v17.2h4
|
||||
C214.3,33.5,216.7,32.8,218.5,31.2z M263.1,10.7h6.3v28.3h-6.3l-13.5-17.7v17.7h-6.3V10.7h5.9l13.9,18.2V10.7z M296.5,38.9
|
||||
l-2.7-6.1h-11.9l-2.7,6.1h-6.8l12.2-28.3h6.1L303,38.9H296.5z M288,19.1l-3.5,8.2h7L288,19.1z M316.5,16.2V39h-6.3V16.2h-8v-5.4
|
||||
h22.4v5.4C324.6,16.2,316.5,16.2,316.5,16.2z M329,10.7h6.3v28.3H329C329,38.9,329,10.7,329,10.7z M352.8,28.7l7.2-18h6.9
|
||||
l-11.3,28.3h-5.3l-11.3-28.3h6.9L352.8,28.7z M390.5,10.7v5.6h-14.1v5.8h12.7v5.4h-12.7v5.9H391V39h-20.8V10.8L390.5,10.7
|
||||
C390.5,10.8,390.5,10.7,390.5,10.7z M91.6,63c0.8,0,1.6-0.2,2.4-0.5c0.7-0.4,1.4-0.9,1.9-1.6l2.3,2.4c-0.8,0.9-1.7,1.7-2.9,2.2
|
||||
c-1.1,0.5-2.3,0.8-3.5,0.8c-1.1,0-2.2-0.1-3.2-0.5c-1-0.4-2-1-2.8-1.8c-0.8-0.7-1.4-1.6-1.8-2.6c-0.4-1-0.6-2.1-0.6-3.2
|
||||
c0-1.1,0.2-2.2,0.6-3.2c0.4-1,1-1.9,1.8-2.7c0.8-0.8,1.7-1.4,2.7-1.8c1-0.4,2.1-0.6,3.2-0.6c1.2,0,2.5,0.2,3.6,0.7
|
||||
c1.1,0.5,2.1,1.3,3,2.2l-2.2,2.5c-0.5-0.7-1.1-1.2-1.8-1.6c-0.7-0.4-1.5-0.5-2.4-0.5c-1.3,0-2.5,0.5-3.4,1.3
|
||||
c-0.5,0.4-0.9,1-1.1,1.6c-0.2,0.6-0.4,1.3-0.3,1.9c0,0.6,0.1,1.3,0.3,1.9c0.2,0.6,0.6,1.2,1,1.6c0.4,0.4,0.9,0.8,1.5,1
|
||||
S91,63,91.6,63L91.6,63z M113.9,63.9c-1.6,1.5-3.7,2.4-5.9,2.4c-1.1,0-2.2-0.2-3.2-0.6c-1-0.4-1.9-1-2.7-1.8
|
||||
c-1.5-1.5-2.4-3.6-2.4-5.8s0.9-4.3,2.4-5.8c1.6-1.5,3.7-2.4,5.9-2.4c1.1,0,2.2,0.2,3.2,0.6s1.9,1,2.7,1.8
|
||||
c1.5,1.5,2.4,3.6,2.4,5.8S115.4,62.4,113.9,63.9z M112.8,58.1c0-1.3-0.4-2.6-1.3-3.6c-0.4-0.5-0.9-0.8-1.5-1.1
|
||||
c-0.6-0.3-1.2-0.4-1.8-0.4c-0.6,0-1.3,0.1-1.8,0.4c-0.6,0.3-1.1,0.7-1.5,1.2c-0.5,0.5-0.8,1-1,1.7c-0.2,0.6-0.3,1.3-0.3,1.9
|
||||
c0,1.3,0.5,2.6,1.3,3.6c0.4,0.5,0.9,0.8,1.5,1.1c0.6,0.3,1.2,0.4,1.8,0.4c0.6,0,1.3-0.1,1.8-0.4c0.6-0.3,1.1-0.7,1.5-1.2
|
||||
C112.3,60.8,112.8,59.5,112.8,58.1L112.8,58.1z M133.5,56.1l-4.3,8.7h-2.1l-4.3-8.7v10h-3.5V50.3h4.8l4.1,8.7l4.1-8.7h4.8v15.9
|
||||
h-3.5L133.5,56.1L133.5,56.1z M151.9,51.8c0.6,0.5,1.1,1.2,1.4,2c0.3,0.8,0.4,1.6,0.3,2.4c0,2-0.6,3.4-1.7,4.3
|
||||
c-1.1,1-2.9,1.3-5.2,1.3h-2.1v4.4H141V50.3h5.6C149,50.3,150.7,50.8,151.9,51.8z M149.3,58c0.5-0.6,0.7-1.3,0.7-2.1
|
||||
c0-0.4,0-0.7-0.2-1.1c-0.2-0.3-0.4-0.6-0.7-0.8c-0.8-0.4-1.7-0.6-2.6-0.6h-2v5.3h2.4c0.4,0,0.9,0,1.3-0.1
|
||||
C148.6,58.4,149,58.2,149.3,58z M160.6,62c0.3,0.4,0.6,0.6,1.1,0.8c0.4,0.2,0.9,0.3,1.3,0.3c0.5,0,0.9-0.1,1.3-0.3
|
||||
c0.4-0.2,0.8-0.5,1.1-0.8c0.6-0.9,0.9-2,0.9-3v-8.8h3.5v8.8c0.1,1-0.1,1.9-0.4,2.9c-0.3,0.9-0.8,1.8-1.5,2.5
|
||||
c-1.3,1.2-3.1,1.8-4.9,1.8c-1.8,0-3.5-0.7-4.8-1.9c-0.7-0.7-1.2-1.6-1.5-2.5c-0.3-0.9-0.5-1.9-0.4-2.9v-8.8h3.5v8.8
|
||||
C159.6,60,159.9,61.1,160.6,62z M180.1,53.4v12.7h-3.5V53.4h-4.5v-3h12.6v3C184.6,53.4,180.1,53.4,180.1,53.4z M187.2,50.3h3.5
|
||||
v15.9h-3.5C187.2,66.2,187.2,50.3,187.2,50.3z M205.7,50.3h3.5v15.9h-3.5l-7.5-9.9v9.9h-3.5V50.3h3.3l7.8,10.2L205.7,50.3
|
||||
C205.8,50.3,205.7,50.3,205.7,50.3z M223.5,58.1h3.5v5.6c-0.8,0.9-1.9,1.6-3,2c-1.1,0.5-2.4,0.7-3.6,0.6c-2.2,0-4.3-0.8-5.9-2.3
|
||||
c-0.8-0.7-1.4-1.6-1.8-2.6c-0.4-1-0.6-2.1-0.6-3.2c0-1.1,0.2-2.2,0.6-3.2c0.4-1,1-1.9,1.8-2.7s1.7-1.4,2.7-1.8
|
||||
c1-0.4,2.1-0.6,3.2-0.6c2.2,0,4.3,0.8,5.9,2.3l-1.8,2.7c-0.5-0.6-1.2-1-2-1.2c-0.6-0.2-1.3-0.4-1.9-0.4c-1.3,0-2.5,0.5-3.4,1.3
|
||||
c-0.5,0.5-0.9,1-1.1,1.7s-0.4,1.3-0.3,2c0,1.3,0.4,2.6,1.3,3.6c0.4,0.4,0.9,0.8,1.4,1c0.5,0.2,1.1,0.3,1.7,0.3
|
||||
c1.1,0.1,2.1-0.2,3-0.7v-4.5H223.5z M247,50.3v3.1h-7.3v3.4h6.9V60h-6.9v6.2h-3.5V50.3C236.1,50.3,247,50.3,247,50.3z
|
||||
M263.4,63.9c-1.6,1.5-3.7,2.4-5.9,2.4c-1.1,0-2.2-0.2-3.2-0.6c-1-0.4-1.9-1-2.7-1.8c-1.5-1.5-2.4-3.6-2.4-5.8s0.9-4.3,2.4-5.8
|
||||
c1.6-1.5,3.7-2.4,5.9-2.4c1.1,0,2.2,0.2,3.2,0.6s1.9,1,2.7,1.8c1.5,1.5,2.4,3.6,2.4,5.8S264.9,62.4,263.4,63.9z M262.1,58.1
|
||||
c0-1.3-0.4-2.6-1.3-3.6c-0.4-0.5-0.9-0.8-1.5-1.1c-0.6-0.3-1.2-0.4-1.8-0.4c-0.6,0-1.3,0.1-1.8,0.4c-0.6,0.3-1.1,0.7-1.5,1.2
|
||||
c-0.5,0.5-0.8,1-1,1.7s-0.3,1.3-0.3,1.9c0,1.3,0.5,2.6,1.3,3.6c0.4,0.5,0.9,0.8,1.5,1.1c0.6,0.3,1.2,0.4,1.8,0.4
|
||||
c0.6,0,1.3-0.1,1.8-0.4c0.6-0.3,1.1-0.7,1.5-1.2c0.5-0.5,0.8-1,1-1.7S262.2,58.8,262.1,58.1L262.1,58.1z M273,62
|
||||
c0.3,0.4,0.6,0.6,1.1,0.8c0.4,0.2,0.9,0.3,1.3,0.3s0.9-0.1,1.3-0.3c0.4-0.2,0.8-0.5,1.1-0.8c0.6-0.9,0.9-2,0.9-3v-8.8h3.5v8.8
|
||||
c0.1,1-0.1,1.9-0.4,2.9c-0.3,0.9-0.8,1.8-1.5,2.5c-1.3,1.2-3.1,1.8-4.9,1.8c-1.8,0-3.5-0.7-4.8-1.9c-0.7-0.7-1.2-1.6-1.5-2.5
|
||||
c-0.3-0.9-0.5-1.9-0.4-2.9v-8.8h3.5v8.8C272,60,272.3,61.2,273,62z M296.9,50.3h3.5v15.9h-3.5l-7.5-9.9v9.9h-3.5V50.3h3.3
|
||||
l7.8,10.2L296.9,50.3C297,50.3,296.9,50.3,296.9,50.3z M316.4,52.4c0.8,0.7,1.4,1.7,1.8,2.7s0.6,2.1,0.5,3.1
|
||||
c0.1,1.1-0.1,2.1-0.5,3.1c-0.4,1-1,1.9-1.7,2.7c-1.4,1.4-3.7,2.2-6.8,2.2h-5.4V50.3h5.6C312.8,50.3,315,51,316.4,52.4z
|
||||
M313.8,61.9c0.4-0.5,0.8-1,1-1.6c0.2-0.6,0.3-1.3,0.3-1.9c0-0.7-0.1-1.3-0.3-1.9s-0.6-1.2-1-1.7c-0.6-0.5-1.2-0.8-1.9-1
|
||||
s-1.4-0.3-2.1-0.2h-2v9.6h2.3C311.4,63.1,312.8,62.7,313.8,61.9z M332.6,66.1l-1.4-3.4h-6.7l-1.4,3.4h-3.8l6.9-15.9h3.4l6.9,15.9
|
||||
H332.6z M327.8,55l-2,4.6h4L327.8,55z M343.8,53.4v12.7h-3.5V53.4h-4.6v-3h12.6v3C348.3,53.4,343.8,53.4,343.8,53.4z M350.8,50.3
|
||||
h3.5v15.9h-3.5C350.8,66.2,350.8,50.3,350.8,50.3z M371.6,63.9c-1.6,1.5-3.7,2.4-5.9,2.4c-1.1,0-2.2-0.2-3.2-0.6s-1.9-1-2.7-1.8
|
||||
c-1.5-1.5-2.4-3.6-2.4-5.8s0.9-4.3,2.4-5.8c1.6-1.5,3.7-2.4,5.9-2.4c1.1,0,2.2,0.2,3.2,0.6c1,0.4,1.9,1,2.7,1.8
|
||||
c1.5,1.5,2.4,3.6,2.4,5.8S373.1,62.4,371.6,63.9z M370.5,58.1c0-1.3-0.5-2.6-1.3-3.6c-0.4-0.5-0.9-0.8-1.5-1.1
|
||||
c-0.6-0.3-1.2-0.4-1.8-0.4c-0.6,0-1.3,0.1-1.8,0.4c-0.6,0.3-1.1,0.7-1.5,1.2c-0.5,0.5-0.8,1-1,1.7s-0.3,1.3-0.3,1.9
|
||||
c0,1.3,0.5,2.6,1.3,3.6c0.4,0.5,0.9,0.8,1.5,1.1c0.6,0.3,1.2,0.4,1.8,0.4c0.6,0,1.3-0.1,1.8-0.4c0.6-0.3,1.1-0.7,1.5-1.2
|
||||
C370,60.8,370.5,59.5,370.5,58.1z M388.1,50.3h3.5v15.9h-3.5l-7.5-9.9v9.9H377V50.3h3.3l7.8,10.2
|
||||
C388.2,60.5,388.1,50.3,388.1,50.3z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st0" d="M16.2,47.3H7.5v20.3h20.3v-8.7H16.2V47.3z"/>
|
||||
<path class="st0" d="M59.8,47.4v11.5H48.2v8.7h20.3V47.3L59.8,47.4L59.8,47.4z"/>
|
||||
<path class="st0" d="M7.5,27.1h8.8L16.2,27V15.5h11.6V6.8H7.5V27.1z"/>
|
||||
<path class="st0" d="M48.2,6.8v8.7h11.6v11.6h8.7V6.8C68.4,6.8,48.2,6.8,48.2,6.8z"/>
|
||||
<path class="st1" d="M47,27.1L35.4,15.5h12.7V6.8H27.8v8.7l11.6,11.6H47z"/>
|
||||
<path class="st1" d="M36.6,47.3H29l9.6,9.6l1.9,2H27.8v8.7h20.4v-8.8l-5.8-5.7L36.6,47.3z"/>
|
||||
<path class="st1" d="M59.8,27.1v12.6l-2-2l-9.6-9.6v7.7l5.7,5.7l5.8,5.8h8.8V27.1H59.8L59.8,27.1z"/>
|
||||
<path class="st1" d="M27.8,38.6L16.3,27.1H7.5v20.2h8.7V34.7l11.6,11.6V38.6z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 8.3 KiB |
Loading…
Reference in New Issue