diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES index 0729ca3503748..f300938b81b50 100644 --- a/OWNERS_ALIASES +++ b/OWNERS_ALIASES @@ -16,7 +16,6 @@ aliases: - salaxander - sftim - tengqm - - drewhagen # RT 1.31 temp acting Docs lead sig-docs-localization-owners: # Admins for localization content - a-mccarthy - divya-mohan0209 @@ -64,8 +63,7 @@ aliases: - salaxander - sftim - tengqm - - Princesso # RT 1.31 Docs Lead - - drewhagen # RT 1.31 temp acting Docs lead + - chanieljdan # RT 1.32 Docs Lead sig-docs-en-reviews: # PR reviews for English content - dipesh-rawat - divya-mohan0209 @@ -81,8 +79,8 @@ aliases: - shannonxtreme - tengqm - windsonsea - - Princesso # RT 1.31 Docs Lead - - drewhagen # RT 1.31 temp acting Docs lead + - Princesso + - drewhagen sig-docs-es-owners: # Admins for Spanish content - electrocucaracha - krol3 @@ -228,12 +226,12 @@ aliases: - MaxymVlasov # authoritative source: git.k8s.io/community/OWNERS_ALIASES committee-steering: # provide PR approvals for announcements - - bentheelder + - aojea + - BenTheElder - justaugustus - - mrbobbytables - pacoxu - - palnabarun - pohly + - saschagrunert - soltysh # authoritative source: https://git.k8s.io/sig-release/OWNERS_ALIASES sig-release-leads: diff --git a/README-ja.md b/README-ja.md index 30983de78a645..70d508d01aa14 100644 --- a/README-ja.md +++ b/README-ja.md @@ -169,7 +169,7 @@ sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist ## ドキュメントに貢献する {#contributing-to-the-docs} -GitHubの画面右上にある**Fork**ボタンをクリックすると、GitHubアカウントに紐付いた本リポジトリのコピーが作成されます。このコピーのことを*フォーク*と呼びます。フォークリポジトリの中では好きなように変更を加えることができます。加えた変更をこのリポジトリに反映したい好きなタイミングで、フォークリポジトリからPull Reqeustを作成してください。 +GitHubの画面右上にある**Fork**ボタンをクリックすると、GitHubアカウントに紐付いた本リポジトリのコピーが作成されます。このコピーのことを*フォーク*と呼びます。フォークリポジトリの中では好きなように変更を加えることができます。加えた変更をこのリポジトリに反映したい好きなタイミングで、フォークリポジトリからPull Requestを作成してください。 Pull Requestが作成されると、レビュー担当者が責任を持って明確かつ実用的なフィードバックを返します。Pull Requestの所有者は作成者であるため、**自分自身で作成したPull Requestを編集し、フィードバックに対応するのはあなたの責任です。** diff --git a/assets/scss/_base.scss b/assets/scss/_base.scss index 629de7a690fc5..6e4551a8fb6cc 100644 --- a/assets/scss/_base.scss +++ b/assets/scss/_base.scss @@ -893,6 +893,11 @@ section#cncf { } } +footer.row { + margin-left: initial; + margin-right: initial; +} + /* DOCUMENTATION */ // nav-tabs and tab-content diff --git a/assets/scss/_custom.scss b/assets/scss/_custom.scss index fd428acba9e02..e5ebb597f8969 100644 --- a/assets/scss/_custom.scss +++ b/assets/scss/_custom.scss @@ -266,16 +266,26 @@ body.td-404 main .error-details { /* FOOTER */ footer { - background-color: #303030; + background-color: #202020; + /* darkened later in this file */ background-image: url("/images/texture.png"); padding: 1rem !important; min-height: initial !important; + justify-content: center; > div, > p { max-width: 95%; @media only screen and (min-width: 768px) { max-width: calc(min(80rem,90vw)); // avoid spreading too wide } + color: inherit; + background: transparent; + + a:hover { + color: inherit; + background: transparent; + text-decoration: underline; + } } > .footer__links { @@ -313,6 +323,50 @@ footer { } } +footer { + background-image: linear-gradient(rgba(0, 0, 0, 0.527),rgba(0, 0, 0, 0.5)) , url("/images/texture.png"); + color: #e9e9e9; +} + +// Custom footer sizing +@media (min-width: 800px) and (max-width: 1279px) { + footer { + ul.footer-icons { + min-width: 17.5vw; + display: flex; + flex-wrap: nowrap; + flex-direction: row; + justify-content: space-evenly; + } + .col-sm-2 { + flex: 0 0 22.5%; + max-width: 22.5%; + } + .footer-main.text-center { + flex: 0 0 50%; + max-width: 50%; + } + + } +} + + +@media (max-width: 799px) { + footer ul.footer-icons { + display: flex; + flex-wrap: nowrap; + flex-direction: column; + align-items: flex-start; + row-gap: 0.5em; + } + footer div.order-1 ul.footer-icons { + margin-left: auto; + } + footer div.order-3 ul.footer-icons { + margin-right: auto; + } +} + /* SIDE-DRAWER MENU */ .pi-pushmenu .sled { diff --git a/content/de/docs/tasks/tools/install-kubectl-linux.md b/content/de/docs/tasks/tools/install-kubectl-linux.md index b1baddfabab5b..b899cdd041767 100644 --- a/content/de/docs/tasks/tools/install-kubectl-linux.md +++ b/content/de/docs/tasks/tools/install-kubectl-linux.md @@ -127,7 +127,7 @@ Um kubectl auf Linux zu installieren, gibt es die folgenden Möglichkeiten: ```shell sudo apt-get update - sudo apt-get install -y ca-certificates curl + sudo apt-get install -y ca-certificates curl gnupg ``` Falls Debian 9 (stretch) oder älter genutzt wird, müssen zusätzlich das Paket `apt-transport-https` installiert werden: @@ -136,16 +136,20 @@ Um kubectl auf Linux zu installieren, gibt es die folgenden Möglichkeiten: sudo apt-get install -y apt-transport-https ``` -2. Den öffentlichen Google Cloud Signaturschlüssel herunterladen: +2. Den öffentlichen Signaturschlüssel für die Kubernetes Repositories herunterladen: ```shell - curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg + # Falls der Ordner `/etc/apt/keyrings` nicht existiert, sollte er vor dem curl Kommando erstellt werden, siehe folgende Zeile + # sudo mkdir -p -m 755 /etc/apt/keyrings + curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg + sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg # nicht privilegierten APT Applikationen den Lesezugriff auf diesen Keyring erlauben ``` -3. Kubernetes zum `apt` Repository: +3. Kubernetes `apt` Repository hinzufügen: ```shell - echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list + echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list + sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list # dies hilft tools wie command-not-found korrekt zu funktionieren ``` 4. Den `apt` Paketindex mit dem neuen Repository updaten und kubectl installieren: diff --git a/content/en/blog/_posts/2024-09-17-sig-scheduling-spotlight.md b/content/en/blog/_posts/2024-09-17-sig-scheduling-spotlight.md index c06a6929747bc..dfe75e0f7998f 100644 --- a/content/en/blog/_posts/2024-09-17-sig-scheduling-spotlight.md +++ b/content/en/blog/_posts/2024-09-17-sig-scheduling-spotlight.md @@ -19,7 +19,7 @@ Kubernetes?** **Kensei**: Hi, thanks for the opportunity! I’m Kensei Nakada ([@sanposhiho](https://github.com/sanposhiho/)), a software engineer at [Tetrate.io](https://tetrate.io/). I have been contributing to Kubernetes in my free time for more -than 3 years, and now I’m an approver of SIG-Scheduling in Kubernetes. Also, I’m a founder/owner of +than 3 years, and now I’m an approver of SIG Scheduling in Kubernetes. Also, I’m a founder/owner of two SIG subprojects, [kube-scheduler-simulator](https://github.com/kubernetes-sigs/kube-scheduler-simulator) and [kube-scheduler-wasm-extension](https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension). @@ -32,14 +32,14 @@ brief overview of SIG Scheduling and explain its role within the Kubernetes ecos **KN**: As the name implies, our responsibility is to enhance scheduling within Kubernetes. Specifically, we develop the components that determine which Node is the best place for each Pod. In Kubernetes, our main focus is on maintaining the -[kube-scheduler](https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/), along +[kube-scheduler](/docs/concepts/scheduling-eviction/kube-scheduler/), along with other scheduling-related components as part of our SIG subprojects. **AP: I see, got it! That makes me curious--what recent innovations or developments has SIG Scheduling introduced to Kubernetes scheduling?** -**KN**: From a feature perspective, there have been [several -enhancements](https://kubernetes.io/blog/2023/04/17/fine-grained-pod-topology-spread-features-beta/) +**KN**: From a feature perspective, there have been +[several enhancements](/blog/2023/04/17/fine-grained-pod-topology-spread-features-beta/) to `PodTopologySpread` recently. `PodTopologySpread` is a relatively new feature in the scheduler, and we are still in the process of gathering feedback and making improvements. @@ -53,59 +53,58 @@ reducing the likelihood of wasting scheduling cycles. **A: That sounds interesting! Are there any other interesting topics or projects you are currently working on within SIG Scheduling?** -**KN**: I’m leading the development of `QueueingHint` which I just shared. Given that it’s a big new +**KN**: I’m leading the development of `QueueingHint` which I just shared. Given that it’s a big new challenge for us, we’ve been facing many unexpected challenges, especially around the scalability, and we’re trying to solve each of them to eventually enable it by default. And also, I believe -[kube-scheduler-wasm-extention](https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension) -(SIG sub project) that I started last year would be interesting to many people. Kubernetes has +[kube-scheduler-wasm-extension](https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension) +(a SIG subproject) that I started last year would be interesting to many people. Kubernetes has various extensions from many components. Traditionally, extensions are provided via webhooks ([extender](https://github.com/kubernetes/design-proposals-archive/blob/main/scheduling/scheduler_extender.md) -in the scheduler) or Go SDK ([Scheduling -Framework](https://kubernetes.io/docs/concepts/scheduling-eviction/scheduling-framework/) in the -scheduler). However, these come with drawbacks - performance issues with webhooks and the need to +in the scheduler) or Go SDK ([Scheduling Framework](/docs/concepts/scheduling-eviction/scheduling-framework/) +in the scheduler). However, these come with drawbacks - performance issues with webhooks and the need to rebuild and replace schedulers with Go SDK, posing difficulties for those seeking to extend the -scheduler but lacking familiarity with it. The project is trying to introduce a new solution to +scheduler but lacking familiarity with it. The project is trying to introduce a new solution to this general challenge - a [WebAssembly](https://webassembly.org/) based extension. Wasm allows users to build plugins easily, without worrying about recompiling or replacing their scheduler, and sidestepping performance concerns. -Through this project, sig-scheduling has been learning valuable insights about WebAssembly's +Through this project, SIG Scheduling has been learning valuable insights about WebAssembly's interaction with large Kubernetes objects. And I believe the experience that we’re gaining should be -useful broadly within the community, beyond sig-scheduling. +useful broadly within the community, beyond SIG Scheduling. -**A: Definitely! Now, there are currently 8 subprojects inside SIG Scheduling. Would you like to +**A: Definitely! Now, there are 8 subprojects inside SIG Scheduling. Would you like to talk about them? Are there some interesting contributions by those teams you want to highlight?** -**KN**: Let me pick up three sub projects; Kueue, KWOK and descheduler. +**KN**: Let me pick up three subprojects: Kueue, KWOK and descheduler. -[Kueue](https://github.com/kubernetes-sigs/kueue): +[Kueue](https://github.com/kubernetes-sigs/kueue) : Recently, many people have been trying to manage batch workloads with Kubernetes, and in 2022, -Kubernetes community founded -[WG-Batch](https://github.com/kubernetes/community/blob/master/wg-batch/README.md) for better -support for such batch workloads in Kubernetes. [Kueue](https://github.com/kubernetes-sigs/kueue) -is a project that takes a crucial role for it. It’s a job queueing controller, deciding when a job -should wait, when a job should be admitted to start, and when a job should be preempted. Kueue aims -to be installed on a vanilla Kubernetes cluster while cooperating with existing matured controllers -(scheduler, cluster-autoscaler, kube-controller-manager, etc). - -[KWOK](https://github.com/kubernetes-sigs/kwok): + Kubernetes community founded + [WG-Batch](https://github.com/kubernetes/community/blob/master/wg-batch/README.md) for better + support for such batch workloads in Kubernetes. [Kueue](https://github.com/kubernetes-sigs/kueue) + is a project that takes a crucial role for it. It’s a job queueing controller, deciding when a job + should wait, when a job should be admitted to start, and when a job should be preempted. Kueue aims + to be installed on a vanilla Kubernetes cluster while cooperating with existing matured controllers + (scheduler, cluster-autoscaler, kube-controller-manager, etc). + +[KWOK](https://github.com/kubernetes-sigs/kwok) : KWOK is a component in which you can create a cluster of thousands of Nodes in seconds. It’s mostly useful for simulation/testing as a lightweight cluster, and actually another SIG sub project [kube-scheduler-simulator](https://github.com/kubernetes-sigs/kube-scheduler-simulator) uses KWOK background. -[descheduler](https://github.com/kubernetes-sigs/descheduler): -: Descheduler is a component recreating pods that are running on undesired Nodes. In Kubernetes, -scheduling constraints (`PodAffinity`, `NodeAffinity`, `PodTopologySpread`, etc) are honored only at -Pod schedule, but it’s not guaranteed that the contrtaints are kept being satisfied afterwards. -Descheduler evicts Pods violating their scheduling constraints (or other undesired conditions) so -that they’re recreated and rescheduled. +[descheduler](https://github.com/kubernetes-sigs/descheduler) +: Descheduler is a component recreating pods that are running on undesired Nodes. In Kubernetes, + scheduling constraints (`PodAffinity`, `NodeAffinity`, `PodTopologySpread`, etc) are honored only at + Pod schedule, but it’s not guaranteed that the contrtaints are kept being satisfied afterwards. + Descheduler evicts Pods violating their scheduling constraints (or other undesired conditions) so + that they’re recreated and rescheduled. -[Descheduling Framework](https://github.com/kubernetes-sigs/descheduler/blob/master/keps/753-descheduling-framework/README.md). -: One very interesting on-going project, similar to [Scheduling - Framework](https://kubernetes.io/docs/concepts/scheduling-eviction/scheduling-framework/) in the +[Descheduling Framework](https://github.com/kubernetes-sigs/descheduler/blob/master/keps/753-descheduling-framework/README.md) +: One very interesting on-going project, similar to + [Scheduling Framework](/docs/concepts/scheduling-eviction/scheduling-framework/) in the scheduler, aiming to make descheduling logic extensible and allow maintainers to focus on building a core engine of descheduler. @@ -125,27 +124,26 @@ improving our components over the years. **AP: Kubernetes is a community-driven project. Any recommendations for new contributors or beginners looking to get involved and contribute to SIG scheduling? Where should they start?** -**KN**: Let me start with a general recommendation for contributing to any SIG: a common approach is -to look for +**KN**: Let me start with a general recommendation for contributing to any SIG: a common approach is to look for [good-first-issue](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). However, you'll soon realize that many people worldwide are trying to contribute to the Kubernetes repository. I suggest starting by examining the implementation of a component that interests you. If you have any questions about it, ask in the corresponding Slack channel (e.g., #sig-scheduling for the -scheduler, #sig-node for kubelet, etc). Once you have a rough understanding of the implementation, +scheduler, #sig-node for kubelet, etc). Once you have a rough understanding of the implementation, look at issues within the SIG (e.g., [sig-scheduling](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue+label%3Asig%2Fscheduling)), -where you'll find more unassigned issues compared to good-first-issue ones. You may also want to +where you'll find more unassigned issues compared to good-first-issue ones. You may also want to filter issues with the [kind/cleanup](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue++label%3Akind%2Fcleanup+) label, which often indicates lower-priority tasks and can be starting points. -Specifically for SIG Scheduling, you should first understand the [Scheduling -Framework](https://kubernetes.io/docs/concepts/scheduling-eviction/scheduling-framework/), which is -the fundamental architecture of kube-scheduler. Most of the implementation is found in -[pkg/scheduler](https://github.com/kubernetes/kubernetes/tree/master/pkg/scheduler). I suggest -starting with +Specifically for SIG Scheduling, you should first understand the +[Scheduling Framework](/docs/concepts/scheduling-eviction/scheduling-framework/), which is +the fundamental architecture of kube-scheduler. Most of the implementation is found in +[pkg/scheduler](https://github.com/kubernetes/kubernetes/tree/master/pkg/scheduler). +I suggest starting with [ScheduleOne](https://github.com/kubernetes/kubernetes/blob/0590bb1ac495ae8af2a573f879408e48800da2c5/pkg/scheduler/schedule_one.go#L66) function and then exploring deeper from there. @@ -154,15 +152,14 @@ sub-projects. These typically have fewer maintainers and offer more opportunitie significant impact. Despite being called "sub" projects, many have a large number of users and a considerable impact on the community. -And last but not least, remember contributing to the community isn’t just about code. While I +And last but not least, remember contributing to the community isn’t just about code. While I talked a lot about the implementation contribution, there are many ways to contribute, and each one is valuable. One comment to an issue, one feedback to an existing feature, one review comment in PR, one clarification on the documentation; every small contribution helps drive the Kubernetes ecosystem forward. **AP: Those are some pretty useful tips! And if I may ask, how do you assist new contributors in -getting started, and what skills are contributors likely to learn by participating in SIG -Scheduling?** +getting started, and what skills are contributors likely to learn by participating in SIG Scheduling?** **KN**: Our maintainers are available to answer your questions in the #sig-scheduling Slack channel. By participating, you'll gain a deeper understanding of Kubernetes scheduling and have the @@ -178,9 +175,8 @@ pain points?** **KN**: Scheduling in Kubernetes can be quite challenging because of the diverse needs of different organizations with different business requirements. Supporting all possible use cases in kube-scheduler is impossible. Therefore, extensibility is a key focus for us. A few years ago, we -rearchitected kube-scheduler with [Scheduling -Framework](https://kubernetes.io/docs/concepts/scheduling-eviction/scheduling-framework/), which -offers flexible extensibility for users to implement various scheduling needs through plugins. This +rearchitected kube-scheduler with [Scheduling Framework](/docs/concepts/scheduling-eviction/scheduling-framework/), +which offers flexible extensibility for users to implement various scheduling needs through plugins. This allows maintainers to focus on the core scheduling features and the framework runtime. Another major issue is maintaining sufficient scheduling throughput. Typically, a Kubernetes cluster @@ -190,7 +186,7 @@ and, consequently, the cluster's scalability. Although we have an internal perfo unfortunately, we sometimes overlook performance degradation in less common scenarios. It’s difficult as even small changes, which look irrelevant to performance, can lead to degradation. -**AP: What are some upcoming goals or initiatives for SIG Scheduling? How do you envision the SIG evolving in the future?** +**AP: What are some upcoming goals or initiatives for SIG Scheduling? How do you envision the SIG evolving in the future?** **KN**: Our primary goal is always to build and maintain _extensible_ and _stable_ scheduling runtime, and I bet this goal will remain unchanged forever. @@ -198,7 +194,7 @@ runtime, and I bet this goal will remain unchanged forever. As already mentioned, extensibility is key to solving the challenge of the diverse needs of scheduling. Rather than trying to support every different use case directly in kube-scheduler, we will continue to focus on enhancing extensibility so that it can accommodate various use -cases. [kube-scheduler-wasm-extention](https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension) +cases. [kube-scheduler-wasm-extension](https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension) that I mentioned is also part of this initiative. Regarding stability, introducing new optimizations like QueueHint is one of our @@ -217,7 +213,7 @@ about SIG Scheduling?** **KN**: Scheduling is one of the most complicated areas in Kubernetes, and you may find it difficult at first. But, as I shared earlier, you can find many opportunities for contributions, and many maintainers are willing to help you understand things. We know your unique perspective and skills -are what makes our open source so powerful :) +are what makes our open source so powerful 😊 Feel free to reach out to us in Slack ([#sig-scheduling](https://kubernetes.slack.com/archives/C09TP78DV)) or diff --git a/content/en/blog/_posts/2024-10-02-steering-committee-results-2024.md b/content/en/blog/_posts/2024-10-02-steering-committee-results-2024.md new file mode 100644 index 0000000000000..50348477b24fc --- /dev/null +++ b/content/en/blog/_posts/2024-10-02-steering-committee-results-2024.md @@ -0,0 +1,62 @@ +--- +layout: blog +title: "Announcing the 2024 Steering Committee Election Results" +slug: steering-committee-results-2024 +canonicalUrl: https://www.kubernetes.dev/blog/2024/10/02/steering-committee-results-2024 +date: 2024-10-02T15:10:00-05:00 +author: > + Bridget Kromhout +--- + + +The [2024 Steering Committee Election](https://github.com/kubernetes/community/tree/master/elections/steering/2024) is now complete. The Kubernetes Steering Committee consists of 7 seats, 3 of which were up for election in 2024. Incoming committee members serve a term of 2 years, and all members are elected by the Kubernetes Community. + +This community body is significant since it oversees the governance of the entire Kubernetes project. With that great power comes great responsibility. You can learn more about the steering committee’s role in their [charter](https://github.com/kubernetes/steering/blob/master/charter.md). + +Thank you to everyone who voted in the election; your participation helps support the community’s continued health and success. + +## Results + +Congratulations to the elected committee members whose two year terms begin immediately (listed in alphabetical order by GitHub handle): + +* **Antonio Ojea ([@aojea](https://github.com/aojea)), Google** +* **Benjamin Elder ([@BenTheElder](https://github.com/bentheelder)), Google** +* **Sascha Grunert ([@saschagrunert](https://github.com/saschagrunert)), Red Hat** + +They join continuing members: + +* **Stephen Augustus ([@justaugustus](https://github.com/justaugustus)), Cisco** +* **Paco Xu 徐俊杰 ([@pacoxu](https://github.com/pacoxu)), DaoCloud** +* **Patrick Ohly ([@pohly](https://github.com/pohly)), Intel** +* **Maciej Szulik ([@soltysh](https://github.com/soltysh)), Defense Unicorns** + +Benjamin Elder is a returning Steering Committee Member. + +## Big thanks! + +Thank you and congratulations on a successful election to this round’s election officers: + +* Bridget Kromhout ([@bridgetkromhout](https://github.com/bridgetkromhout)) +* Christoph Blecker ([@cblecker](https://github.com/cblecker)) +* Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929)) + + +Thanks to the Emeritus Steering Committee Members. Your service is appreciated by the community: + +* Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables)) +* Nabarun Pal ([@palnabarun](https://github.com/palnabarun)) + + +And thank you to all the candidates who came forward to run for election. + +## Get involved with the Steering Committee + +This governing body, like all of Kubernetes, is open to all. You can follow along with Steering Committee [meeting notes](https://bit.ly/k8s-steering-wd) and weigh in by filing an issue or creating a PR against their [repo](https://github.com/kubernetes/steering). They have an open meeting on [the first Monday at 8am PT of every month](https://github.com/kubernetes/steering). They can also be contacted at their public mailing list steering@kubernetes.io. + +You can see what the Steering Committee meetings are all about by watching past meetings on the [YouTube Playlist](https://www.youtube.com/playlist?list=PL69nYSiGNLP1yP1B_nd9-drjoxp0Q14qM). + +If you want to meet some of the newly elected Steering Committee members, join us for the [Steering AMA](https://www.kubernetes.dev/events/2024/kcsna/schedule/#steering-ama) at the Kubernetes Contributor Summit North America 2024 in Salt Lake City. + +--- + +_This post was adapted from one written by the [Contributor Comms Subproject](https://github.com/kubernetes/community/tree/master/communication/contributor-comms). If you want to write stories about the Kubernetes community, learn more about us._ diff --git a/content/en/docs/concepts/storage/storage-classes.md b/content/en/docs/concepts/storage/storage-classes.md index 0ffe926e99cf0..ec02819f7d210 100644 --- a/content/en/docs/concepts/storage/storage-classes.md +++ b/content/en/docs/concepts/storage/storage-classes.md @@ -5,6 +5,9 @@ reviewers: - thockin - msau42 title: Storage Classes +api_metadata: +- apiVersion: "storage.k8s.io/v1" + kind: "StorageClass" content_type: concept weight: 40 --- diff --git a/content/en/docs/reference/access-authn-authz/kubelet-authn-authz.md b/content/en/docs/reference/access-authn-authz/kubelet-authn-authz.md index 0db75a381e219..87c6dde16c7e8 100644 --- a/content/en/docs/reference/access-authn-authz/kubelet-authn-authz.md +++ b/content/en/docs/reference/access-authn-authz/kubelet-authn-authz.md @@ -65,13 +65,14 @@ DELETE | delete The resource and subresource is determined from the incoming request's path: -Kubelet API | resource | subresource --------------|----------|------------ -/stats/\* | nodes | stats -/metrics/\* | nodes | metrics -/logs/\* | nodes | log -/spec/\* | nodes | spec -*all others* | nodes | proxy +Kubelet API | resource | subresource +--------------------|----------|------------ +/stats/\* | nodes | stats +/metrics/\* | nodes | metrics +/logs/\* | nodes | log +/spec/\* | nodes | spec +/checkpoint/\* | nodes | checkpoint +*all others* | nodes | proxy The namespace and API group attributes are always an empty string, and the resource name is always the name of the kubelet's `Node` API object. diff --git a/content/en/docs/reference/glossary/duration.md b/content/en/docs/reference/glossary/duration.md new file mode 100644 index 0000000000000..5dda3f70647b4 --- /dev/null +++ b/content/en/docs/reference/glossary/duration.md @@ -0,0 +1,14 @@ +--- +title: Duration +id: duration +date: 2024-10-05 +full_link: +short_description: > + A time interval specified as a string in the format accepted by Go's [time.Duration](https://pkg.go.dev/time), allowing for flexible time specifications using various units like seconds, minutes, and hours. +aka: +tags: +- fundamental +--- +In Kubernetes APIs, a duration must be non-negative and is typically expressed with a suffix. +For example, `5s` for five seconds or `1m30s` for one minute and thirty seconds. + diff --git a/content/en/docs/reference/labels-annotations-taints/_index.md b/content/en/docs/reference/labels-annotations-taints/_index.md index 21fc651042196..59d05cfc1330b 100644 --- a/content/en/docs/reference/labels-annotations-taints/_index.md +++ b/content/en/docs/reference/labels-annotations-taints/_index.md @@ -289,6 +289,19 @@ in the StatefulSet topic for more details. Note the [PodIndexLabel](/docs/reference/command-line-tools-reference/feature-gates/) feature gate must be enabled for this label to be added to pods. +### resource.kubernetes.io/pod-claim-name + +Type: Annotation + +Example: `resource.kubernetes.io/pod-claim-name: "my-pod-claim"` + +Used on: ResourceClaim + +This annotation is assigned to generated ResourceClaims. +Its value corresponds to the name of the resource claim in the `.spec` of any Pod(s) for which the ResourceClaim was created. +This annotation is an internal implementation detail of [dynamic resource allocation](/docs/concepts/scheduling-eviction/dynamic-resource-allocation/). +You should not need to read or modify the value of this annotation. + ### cluster-autoscaler.kubernetes.io/safe-to-evict Type: Annotation diff --git a/content/en/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm.md b/content/en/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm.md index 0f4eff58286d3..b828bf85ee8a8 100644 --- a/content/en/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm.md +++ b/content/en/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm.md @@ -8,13 +8,6 @@ weight: 70 -{{< note >}} -While kubeadm is being used as the management tool for external etcd nodes -in this guide, please note that kubeadm does not plan to support certificate rotation -or upgrades for such nodes. The long-term plan is to empower the tool -[etcdadm](https://github.com/kubernetes-sigs/etcdadm) to manage these -aspects. -{{< /note >}} By default, kubeadm runs a local etcd instance on each control plane node. It is also possible to treat the etcd cluster as external and provision diff --git a/content/en/docs/tasks/network/customize-hosts-file-for-pods.md b/content/en/docs/tasks/network/customize-hosts-file-for-pods.md index 507397d7eaf6c..9b85206254be5 100644 --- a/content/en/docs/tasks/network/customize-hosts-file-for-pods.md +++ b/content/en/docs/tasks/network/customize-hosts-file-for-pods.md @@ -17,7 +17,6 @@ The Kubernetes project recommends modifying DNS configuration using the `hostAli (part of the `.spec` for a Pod), and not by using an init container or other means to edit `/etc/hosts` directly. Change made in other ways may be overwritten by the kubelet during Pod creation or restart. -made in other ways may be overwritten by the kubelet during Pod creation or restart. diff --git a/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md b/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md index f25317fef9a0d..7fa5ee56c2054 100644 --- a/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md +++ b/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md @@ -563,7 +563,7 @@ the Deployment and / or StatefulSet be removed from their a change to that object is applied, for example via `kubectl apply -f deployment.yaml`, this will instruct Kubernetes to scale the current number of Pods to the value of the `spec.replicas` key. This may not be -desired and could be troublesome when an HPA is active. +desired and could be troublesome when an HPA is active, resulting in thrashing or flapping behavior. Keep in mind that the removal of `spec.replicas` may incur a one-time degradation of Pod counts as the default value of this key is 1 (reference diff --git a/content/es/docs/concepts/cluster-administration/addons.md b/content/es/docs/concepts/cluster-administration/addons.md index 4d0488caa887c..f893179da952d 100644 --- a/content/es/docs/concepts/cluster-administration/addons.md +++ b/content/es/docs/concepts/cluster-administration/addons.md @@ -88,10 +88,6 @@ En esta página se listan algunos de los complementos disponibles con sus respec * [Dashboard](https://github.com/kubernetes/dashboard#kubernetes-dashboard) es un panel de control con una interfaz web para Kubernetes. -* [Weave Scope](https://www.weave.works/documentation/scope-latest-installing/#k8s) - es una herramienta para visualizar gráficamente tus contenedores, Pods, Services, etc. - Utilícela junto con una [cuenta de Weave Cloud](https://cloud.weave.works/) - o aloje la interfaz de usuario usted mismo. ## Infraestructura diff --git a/content/es/docs/tutorials/_index.md b/content/es/docs/tutorials/_index.md index 86fde686f22b6..f0ba886cf2a64 100644 --- a/content/es/docs/tutorials/_index.md +++ b/content/es/docs/tutorials/_index.md @@ -1,6 +1,7 @@ --- title: Tutoriales main_menu: true +no_list: true weight: 60 content_type: concept --- @@ -31,6 +32,10 @@ Antes de recorrer cada tutorial, recomendamos añadir un marcador a * [Ejemplo: Configurando un Microservicio en Java](/docs/tutorials/configuration/configure-java-microservice/) * [Configuring Redis Using a ConfigMap](/docs/tutorials/configuration/configure-redis-using-configmap/) +## Creación de Pods + +* [Adoptando Contenedores Sidecar](/docs/tutorials/configuration/pod-sidecar-containers/) + ## Aplicaciones Stateless * [Exposing an External IP Address to Access an Application in a Cluster](/docs/tutorials/stateless-application/expose-external-ip-address/) @@ -38,19 +43,22 @@ Antes de recorrer cada tutorial, recomendamos añadir un marcador a ## Aplicaciones Stateful -* [StatefulSet Basics](/docs/tutorials/stateful-application/basic-stateful-set/) -* [Example: WordPress and MySQL with Persistent Volumes](/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/) -* [Example: Deploying Cassandra with Stateful Sets](/docs/tutorials/stateful-application/cassandra/) -* [Running ZooKeeper, A CP Distributed System](/docs/tutorials/stateful-application/zookeeper/) +* [Conceptos Básicos de StatefulSet](/docs/tutorials/stateful-application/basic-stateful-set/) +* [Ejemplo: WordPress y MySQL con Volúmenes Persistentes](/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/) +* [Ejemplo: Implementación de Cassandra con StatefulSets](/docs/tutorials/stateful-application/cassandra/) +* [Ejecución de ZooKeeper, un Sistema Distribuido CP](/docs/tutorials/stateful-application/zookeeper/) -## Clústers +## Servicios -* [AppArmor](/docs/tutorials/clusters/apparmor/) -* [Seccomp](/docs/tutorials/clusters/seccomp/) +* [Conectando Aplicaciones con Servicios](/docs/tutorials/services/connect-applications-service/) +* [Uso de la IP de Origen](/docs/tutorials/services/source-ip/) -## Servicios +## Seguridad -* [Using Source IP](/docs/tutorials/services/source-ip/) +* [Aplicar Estándares de Seguridad de Pods a Nivel de Clúster](/docs/tutorials/security/cluster-level-pss/) +* [Aplicar Estándares de Seguridad de Pods a Nivel de Namespace](/docs/tutorials/security/ns-level-pss/) +* [Restringir el Acceso de un Contenedor a Recursos con AppArmor](/docs/tutorials/security/apparmor/) +* [Seccomp](/docs/tutorials/security/seccomp/) ## {{% heading "whatsnext" %}} diff --git a/content/ja/docs/concepts/cluster-administration/addons.md b/content/ja/docs/concepts/cluster-administration/addons.md index a2b0c95f37578..3715011e96bbc 100644 --- a/content/ja/docs/concepts/cluster-administration/addons.md +++ b/content/ja/docs/concepts/cluster-administration/addons.md @@ -41,7 +41,6 @@ weight: 120 ## 可視化と制御 {#visualization-amp-control} * [Dashboard](https://github.com/kubernetes/dashboard#kubernetes-dashboard)はKubernetes向けのダッシュボードを提供するウェブインターフェースです。 -* [Weave Scope](https://www.weave.works/documentation/scope-latest-installing/#k8s)は、コンテナ、Pod、Serviceなどをグラフィカルに可視化するツールです。[Weave Cloud account](https://cloud.weave.works/)と組み合わせて使うか、UIを自分でホストして使います。 ## インフラストラクチャ {#infrastructure} diff --git a/content/ja/docs/concepts/configuration/manage-resources-containers.md b/content/ja/docs/concepts/configuration/manage-resources-containers.md index 623b9e304186e..cb66cdb8cb957 100644 --- a/content/ja/docs/concepts/configuration/manage-resources-containers.md +++ b/content/ja/docs/concepts/configuration/manage-resources-containers.md @@ -73,7 +73,7 @@ Podの各コンテナは、次の1つ以上を指定できます。 ### CPUの意味 {#meaning-of-cpu} CPUリソースの制限と要求は、*cpu*単位で測定されます。 -Kuberenetesにおける1つのCPUは、クラウドプロバイダーの**1 vCPU/コア**およびベアメタルのインテルプロセッサーの**1 ハイパースレッド**に相当します。 +Kubernetesにおける1つのCPUは、クラウドプロバイダーの**1 vCPU/コア**およびベアメタルのインテルプロセッサーの**1 ハイパースレッド**に相当します。 要求を少数で指定することもできます。 `spec.containers[].resources.requests.cpu`が`0.5`のコンテナは、1CPUを要求するコンテナの半分のCPUが保証されます。 diff --git a/content/ja/docs/concepts/overview/working-with-objects/field-selectors.md b/content/ja/docs/concepts/overview/working-with-objects/field-selectors.md index b3f87105d9680..e1cffc45f5606 100644 --- a/content/ja/docs/concepts/overview/working-with-objects/field-selectors.md +++ b/content/ja/docs/concepts/overview/working-with-objects/field-selectors.md @@ -44,7 +44,7 @@ kubectl get services --all-namespaces --field-selector metadata.namespace!=defa ## 連結されたセレクター [ラベル](/docs/concepts/overview/working-with-objects/labels)や他のセレクターと同様に、フィールドセレクターはコンマ区切りのリストとして連結することができます。 -下記の`kubectl`コマンドは、`status.phase`が`Runnning`でなく、かつ`spec.restartPolicy`フィールドが`Always`に等しいような全てのPodを選択します。 +下記の`kubectl`コマンドは、`status.phase`が`Running`でなく、かつ`spec.restartPolicy`フィールドが`Always`に等しいような全てのPodを選択します。 ```shell kubectl get pods --field-selector=status.phase!=Running,spec.restartPolicy=Always diff --git a/content/ja/docs/concepts/policy/resource-quotas.md b/content/ja/docs/concepts/policy/resource-quotas.md index 89e8b3f7b884b..0cdae70bd13be 100644 --- a/content/ja/docs/concepts/policy/resource-quotas.md +++ b/content/ja/docs/concepts/policy/resource-quotas.md @@ -136,7 +136,7 @@ Kubernetes v1.8において、ローカルのエフェメラルストレージ | `configmaps` | 名前空間内で存在可能なConfigMapの総数。 | | `persistentvolumeclaims` | 名前空間内で存在可能な[PersistentVolumeClaim](/ja/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims)の総数。 | | `pods` | 名前空間内で存在可能な停止していないPodの総数。`.status.phase in (Failed, Succeeded)`がtrueのとき、Podは停止状態にあります。 | -| `replicationcontrollers` | 名前空間内で存在可能なReplicationControlerの総数。 | +| `replicationcontrollers` | 名前空間内で存在可能なReplicationControllerの総数。 | | `resourcequotas` | 名前空間内で存在可能なResourceQuotaの総数。 | | `services` | 名前空間内で存在可能なServiceの総数。 | | `services.loadbalancers` | 名前空間内で存在可能なtype:LoadBalancerであるServiceの総数。 | diff --git a/content/ja/docs/reference/using-api/deprecation-policy.md b/content/ja/docs/reference/using-api/deprecation-policy.md index b1df9121eb9f2..b2cef343f6c3b 100644 --- a/content/ja/docs/reference/using-api/deprecation-policy.md +++ b/content/ja/docs/reference/using-api/deprecation-policy.md @@ -45,7 +45,7 @@ APIの要素が特定バージョンのAPIグループに追加されると、 大幅に挙動が変更されることはありません。 {{< note >}} -歴史的な理由により、「core」(グループ名なし)と「extentions」という2つの「monolithic」APIグループがあります。 +歴史的な理由により、「core」(グループ名なし)と「extensions」という2つの「monolithic」APIグループがあります。 リソースはこれらのレガシーなAPIグループからより特定のドメインに特化したAPIグループに段階的に移行されます。 {{< /note >}} diff --git a/content/ja/docs/setup/production-environment/_index.md b/content/ja/docs/setup/production-environment/_index.md index 84d84ccd18e21..23b29650f24bb 100644 --- a/content/ja/docs/setup/production-environment/_index.md +++ b/content/ja/docs/setup/production-environment/_index.md @@ -84,7 +84,7 @@ no_list: true プロダクション用のKubernetesクラスターの認証認可をセットアップするにあたって、いくつかの考慮事項があります。 -- *認証モードの設定*: Kubermetes APIサーバー ([kube-apiserver](/docs/reference/command-line-tools-reference/kube-apiserver/))の起動時に、*--authorization-mode*フラグを使用しサポートされた認証モードを設定しなければいけません。例えば、*/etc/kubernetes/manifests*配下の*kube-adminserver.yaml*ファイルで*--authorization-mode*フラグにNodeやRBACを設定することで、認証されたリクエストに対してノードやRBACの認証を許可することができます。 +- *認証モードの設定*: Kubernetes APIサーバー ([kube-apiserver](/docs/reference/command-line-tools-reference/kube-apiserver/))の起動時に、*--authorization-mode*フラグを使用しサポートされた認証モードを設定しなければいけません。例えば、*/etc/kubernetes/manifests*配下の*kube-adminserver.yaml*ファイルで*--authorization-mode*フラグにNodeやRBACを設定することで、認証されたリクエストに対してノードやRBACの認証を許可することができます。 - *ユーザー証明書とロールバインディングの作成(RMAC)*: RBAC認証を使用している場合、ユーザーはクラスター証明機関により署名された証明書署名要求(CSR)を作成でき、各ユーザーにRolesとClusterRolesをバインドすることができます。詳細は[証明書署名要求](/docs/reference/access-authn-authz/certificate-signing-requests/)をご覧ください。 - *属性を組み合わせたポリシーの作成(ABAC)*: ABAC認証を使用している場合、特定のリソース(例えばPod)、Namespace、またはAPIグループにアクセスするために、選択されたユーザーやグループに属性の組み合わせで形成されたポリシーを割り当てることができます。より多くの情報は[Examples](/docs/reference/access-authn-authz/abac/#examples)をご覧ください。 - *アドミッションコントローラーの考慮事項*: APIサーバーを経由してくるリクエストのための追加の認証形式に[Webhookトークン認証](/ja/docs/reference/access-authn-authz/authentication/#webhook-token-authentication)があります。Webhookや他の特別な認証形式はAPIサーバーへアドミッションコントローラーを追加し有効化される必要があります。 diff --git a/content/ja/docs/tutorials/stateful-application/basic-stateful-set.md b/content/ja/docs/tutorials/stateful-application/basic-stateful-set.md index 2697c0e0fecdc..0d498709e2feb 100644 --- a/content/ja/docs/tutorials/stateful-application/basic-stateful-set.md +++ b/content/ja/docs/tutorials/stateful-application/basic-stateful-set.md @@ -229,7 +229,7 @@ Address 1: 10.244.2.8 Podの順序インデックス、ホスト名、SRVレコード、そしてAレコード名は変化していませんが、Podに紐付けられたIPアドレスは変化する可能性があります。このチュートリアルで使用しているクラスターでは、IPアドレスは変わりました。このようなことがあるため、他のアプリケーションがStatefulSet内のPodに接続するときには、IPアドレスで指定しないことが重要です。 -StatefulSetの有効なメンバーを探して接続する必要がある場合は、headless ServiceのCNAME(`nginx.default.svc.cluster.local`)をクエリしなければなりません。CNAMEに紐付けられたSRVレコードには、StatefulSet内のRunnningかつReadyなPodだけが含まれます。 +StatefulSetの有効なメンバーを探して接続する必要がある場合は、headless ServiceのCNAME(`nginx.default.svc.cluster.local`)をクエリしなければなりません。CNAMEに紐付けられたSRVレコードには、StatefulSet内のRunningかつReadyなPodだけが含まれます。 アプリケーションがlivenessとreadinessをテストするコネクションのロジックをすでに実装している場合、PodのSRVレコード(`web-0.nginx.default.svc.cluster.local`、`web-1.nginx.default.svc.cluster.local`)をPodが安定しているものとして使用できます。PodがRunning and Readyな状態に移行すれば、アプリケーションはPodのアドレスを発見できるようになります。 diff --git a/content/zh-cn/blog/_posts/2024-09-17-sig-scheduling-spotlight.md b/content/zh-cn/blog/_posts/2024-09-17-sig-scheduling-spotlight.md index ca23e1599d250..d0d555d61fef8 100644 --- a/content/zh-cn/blog/_posts/2024-09-17-sig-scheduling-spotlight.md +++ b/content/zh-cn/blog/_posts/2024-09-17-sig-scheduling-spotlight.md @@ -38,14 +38,14 @@ Kubernetes?** **Kensei**: Hi, thanks for the opportunity! I’m Kensei Nakada ([@sanposhiho](https://github.com/sanposhiho/)), a software engineer at [Tetrate.io](https://tetrate.io/). I have been contributing to Kubernetes in my free time for more -than 3 years, and now I’m an approver of SIG-Scheduling in Kubernetes. Also, I’m a founder/owner of +than 3 years, and now I’m an approver of SIG Scheduling in Kubernetes. Also, I’m a founder/owner of two SIG subprojects, [kube-scheduler-simulator](https://github.com/kubernetes-sigs/kube-scheduler-simulator) and [kube-scheduler-wasm-extension](https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension). --> **Kensei**: 嗨,感谢你给我这个机会!我是 Kensei Nakada ([@sanposhiho](https://github.com/sanposhiho/)),是来自 [Tetrate.io](https://tetrate.io/) 的一名软件工程师。 -我在业余时间为 Kubernetes 贡献了超过 3 年的时间,现在我是 Kubernetes 中 SIG-Scheduling 的一名 Approver。 +我在业余时间为 Kubernetes 贡献了超过 3 年的时间,现在我是 Kubernetes 中 SIG Scheduling 的一名 Approver。 同时,我还是两个 SIG 子项目的创始人/负责人: [kube-scheduler-simulator](https://github.com/kubernetes-sigs/kube-scheduler-simulator) 和 [kube-scheduler-wasm-extension](https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension)。 @@ -59,7 +59,7 @@ brief overview of SIG Scheduling and explain its role within the Kubernetes ecos **KN**: As the name implies, our responsibility is to enhance scheduling within Kubernetes. Specifically, we develop the components that determine which Node is the best place for each Pod. In Kubernetes, our main focus is on maintaining the -[kube-scheduler](https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/), along +[kube-scheduler](/docs/concepts/scheduling-eviction/kube-scheduler/), along with other scheduling-related components as part of our SIG subprojects. --> ## 关于 SIG Scheduling @@ -69,15 +69,15 @@ with other scheduling-related components as part of our SIG subprojects. **KN**: 正如名字所示,我们的责任是增强 Kubernetes 中的调度特性。 具体来说,我们开发了一些组件,将每个 Pod 调度到最合适的 Node。 在 Kubernetes 中,我们的主要关注点是维护 -[kube-scheduler](https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/), +[kube-scheduler](/zh-cn/docs/concepts/scheduling-eviction/kube-scheduler/), 以及其他调度相关的组件,这些组件是 SIG Scheduling 的子项目。 @@ -104,7 +104,7 @@ reducing the likelihood of wasting scheduling cycles. **A: That sounds interesting! Are there any other interesting topics or projects you are currently working on within SIG Scheduling?** -**KN**: I’m leading the development of `QueueingHint` which I just shared. Given that it’s a big new +**KN**: I’m leading the development of `QueueingHint` which I just shared. Given that it’s a big new challenge for us, we’ve been facing many unexpected challenges, especially around the scalability, and we’re trying to solve each of them to eventually enable it by default. --> @@ -115,15 +115,14 @@ and we’re trying to solve each of them to eventually enable it by default. -通过这个项目,sig-scheduling 正在积累 WebAssembly 与大型 Kubernetes 对象交互的宝贵洞察。 -我相信我们所获得的经验应该对整个社区都很有用,而不仅限于 sig-scheduling 的范围。 +通过这个项目,SIG Scheduling 正在积累 WebAssembly 与大型 Kubernetes 对象交互的宝贵洞察。 +我相信我们所获得的经验应该对整个社区都很有用,而不仅限于 SIG Scheduling 的范围。 **A: 当然!目前 SIG Scheduling 有 8 个子项目。你想谈谈它们吗?有没有一些你想强调的有趣贡献?** **KN**: 让我挑选三个子项目:Kueue、KWOK 和 Descheduler。 [Kueue](https://github.com/kubernetes-sigs/kueue): : 最近,许多人尝试使用 Kubernetes 管理批处理工作负载,2022 年,Kubernetes 社区成立了 @@ -175,18 +174,18 @@ to be installed on a vanilla Kubernetes cluster while cooperating with existing 同时与现有的成熟控制器(调度器、cluster-autoscaler、kube-controller-manager 等)协作。 [KWOK](https://github.com/kubernetes-sigs/kwok) : KWOK 这个组件可以在几秒钟内创建一个包含数千个节点的集群。它主要用于模拟/测试轻量级集群,实际上另一个 SIG 子项目 @@ -199,9 +198,9 @@ that they’re recreated and rescheduled. 以便这些 Pod 被重新创建和重新调度。 @@ -236,8 +235,7 @@ improving our components over the years. **AP: Kubernetes is a community-driven project. Any recommendations for new contributors or beginners looking to get involved and contribute to SIG scheduling? Where should they start?** -**KN**: Let me start with a general recommendation for contributing to any SIG: a common approach is -to look for +**KN**: Let me start with a general recommendation for contributing to any SIG: a common approach is to look for [good-first-issue](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). However, you'll soon realize that many people worldwide are trying to contribute to the Kubernetes repository. @@ -254,10 +252,10 @@ SIG Scheduling 做出贡献的初学者有什么建议?他们应该从哪里 最后但同样重要的是,记住为社区做贡献不仅仅是编写代码。 虽然我谈到了很多关于实现的贡献,但还有许多其他方式可以做贡献,每一种都很有价值。 @@ -336,9 +333,8 @@ pain points?** **KN**: Scheduling in Kubernetes can be quite challenging because of the diverse needs of different organizations with different business requirements. Supporting all possible use cases in kube-scheduler is impossible. Therefore, extensibility is a key focus for us. A few years ago, we -rearchitected kube-scheduler with [Scheduling -Framework](https://kubernetes.io/docs/concepts/scheduling-eviction/scheduling-framework/), which -offers flexible extensibility for users to implement various scheduling needs through plugins. This +rearchitected kube-scheduler with [Scheduling Framework](/docs/concepts/scheduling-eviction/scheduling-framework/), +which offers flexible extensibility for users to implement various scheduling needs through plugins. This allows maintainers to focus on the core scheduling features and the framework runtime. --> **KN**: 在 Kubernetes 中进行调度可能相当具有挑战性,因为不同组织有不同的业务要求。 @@ -361,7 +357,7 @@ difficult as even small changes, which look irrelevant to performance, can lead 但不巧的是,我们有时会忽视在不常见场景下的性能下降。即使是与性能无关的小改动也有难度,可能导致性能下降。 **AP: 接下来 SIG Scheduling 有哪些即将实现的目标或计划?你如何看待 SIG 的未来发展?** @@ -405,7 +401,7 @@ about SIG Scheduling?** **KN**: Scheduling is one of the most complicated areas in Kubernetes, and you may find it difficult at first. But, as I shared earlier, you can find many opportunities for contributions, and many maintainers are willing to help you understand things. We know your unique perspective and skills -are what makes our open source so powerful :) +are what makes our open source so powerful 😊 --> ## 结束语 @@ -413,7 +409,7 @@ are what makes our open source so powerful :) **KN**: 调度是 Kubernetes 中最复杂的领域之一,你可能一开始会觉得很困难。但正如我之前分享的, 你可以找到许多贡献的机会,许多维护者愿意帮助你理解各事项。 -我们知道你独特的视角和技能是我们的开源项目能够如此强大的源泉 :) +我们知道你独特的视角和技能是我们的开源项目能够如此强大的源泉 😊 + + +[2024 年指导委员会选举](https://github.com/kubernetes/community/tree/master/elections/steering/2024)现已完成。 +Kubernetes 指导委员会由 7 个席位组成,其中 3 个席位于 2024 年进行选举。 +新任委员会成员的任期为 2 年,所有成员均由 Kubernetes 社区选举产生。 + +这个社区机构非常重要,因为它负责监督整个 Kubernetes 项目的治理。 +权力越大责任越大,你可以在其 +[章程](https://github.com/kubernetes/steering/blob/master/charter.md)中了解有关指导委员会角色的更多信息。 + +感谢所有在选举中投票的人;你们的参与有助于支持社区的持续健康和成功。 + + +## 结果 + +祝贺当选的委员会成员,其两年任期立即开始(按 GitHub 句柄按字母顺序列出): + +* **Antonio Ojea ([@aojea](https://github.com/aojea)), Google** +* **Benjamin Elder ([@BenTheElder](https://github.com/bentheelder)), Google** +* **Sascha Grunert ([@saschagrunert](https://github.com/saschagrunert)), Red Hat** + + +他们将与以下连任成员一起工作: + +* **Stephen Augustus ([@justaugustus](https://github.com/justaugustus)), Cisco** +* **Paco Xu 徐俊杰 ([@pacoxu](https://github.com/pacoxu)), DaoCloud** +* **Patrick Ohly ([@pohly](https://github.com/pohly)), Intel** +* **Maciej Szulik ([@soltysh](https://github.com/soltysh)), Defense Unicorns** + + +Benjamin Elder 是一位回归的指导委员会成员。 + + +## 十分感谢! + +感谢并祝贺本轮选举官员成功完成选举工作: + +* Bridget Kromhout ([@bridgetkromhout](https://github.com/bridgetkromhout)) +* Christoph Blecker ([@cblecker](https://github.com/cblecker)) +* Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929)) + + +感谢名誉指导委员会成员,你们的服务受到社区的赞赏: + +* Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables)) +* Nabarun Pal ([@palnabarun](https://github.com/palnabarun)) + + +感谢所有前来竞选的候选人。 + + +## 参与指导委员会 + +这个管理机构与所有 Kubernetes 一样,向所有人开放。 +你可以关注指导委员会[会议记录](https://github.com/orgs/kubernetes/projects/40), +并通过提交 Issue 或针对其 [repo](https://github.com/kubernetes/steering) 创建 PR 来参与。 +他们在[太平洋时间每月第一个周一上午 8:00](https://github.com/kubernetes/steering) 举行开放的会议。 +你还可以通过其公共邮件列表 steering@kubernetes.io 与他们联系。 + + +你可以通过在 [YouTube 播放列表](https://www.youtube.com/playlist?list=PL69nYSiGNLP1yP1B_nd9-drjoxp0Q14qM)上观看过去的会议来了解指导委员会会议的全部内容。 + +如果你想认识一些新当选的指导委员会成员, +欢迎参加在盐湖城举行的 2024 年北美 Kubernetes 贡献者峰会上的 +[Steering AMA](https://www.kubernetes.dev/events/2024/kcsna/schedule/#steering-ama)。 + +--- + + +**这篇文章是由[贡献者通信子项目](https://github.com/kubernetes/community/tree/master/communication/contributor-comms)撰写的。 +如果你想撰写有关 Kubernetes 社区的故事,请了解有关我们的更多信息。** diff --git a/content/zh-cn/docs/concepts/architecture/garbage-collection.md b/content/zh-cn/docs/concepts/architecture/garbage-collection.md index 46ec376c030ca..70aae0747d697 100644 --- a/content/zh-cn/docs/concepts/architecture/garbage-collection.md +++ b/content/zh-cn/docs/concepts/architecture/garbage-collection.md @@ -165,21 +165,27 @@ owner object: * 在删除过程完成之前,通过 Kubernetes API 仍然可以看到该对象。 -当属主对象进入删除过程中状态后,控制器删除其依赖对象。控制器在删除完所有依赖对象之后, -删除属主对象。这时,通过 Kubernetes API 就无法再看到该对象。 - -在前台级联删除过程中,唯一可能阻止属主对象被删除的是那些带有 -`ownerReference.blockOwnerDeletion=true` 字段的依赖对象。 +当属主对象进入**删除进行中**状态后,控制器会删除其已知的依赖对象。 +在删除所有已知的依赖对象后,控制器会删除属主对象。 +这时,通过 Kubernetes API 就无法再看到该对象。 + +在前台级联删除过程中,唯一会阻止属主对象被删除的是那些带有 +`ownerReference.blockOwnerDeletion=true` 字段并且存在于垃圾收集控制器缓存中的依赖对象。 +垃圾收集控制器缓存中可能不包含那些无法成功被列举/监视的资源类型的对象, +或在属主对象删除的同时创建的对象。 参阅[使用前台级联删除](/zh-cn/docs/tasks/administer-cluster/use-cascading-deletion/#use-foreground-cascading-deletion) 以了解进一步的细节。 diff --git a/content/zh-cn/docs/concepts/scheduling-eviction/_index.md b/content/zh-cn/docs/concepts/scheduling-eviction/_index.md index 89f7dcad0542b..a187dcd7cd9e6 100644 --- a/content/zh-cn/docs/concepts/scheduling-eviction/_index.md +++ b/content/zh-cn/docs/concepts/scheduling-eviction/_index.md @@ -1,10 +1,9 @@ --- -title: 调度、抢占和驱逐 +title: "调度、抢占和驱逐" weight: 95 content_type: concept no_list: true --- - -## 调度 +## 调度 {#scheduling} * [Kubernetes 调度器](/zh-cn/docs/concepts/scheduling-eviction/kube-scheduler/) * [将 Pod 指派到节点](/zh-cn/docs/concepts/scheduling-eviction/assign-pod-node/) @@ -50,7 +49,6 @@ Pod 以便高优先级的 Pod 可以调度运行的过程。 * [Pod 拓扑分布约束](/zh-cn/docs/concepts/scheduling-eviction/topology-spread-constraints/) * [污点和容忍度](/zh-cn/docs/concepts/scheduling-eviction/taint-and-toleration/) * [动态资源分配](/zh-cn/docs/concepts/scheduling-eviction/dynamic-resource-allocation) -* [调度框架](/zh-cn/docs/concepts/scheduling-eviction/scheduling-framework) * [调度器性能调试](/zh-cn/docs/concepts/scheduling-eviction/scheduler-perf-tuning/) * [扩展资源的资源装箱](/zh-cn/docs/concepts/scheduling-eviction/resource-bin-packing/) * [Pod 调度就绪](/zh-cn/docs/concepts/scheduling-eviction/pod-scheduling-readiness/) @@ -63,7 +61,7 @@ Pod 以便高优先级的 Pod 可以调度运行的过程。 * [Node-pressure Eviction](/docs/concepts/scheduling-eviction/node-pressure-eviction/) * [API-initiated Eviction](/docs/concepts/scheduling-eviction/api-eviction/) --> -## Pod 干扰 +## Pod 干扰 {#pod-disruption} {{}} diff --git a/content/zh-cn/docs/concepts/scheduling-eviction/api-eviction.md b/content/zh-cn/docs/concepts/scheduling-eviction/api-eviction.md index 73be7d16ac743..9ba0cc3a4460f 100644 --- a/content/zh-cn/docs/concepts/scheduling-eviction/api-eviction.md +++ b/content/zh-cn/docs/concepts/scheduling-eviction/api-eviction.md @@ -8,6 +8,7 @@ title: API-initiated Eviction content_type: concept weight: 110 --> + {{< glossary_definition term_id="api-eviction" length="short" >}}
你可以约束一个 {{< glossary_tooltip text="Pod" term_id="pod" >}} 以便**限制**其只能在特定的{{< glossary_tooltip text="节点" term_id="node" >}}上运行, -或优先在特定的节点上运行。有几种方法可以实现这点,推荐的方法都是用 -[标签选择算符](/zh-cn/docs/concepts/overview/working-with-objects/labels/)来进行选择。 +或优先在特定的节点上运行。有几种方法可以实现这点, +推荐的方法都是用[标签选择算符](/zh-cn/docs/concepts/overview/working-with-objects/labels/)来进行选择。 通常这样的约束不是必须的,因为调度器将自动进行合理的放置(比如,将 Pod 分散到节点上, 而不是将 Pod 放置在可用资源不足的节点上等等)。但在某些情况下,你可能需要进一步控制 Pod 被部署到哪个节点。例如,确保 Pod 最终落在连接了 SSD 的机器上, @@ -1118,8 +1118,8 @@ The following operators can only be used with `nodeAffinity`. --> | 操作符 | 行为 | | :------------: | :-------------: | -| `Gt` | 字段值将被解析为整数,并且该整数小于通过解析此选择算符命名的标签的值所得到的整数 | -| `Lt` | 字段值将被解析为整数,并且该整数大于通过解析此选择算符命名的标签的值所得到的整数 | +| `Gt` | 字段值将被解析为整数,并且该整数小于通过解析此选择算符命名的标签的值所得到的整数 | +| `Lt` | 字段值将被解析为整数,并且该整数大于通过解析此选择算符命名的标签的值所得到的整数 | {{}} -运行阶段包含三个关键领域:[计算](#protection-runtime-compute), -[访问](#protection-runtime-access)和[存储](#protection-runtime-storage)。 +运行阶段包含三个关键领域:[访问](#protection-runtime-access)、 +[计算](#protection-runtime-compute)和[存储](#protection-runtime-storage)。 diff --git a/content/zh-cn/docs/contribute/participate/pr-wranglers.md b/content/zh-cn/docs/contribute/participate/pr-wranglers.md index c2e6e8fec3c47..4e24cd97045e4 100644 --- a/content/zh-cn/docs/contribute/participate/pr-wranglers.md +++ b/content/zh-cn/docs/contribute/participate/pr-wranglers.md @@ -18,8 +18,8 @@ for the repository. This section covers the duties of a PR wrangler. For more information on giving good reviews, see [Reviewing changes](/docs/contribute/review/). --> -SIG Docs 的[批准人(Approver)](/zh-cn/docs/contribute/participate/roles-and-responsibilities/#approvers)们每周轮流负责 -[管理仓库的 PR](https://github.com/kubernetes/website/wiki/PR-Wranglers)。 +SIG Docs 的[批准人(Approver)](/zh-cn/docs/contribute/participate/roles-and-responsibilities/#approvers) +们每周轮流负责[管理仓库的 PR](https://github.com/kubernetes/website/wiki/PR-Wranglers)。 本节介绍 PR 管理者的职责。关于如何提供较好的评审意见, 可参阅[评审变更](/zh-cn/docs/contribute/review/)。 @@ -33,7 +33,8 @@ Each day in a week-long shift as PR Wrangler: - Review [open pull requests](https://github.com/kubernetes/website/pulls) for quality and adherence to the [Style](/docs/contribute/style/style-guide/) and [Content](/docs/contribute/style/content-guide/) guides. - - Start with the smallest PRs (`size/XS`) first, and end with the largest (`size/XXL`). Review as many PRs as you can. + - Start with the smallest PRs (`size/XS`) first, and end with the largest (`size/XXL`). + Review as many PRs as you can. --> ## 职责 {#duties} @@ -47,15 +48,15 @@ Each day in a week-long shift as PR Wrangler: PR(`size/XXL`),尽可能多地评审 PR。 - 确保贡献者签署 [CLA](https://github.com/kubernetes/community/blob/master/CLA.md)。 - 使用[此脚本](https://github.com/zparnold/k8s-docs-pr-botherer)自动提醒尚未签署 @@ -69,13 +70,13 @@ Each day in a week-long shift as PR Wrangler: [SIG](https://github.com/kubernetes/community/blob/master/sig-list.md) 来评审。 - 使用 `/approve` 评论来批准可以合并的 PR,在 PR 就绪时将其合并。 - PR 在被合并之前,应该有来自其他成员的 `/lgtm` 评论。 @@ -87,7 +88,8 @@ Each day in a week-long shift as PR Wrangler: 这有助于接纳新的贡献者。 PR 管理者的职责不适用于本地化 PR(非英语 PR)。 本地化团队有自己的流程和团队来审查其语言 PR。 @@ -201,10 +204,11 @@ These queries exclude localization PRs. All queries are against the main branch Reviews and approvals are one tool to keep our PR queue short and current. Another tool is closure. Close PRs where: + - The author hasn't signed the CLA for two weeks. - Authors can reopen the PR after signing the CLA. This is a low-risk way to make - sure nothing gets merged without a signed CLA. + Authors can reopen the PR after signing the CLA. This is a low-risk way to make + sure nothing gets merged without a signed CLA. - The author has not responded to comments or feedback in 2 or more weeks. @@ -237,7 +241,7 @@ and closes them. PR wranglers should close issues after 14-30 days of inactivity --> 一个名为 [`k8s-ci-robot`](https://github.com/k8s-ci-robot) 的自动服务会在 Issue 停滞 90 天后自动将其标记为过期;然后再等 30 天,如果仍然无人过问,则将其关闭。 -PR 管理者应该在 issues 处于无人过问状态 14-30 天后关闭它们。 +PR 管理者应该在 Issue 处于无人过问状态 14-30 天后关闭它们。 {{< /note >}} 你可以使用 [htmltest](https://github.com/wjdp/htmltest) 来检查 [`/content/en/`](https://git.k8s.io/website/content/en/) 下面的失效链接。 @@ -16,15 +18,18 @@ You can use [htmltest](https://github.com/wjdp/htmltest) to check for broken lin ## 工作原理 {#how-the-tool-works} `htmltest` 会扫描 Kubernetes website 仓库构建生成的 HTML 文件。通过执行 `make` 命令进行了下列操作: - 构建站点并输出 HTML 到本地 `kubernetes/website` 仓库下的 `/public` 目录中 - 拉取 Docker 镜像 `wdjp/htmltest` @@ -37,7 +42,10 @@ You can use [htmltest](https://github.com/wjdp/htmltest) to check for broken lin ## 哪些链接不会检查 {#what-it-does-and-doesnot-check} @@ -47,8 +55,10 @@ The link checker scans the following: 该链接检查器扫描以下内容: - 包含在顶部和侧边导航栏的链接,以及页脚链接或者页面的 `` 部分中的链接,例如 CSS 样式表、脚本以及元信息的链接。 - 顶级页面及其子页面,例如:`/training`、`/community`、`/case-studies/adidas` - 博客文章 -- API 参考文档,例如: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/ +- API 参考文档,例如 https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/ - 本地化内容 必须安装: + * [Docker](https://docs.docker.com/get-docker/) * [make](https://www.gnu.org/software/make/) @@ -109,7 +122,7 @@ To run the link checker: 2. 执行如下命令: - ``` + ```shell make container-internal-linkcheck ``` @@ -152,8 +165,10 @@ One way to fix this is to: 1. 转到含有失效链接的 Markdown 文件。 2. 使用文本编辑器全文搜索失效链接的 URL(通常使用 Ctrl+F 或 Command+F)`#preserving-unknown-fields`。 diff --git a/content/zh-cn/docs/reference/access-authn-authz/kubelet-authn-authz.md b/content/zh-cn/docs/reference/access-authn-authz/kubelet-authn-authz.md index 7dd8155d5a391..1b792b2e40986 100644 --- a/content/zh-cn/docs/reference/access-authn-authz/kubelet-authn-authz.md +++ b/content/zh-cn/docs/reference/access-authn-authz/kubelet-authn-authz.md @@ -148,7 +148,14 @@ The resource and subresource is determined from the incoming request's path: 资源和子资源是根据传入请求的路径确定的: Kubelet API | 资源 | 子资源 -------------|----------|------------ @@ -156,6 +163,7 @@ Kubelet API | 资源 | 子资源 /metrics/\* | nodes | metrics /logs/\* | nodes | log /spec/\* | nodes | spec +/checkpoint/\* | nodes | checkpoint **其它所有** | nodes | proxy @@ -141,6 +144,9 @@ the request will not be authenticated. 将作为额外的“私有声明”存储在所发布的 JWT 中。 当将被绑定的令牌提供给 kube-apiserver 时,服务帐户身份认证组件将提取并验证这些声明。 +如果所引用的对象或 ServiceAccount 正处于删除中(例如,由于 finalizer 的原因), +那么在 `.metadata.deletionTimestamp` 时间戳之后的 60 秒(或更长时间)后的某一时刻, +使用该令牌进行身份认证将会失败。 如果所引用的对象不再存在(或其 `metadata.uid` 不匹配),则请求将无法通过认证。 -允许 API 服务器从缓存中提供一致的 list 操作。 +通过直接使用监视缓存来为 **list** 请求提供一致性的数据,提升 Kubernetes API 服务器的性能, +从而改善可扩展性和响应时间。为了从缓存获取一致的列表,Kubernetes 需要使用较新的 +Etcd 版本(v3.4.31+ 或 v3.5.13+),这些版本包含了对监视进度请求特性的修复。 +如果使用较旧的 Etcd 版本,Kubernetes 会自动检测到并回退到从 Etcd 提供一致的读取操作。 +进度通知能够确保监视缓存与 Etcd 保持一致,同时减少对 Etcd 进行资源密集型仲裁读取的需求。 + +更多细节请参阅 Kubernetes 文档 +[**get** 和 **list** 语义](/zh-cn/docs/reference/using-api/api-concepts/#semantics-for-get-and-list)。 diff --git a/content/zh-cn/docs/reference/command-line-tools-reference/feature-gates/device-plugin-cdi-devices.md b/content/zh-cn/docs/reference/command-line-tools-reference/feature-gates/device-plugin-cdi-devices.md index 16ac4da845de9..bb80148a1a0e1 100644 --- a/content/zh-cn/docs/reference/command-line-tools-reference/feature-gates/device-plugin-cdi-devices.md +++ b/content/zh-cn/docs/reference/command-line-tools-reference/feature-gates/device-plugin-cdi-devices.md @@ -13,6 +13,10 @@ stages: - stage: beta defaultValue: true fromVersion: "1.29" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.31" --- 启用对具有自定义参数和独立于 Pod 生命周期的资源的支持。 +资源的分配由 Kubernetes 调度器根据“结构化参数”进行处理。 diff --git a/content/zh-cn/docs/reference/command-line-tools-reference/feature-gates/elastic-indexed-job.md b/content/zh-cn/docs/reference/command-line-tools-reference/feature-gates/elastic-indexed-job.md index f6da4e5dd1072..57bf99e309dc3 100644 --- a/content/zh-cn/docs/reference/command-line-tools-reference/feature-gates/elastic-indexed-job.md +++ b/content/zh-cn/docs/reference/command-line-tools-reference/feature-gates/elastic-indexed-job.md @@ -9,6 +9,10 @@ stages: - stage: beta defaultValue: true fromVersion: "1.27" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.31" --- -

v1 包中包含 API 的 v1 版本。

+EncryptionConfiguration 存储加密驱动的完整配置。它还允许使用通配符来指定应该被加密的资源。 +使用 “*.<group>” 以加密组内的所有资源,或使用 “*.*” 以加密所有资源。 +“*.” 可用于加密核心组中的所有资源。“*.*” 将加密所有资源,包括在 API 服务器启动后添加的自定义资源。 +由于部分配置可能无效,所以不允许在同一资源列表中或跨多个条目使用重叠的通配符。 +资源列表被按顺序处理,会优先处理较早的列表。 +

+

+ +示例: +

+ +
kind: EncryptionConfiguration
+apiVersion: apiserver.config.k8s.io/v1
+resources:
+- resources:
+  - events
+  providers:
+  - identity: {}  # 即使以下 *.* 被指定,也不会对事件加密
+- resources:
+  - secrets
+  - configmaps
+  - pandas.awesome.bears.example
+  providers:
+  - aescbc:
+      keys:
+      - name: key1
+        secret: c2VjcmV0IGlzIHNlY3VyZQ==
+- resources:
+  - '*.apps'
+  providers:
+  - aescbc:
+      keys:
+      - name: key2
+        secret: c2VjcmV0IGlzIHNlY3VyZSwgb3IgaXMgaXQ/Cg==
+- resources:
+  - '*.*'
+  providers:
+  - aescbc:
+      keys:
+      - name: key3
+        secret: c2VjcmV0IGlzIHNlY3VyZSwgSSB0aGluaw==
+ + + + + + + + + + + + +
字段描述
apiVersion
string
apiserver.config.k8s.io/v1
kind
string
EncryptionConfiguration
resources [必需]
+[]ResourceConfiguration +
+

+ + resources 是一个包含资源及其对应加密驱动的列表。 +

+
+ +## `AESConfiguration` {#apiserver-config-k8s-io-v1-AESConfiguration} + + +**出现在:** + +- [ProviderConfiguration](#apiserver-config-k8s-io-v1-ProviderConfiguration) + +

+ +AESConfiguration 包含针对 AES 转换器的 API 配置。 +

+ + + + + + + + + +
字段描述
keys [必需]
+[]Key +
+

+ + keys 是一个用于创建 AES 转换器的密钥列表。 + 对于 AES-CBC,每个密钥的长度必须是 32 字节; + 对于 AES-GCM,每个密钥的长度可以是 16、24 或 32 字节。 +

+
+ ## `AdmissionPluginConfiguration` {#apiserver-config-k8s-io-v1-AdmissionPluginConfiguration} +**出现在:** + +- [ProviderConfiguration](#apiserver-config-k8s-io-v1-ProviderConfiguration) + +

+ +IdentityConfiguration 是一个空结构体,允许在驱动配置中使用身份转换器。 +

+ +## `KMSConfiguration` {#apiserver-config-k8s-io-v1-KMSConfiguration} + + +**出现在:** + +- [ProviderConfiguration](#apiserver-config-k8s-io-v1-ProviderConfiguration) + +

+ +KMSConfiguration 包含 KMS 型信封转换器所用的配置文件的名称、缓存大小和路径。 +

+ + + + + + + + + + + + + + + + + + + + + +
字段描述
apiVersion
+string +
+

+ + KeyManagementService 的 apiVersion +

+
name [必需]
+string +
+

+ + name 是要使用的 KMS 插件的名称。 +

+
cachesize
+int32 +
+

+ + cachesize 是内存中缓存的最大 Secret 数量。默认值为 1000。 + 设置为负值将禁用缓存。此字段仅允许用于 KMS v1 驱动。 +

+
endpoint [必需]
+string +
+

+ + endpoint 是 gRPC 服务器的监听地址,例如 "unix:///var/run/kms-provider.sock"。 +

+
timeout
+meta/v1.Duration +
+

+ + timeout 是 gRPC 调用到 KMS 插件的超时时间(例如 5s)。默认值为 3 秒。 +

+
+ +## `Key` {#apiserver-config-k8s-io-v1-Key} + + +**出现在:** + +- [AESConfiguration](#apiserver-config-k8s-io-v1-AESConfiguration) +- [SecretboxConfiguration](#apiserver-config-k8s-io-v1-SecretboxConfiguration) + +

+ +Key 包含为转换器所提供的密钥的名称和 Secret。 +

+ + + + + + + + + + + + +
字段描述
name [必需]
+string +
+

+ + name 是在将数据存储到磁盘时所使用的密钥名称。 +

+
secret [必需]
+string +
+

+ + secret 是实际的密钥,以 base64 编码。 +

+
+ +## `ProviderConfiguration` {#apiserver-config-k8s-io-v1-ProviderConfiguration} + + +**出现在:** + +- [ResourceConfiguration](#apiserver-config-k8s-io-v1-ResourceConfiguration) + +

+ +ProviderConfiguration 存储为加密驱动提供的配置。 +

+ + + + + + + + + + + + + + + + + + + + + +
字段描述
aesgcm [必需]
+AESConfiguration +
+

+ + aesgcm 是 AES-GCM 转换器的配置。 +

+
aescbc [必需]
+AESConfiguration +
+

+ + aescbc 是 AES-CBC 转换器的配置。 +

+
secretbox [必需]
+SecretboxConfiguration +
+

+ + secretbox 是基于 Secretbox 的转换器的配置。 +

+
identity [必需]
+IdentityConfiguration +
+

+ + identity 是身份转换器的(空)配置。 +

+
kms [必需]
+KMSConfiguration +
+

+ + kms 包含 KMS 型信封转换器所用的配置文件的名称、缓存大小和路径。 +

+
+ +## `ResourceConfiguration` {#apiserver-config-k8s-io-v1-ResourceConfiguration} + + +**出现在:** + +- [EncryptionConfiguration](#apiserver-config-k8s-io-v1-EncryptionConfiguration) + +

+ +ResourceConfiguration 存储每个资源的配置。 +

+ + + + + + + + + + + + +
字段描述
resources [必需]
+[]string +
+

+ + resources 是一个需要加密的 Kubernetes 资源列表。 + 资源名称来源于组/版本/资源的 “resource” 或 “resource.group”。 + 例如,pandas.awesome.bears.example 是一个自定义资源,其 “group” 为 awesome.bears.example, + “resource” 为 pandas。使用 “*.*” 以加密所有资源,使用 “*.<group>” 以加密特定组中的所有资源。 + 例如,“*.awesome.bears.example” 将加密 “awesome.bears.example” 组中的所有资源。 + 再比如,“*.” 将加密核心组中的所有资源(如 Pod、ConfigMap 等)。 +

+
providers [必需]
+[]ProviderConfiguration +
+

+ + providers 是从磁盘读取资源和写入资源到磁盘要使用的转换器的列表。 + 例如:aesgcm、aescbc、secretbox、identity、kms。 +

+
+ +## `SecretboxConfiguration` {#apiserver-config-k8s-io-v1-SecretboxConfiguration} + + +**出现在:** + +- [ProviderConfiguration](#apiserver-config-k8s-io-v1-ProviderConfiguration) + +

+ +SecretboxConfiguration 包含 Secretbox 转换器的 API 配置。 +

+ + + + + + + + + +
字段描述
keys [必需]
+[]Key +
+

+ + keys 是一个用于创建 Secretbox 转换器的密钥列表。每个密钥的长度必须为 32 字节。 +

+
diff --git a/content/zh-cn/docs/reference/config-api/kubelet-config.v1beta1.md b/content/zh-cn/docs/reference/config-api/kubelet-config.v1beta1.md index d9a6fae47e0b6..39a4ed23f5436 100644 --- a/content/zh-cn/docs/reference/config-api/kubelet-config.v1beta1.md +++ b/content/zh-cn/docs/reference/config-api/kubelet-config.v1beta1.md @@ -13,7 +13,7 @@ auto_generated: true -## 资源类型 +## 资源类型 {#resource-types} - [CredentialProviderConfig](#kubelet-config-k8s-io-v1beta1-CredentialProviderConfig) - [KubeletConfiguration](#kubelet-config-k8s-io-v1beta1-KubeletConfiguration) @@ -97,7 +97,7 @@ JSONOptions 包含为 "json" 日志格式提供的选项。 OutputRoutingOptions 的成员嵌入到此类型中。) 没有提供描述。 @@ -108,11 +108,13 @@ JSONOptions 包含为 "json" 日志格式提供的选项。 ## `LogFormatFactory` {#LogFormatFactory} +

-

LogFormatFactory 提供了对某些附加的、非默认的日志格式的支持。

+LogFormatFactory 提供了对某些附加的、非默认的日志格式的支持。 +

## `LoggingConfiguration` {#LoggingConfiguration} @@ -123,10 +125,12 @@ non-default log format. - [KubeletConfiguration](#kubelet-config-k8s-io-v1beta1-KubeletConfiguration) +

LoggingConfiguration 包含日志选项。 +

@@ -273,8 +277,8 @@ certain global defaults. -

OutputRoutingOptions 包含 "text" 和 "json" 支持的选项。 +

字段描述
@@ -311,7 +315,7 @@ Only available when the LoggingAlphaOptions feature gate is enabled.

Field描述<
-## `TextOptions` {#TextOptions} +## `TextOptions` {#TextOptions} 描述 @@ -406,10 +409,12 @@ flushFrequency field, and new fields should use metav1.Duration. - [KubeletConfiguration](#kubelet-config-k8s-io-v1beta1-KubeletConfiguration) +

-

TracingConfiguration 为 OpenTelemetry 追踪客户端提供版本化的配置信息。

+TracingConfiguration 为 OpenTelemetry 追踪客户端提供版本化的配置信息。 +

@@ -458,12 +463,14 @@ rate, but otherwise never samples. - [LoggingConfiguration](#LoggingConfiguration) +

VModuleConfiguration 是一个集合,其中包含一个个文件名(或文件名模式) 及其对应的详细程度阈值。 +

## `VerbosityLevel` {#VerbosityLevel} @@ -479,13 +486,16 @@ VModuleConfiguration 是一个集合,其中包含一个个文件名(或文 - [LoggingConfiguration](#LoggingConfiguration) +

-

VerbosityLevel 表示 klog 或 logr 的详细程度(verbosity)阈值。

+VerbosityLevel 表示 klog 或 logr 的详细程度(verbosity)阈值。 +

## `CredentialProviderConfig` {#kubelet-config-k8s-io-v1beta1-CredentialProviderConfig} +

CredentialProviderConfig 包含有关每个 exec 凭据提供者的配置信息。 Kubelet 从磁盘上读取这些配置信息,并根据 CredentialProvider 类型启用各个提供者。 +

字段描述
@@ -525,10 +536,12 @@ auth keys, the value from the provider earlier in this list is used. ## `KubeletConfiguration` {#kubelet-config-k8s-io-v1beta1-KubeletConfiguration} +

KubeletConfiguration 中包含 Kubelet 的配置。 +

字段描述
@@ -1132,8 +1145,8 @@ collected based on being unused for too long. Default: "0s" (disabled) -->

imageMaximumGCAge 是对未使用镜像进行垃圾收集之前允许其存在的时长。 - 此字段的默认值为 "0s",表示禁用此字段,这意味着镜像不会因为过长时间不使用而被垃圾收集。 - 默认值:"0s"(已禁用)

+ 此字段的默认值为 "0s",表示禁用此字段,这意味着镜像不会因为过长时间不使用而被垃圾收集。

+

默认值:"0s"(已禁用)

@@ -2109,8 +2122,7 @@ Default: "" -->

systemReservedCgroup 帮助 kubelet 识别用来为 OS 系统级守护进程实施 systemReserved 计算资源预留时使用的顶级控制组(CGroup)。 -参考 Node Allocatable -以了解详细信息。

+更多细节参阅节点可分配资源

默认值:""

@@ -2129,8 +2141,7 @@ Default: "" -->

kubeReservedCgroup 帮助 kubelet 识别用来为 Kubernetes 节点系统级守护进程实施 kubeReserved 计算资源预留时使用的顶级控制组(CGroup)。 -参阅 Node Allocatable -了解进一步的信息。

+更多细节参阅节点可分配资源

默认值:""

@@ -2158,8 +2169,7 @@ Default: ["pods"]

如果列表中包含 system-reserved,则必须设置 systemReservedCgroup

如果列表中包含 kube-reserved,则必须设置 kubeReservedCgroup

这个字段只有在 cgroupsPerQOS被设置为 true 才被支持。

-

参阅Node Allocatable -了解进一步的信息。

+

更多细节参阅节点可分配资源

默认值:["pods"]

@@ -2365,6 +2375,7 @@ Default: nil []MemoryReservation @@ -2415,7 +2431,7 @@ Also, avoid specifying:

enableProfilingHandler enables profiling via web interface host:port/debug/pprof/ Default: true --> -

enableProfilingHandler 启用通过 host:port/debug/pprof/ 接口来执行性能分析。

+

enableProfilingHandler 启用通过 host:port/debug/pprof/ 接口来执行性能分析。

默认值:true

@@ -2428,7 +2444,7 @@ Default: true enableDebugFlagsHandler enables flags endpoint via web interface host:port/debug/flags/v Default: true --> -

enableDebugFlagsHandler 启用通过 host:port/debug/flags/v Web +

enableDebugFlagsHandler 启用通过 host:port/debug/flags/v Web 接口上的标志设置。

默认值:true

@@ -2470,7 +2486,7 @@ Default: 0.8 +
字段描述
+

-

reservedMemory 给出一个逗号分隔的列表,为 NUMA 节点预留内存。

-

此参数仅在内存管理器功能特性语境下有意义。内存管理器不会为容器负载分配预留内存。 +Also, avoid specifying: +--> + reservedMemory 给出一个逗号分隔的列表,为 NUMA 节点预留内存。 + 此参数仅在内存管理器功能特性语境下有意义。内存管理器不会为容器负载分配预留内存。 例如,如果你的 NUMA0 节点内存为 10Gi,reservedMemory 设置为在 NUMA0 -上预留 1Gi 内存,内存管理器会认为其上只有 9Gi 内存可供分配。

-

你可以设置不同数量的 NUMA 节点和内存类型。你也可以完全忽略这个字段,不过你要清楚, +上预留 1Gi 内存,内存管理器会认为其上只有 9Gi 内存可供分配。 + 你可以设置不同数量的 NUMA 节点和内存类型。你也可以完全忽略这个字段,不过你要清楚, 所有 NUMA 节点上预留内存的总量要等于通过 -node allocatable -设置的内存量。

-

如果至少有一个节点可分配参数设置值非零,则你需要设置至少一个 NUMA 节点。

-

此外,避免如下设置:

+节点可分配资源设置的内存量。 + 如果至少有一个节点可分配参数设置值非零,则你需要设置至少一个 NUMA 节点。 + 此外,避免如下设置: +

    +
  1. 在配置值中存在重复项,NUMA 节点和内存类型相同,但配置值不同,这是不允许的。
  2. 为任何内存类型设置限制值为零。
  3. NUMA 节点 ID 在宿主系统上不存在。/li>
  4. memoryhugepages-<size> 之外的内存类型。
-

默认值:nil

+

+ + 默认值:nil +

registerWithTaints
-[]core/v1.Taint +[]core/v1.Taint
+ failCgroupV1 防止 kubelet 在使用 cgroup v1 的主机上启动。 +默认情况下,此选项设置为 “false”,这意味着除非此选项被显式启用, +否则 kubelet 被允许在 cgroup v1 主机上启动。 +默认值:false +

+
@@ -2585,7 +2620,7 @@ SerializedNodeConfigSource 允许对 `v1.NodeConfigSource` 执行序列化操作 kind
stringSerializedNodeConfigSource source
-core/v1.NodeConfigSource +core/v1.NodeConfigSource

matchImages 中的每个条目都是一个模式字符串,其中可以包含端口号和路径。 域名部分可以包含统配符,但端口或路径部分不可以。通配符可以用作子域名,例如 -*.k8s.iok8s.*.io,以及顶级域名,如 k8s.*

-

对类似 app*.k8s.io 这类部分子域名的匹配也是支持的。 +*.k8s.iok8s.*.io,以及顶级域名,如 k8s.*。 +对类似 app*.k8s.io 这类部分子域名的匹配也是支持的。 每个通配符只能用来匹配一个子域名段,所以 *.io 不会匹配 *.k8s.io

[必需]
-core/v1.ResourceList +core/v1.ResourceList diff --git a/content/zh-cn/docs/reference/kubernetes-api/authentication-resources/self-subject-review-v1.md b/content/zh-cn/docs/reference/kubernetes-api/authentication-resources/self-subject-review-v1.md index 51021953ea54f..b60e654e762a0 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/authentication-resources/self-subject-review-v1.md +++ b/content/zh-cn/docs/reference/kubernetes-api/authentication-resources/self-subject-review-v1.md @@ -87,8 +87,12 @@ SelfSubjectReviewStatus 由 kube-apiserver 进行填充并发送回用户。 - **userInfo.groups** ([]string) + + **原子性:合并期间将被替换** 此用户所属的用户组的名称。 diff --git a/content/zh-cn/docs/reference/kubernetes-api/authentication-resources/token-review-v1.md b/content/zh-cn/docs/reference/kubernetes-api/authentication-resources/token-review-v1.md index 572eb316bef33..8e51136e38942 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/authentication-resources/token-review-v1.md +++ b/content/zh-cn/docs/reference/kubernetes-api/authentication-resources/token-review-v1.md @@ -77,8 +77,12 @@ TokenReviewPec 是对令牌身份验证请求的描述。 - **audiences** ([]string) + **原子性:将在合并期间被替换** + audiences 是带有令牌的资源服务器标识为受众的标识符列表。 受众感知令牌身份验证器将验证令牌是否适用于此列表中的至少一个受众。 如果未提供受众,受众将默认为 Kubernetes API 服务器的受众。 @@ -102,8 +106,13 @@ TokenReviewStatus 是令牌认证请求的结果。 - **audiences** ([]string) + + **原子性:将在合并期间被替换** + audiences 是身份验证者选择的与 TokenReview 和令牌兼容的受众标识符。标识符是 TokenReviewSpec 受众和令牌受众的交集中的任何标识符。设置 spec.audiences 字段的 TokenReview API 的客户端应验证在 status.audiences 字段中返回了兼容的受众标识符, @@ -146,6 +155,12 @@ TokenReviewStatus 是令牌认证请求的结果。 - **user.groups** ([]string) + + + **Atomic:将在合并期间被替换** + diff --git a/content/zh-cn/docs/reference/kubernetes-api/authorization-resources/cluster-role-binding-v1.md b/content/zh-cn/docs/reference/kubernetes-api/authorization-resources/cluster-role-binding-v1.md index 80bfd37af99d5..4688b3e606220 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/authorization-resources/cluster-role-binding-v1.md +++ b/content/zh-cn/docs/reference/kubernetes-api/authorization-resources/cluster-role-binding-v1.md @@ -7,7 +7,6 @@ content_type: "api_reference" description: "ClusterRoleBinding 引用 ClusterRole,但不包含它。" title: "ClusterRoleBinding" weight: 6 -auto_generated: false --- - **subjects** ([]Subject) + **原子性:将在合并期间被替换** + Subjects 包含角色所适用的对象的引用。 diff --git a/content/zh-cn/docs/reference/kubernetes-api/authorization-resources/self-subject-access-review-v1.md b/content/zh-cn/docs/reference/kubernetes-api/authorization-resources/self-subject-access-review-v1.md index 858acd31c823d..34616e82302e1 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/authorization-resources/self-subject-access-review-v1.md +++ b/content/zh-cn/docs/reference/kubernetes-api/authorization-resources/self-subject-access-review-v1.md @@ -99,12 +99,6 @@ resourceAuthorizationAttributes 和 nonResourceAuthorizationAttributes 二者必 *ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface* - - - **resourceAttributes.group** (string) - Group is the API Group of the Resource. "*" means all. - - - **resourceAttributes.name** (string) - Name is the name of the resource being requested for a "get" or deleted for a "delete". "" (empty) means all. --> - **resourceAttributes** (ResourceAttributes) @@ -112,12 +106,224 @@ resourceAuthorizationAttributes 和 nonResourceAuthorizationAttributes 二者必 **resourceAttributes 包括提供给 Authorizer 接口进行资源请求鉴权时所用的属性。** - + + + + - **resourceAttributes.fieldSelector** (FieldSelectorAttributes) + + fieldSelector 描述基于字段的访问限制。此字段只能限制访问权限,而不能扩大访问权限。 + + 此字段处于 Alpha 级别。要使用此字段,你必须启用 `AuthorizeWithSelectors` 特性门控(默认禁用)。 + + + + + FieldSelectorAttributes 表示一个限制访问的字段。建议 Webhook 的开发者们: + + * 确保 rawSelector 和 requirements 未被同时设置 + * 如果设置了 fieldSelector,则考虑 requirements 字段 + * 如果设置了 fieldSelector,不要尝试解析或考虑 rawSelector 字段。 + + 这是为了避免出现另一个 CVE-2022-2880(即我们不希望不同系统以一致的方式解析某个查询), + 有关细节参见 https://www.oxeye.io/resources/golang-parameter-smuggling-attack + 对于 kube-apiserver 的 SubjectAccessReview 端点: + + * 如果 rawSelector 为空且 requirements 为空,则请求未被限制。 + * 如果 rawSelector 存在且 requirements 为空,则 rawSelector 将被解析,并在解析成功的情况下进行限制。 + * 如果 rawSelector 为空且 requirements 存在,则应优先使用 requirements。 + * 如果 rawSelector 存在,requirements 也存在,则请求无效。 + + + + - **resourceAttributes.fieldSelector.rawSelector** (string) + + rawSelector 是字段选择算符的序列化形式,将被包含在查询参数中。 + 建议 Webhook 实现忽略 rawSelector。只要 requirements 不存在, + kube-apiserver 的 SubjectAccessReview 将解析 rawSelector。 + + + + - **resourceAttributes.fieldSelector.requirements** ([]FieldSelectorRequirement) + + **原子:将在合并期间被替换** + + requirements 是字段选择算符已解析的解释。资源实例必须满足所有 requirements 才能匹配此选择算符。 + Webhook 实现应处理 requirements,但如何处理由 Webhook 自行决定。 + 由于 requirements 只能限制请求,因此如果不理解 requirements,可以安全地将请求鉴权为无限制请求。 + + + **FieldSelectorRequirement 是一个选择算符,包含值、键以及与将键和值关联起来的运算符。** + + + + - **resourceAttributes.fieldSelector.requirements.key** (string),必需 + + key 是 requirements 应用到的字段选择算符键。 + + - **resourceAttributes.fieldSelector.requirements.operator** (string),必需 + + operator 表示键与一组值之间的关系。有效的运算符有 In、NotIn、Exists、DoesNotExist。 + 运算符列表可能会在未来增加。 + + - **resourceAttributes.fieldSelector.requirements.values**([]string) + + **原子:将在合并期间被替换** + + values 是一个字符串值的数组。如果运算符是 In 或 NotIn,则 values 数组必须非空。 + 如果运算符是 Exists 或 DoesNotExist,则 values 数组必须为空。 + + + - **resourceAttributes.group** (string) group 是资源的 API 组。 "*" 表示所有组。 - + + + + - **resourceAttributes.labelSelector** (LabelSelectorAttributes) + + labelSelector 描述基于标签的访问限制。此字段只能限制访问权限,而不能扩大访问权限。 + + 此字段处于 Alpha 级别。要使用此字段,你必须启用 `AuthorizeWithSelectors` 特性门控(默认禁用)。 + + + + + LabelSelectorAttributes 表示通过标签限制的访问。建议 Webhook 开发者们: + + * 确保 rawSelector 和 requirements 未被同时设置 + * 如果设置了 labelSelector,则考虑 requirements 字段 + * 如果设置了 labelSelector,不要尝试解析或考虑 rawSelector 字段。 + + 这是为了避免出现另一个 CVE-2022-2880(即让不同系统以一致的方式解析为何某个查询不是我们想要的), + 有关细节参见 https://www.oxeye.io/resources/golang-parameter-smuggling-attack + 对于 kube-apiserver 的 SubjectAccessReview 端点: + + * 如果 rawSelector 为空且 requirements 为空,则请求未被限制。 + * 如果 rawSelector 存在且 requirements 为空,则 rawSelector 将被解析,并在解析成功的情况下进行限制。 + * 如果 rawSelector 为空且 requirements 存在,则应优先使用 requirements。 + * 如果 rawSelector 存在,requirements 也存在,则请求无效。 + + + + - **resourceAttributes.labelSelector.rawSelector** (string) + + rawSelector 是字段选择算符的序列化形式,将被包含在查询参数中。 + 建议 Webhook 实现忽略 rawSelector。只要 requirements 不存在, + kube-apiserver 的 SubjectAccessReview 将解析 rawSelector。 + + + + - **resourceAttributes.labelSelector.requirements** ([]LabelSelectorRequirement) + + **原子:将在合并期间被替换** + + requirements 是字段选择算符已解析的解释。资源实例必须满足所有 requirements,才能匹配此选择算符。 + Webhook 实现应处理 requirements,但如何处理由 Webhook 自行决定。 + 由于 requirements 只能限制请求,因此如果不理解 requirements,可以安全地将请求鉴权为无限制请求。 + + + **FieldSelectorRequirement 是一个选择算符,包含值、键以及将键和值关联起来的运算符。** + + + + - **resourceAttributes.labelSelector.requirements.key** (string),必需 + + key 是选择算符应用到的标签键。 + + - **resourceAttributes.labelSelector.requirements.operator** (string),必需 + + operator 表示键与一组值之间的关系。有效的运算符有 In、NotIn、Exists、DoesNotExist。 + + - **resourceAttributes.labelSelector.requirements.values** ([]string) + + **原子:将在合并期间被替换** + + values 是一个字符串值的数组。如果运算符是 In 或 NotIn,则 values 数组必须非空。 + 如果运算符是 Exists 或 DoesNotExist,则 values 数组必须为空。 + 此数组在策略性合并补丁(Strategic Merge Patch)期间被替换。 + + + - **resourceAttributes.name** (string) name 是 "get" 正在请求或 "delete" 已删除的资源的名称。 diff --git a/content/zh-cn/docs/reference/kubernetes-api/cluster-resources/lease-candidate-v1alpha1.md b/content/zh-cn/docs/reference/kubernetes-api/cluster-resources/lease-candidate-v1alpha1.md new file mode 100644 index 0000000000000..35a330c2d5016 --- /dev/null +++ b/content/zh-cn/docs/reference/kubernetes-api/cluster-resources/lease-candidate-v1alpha1.md @@ -0,0 +1,930 @@ +--- +api_metadata: + apiVersion: "coordination.k8s.io/v1alpha1" + import: "k8s.io/api/coordination/v1alpha1" + kind: "LeaseCandidate" +content_type: "api_reference" +description: "LeaseCandidate 定义 Lease 对象的候选者。" +title: "LeaseCandidate v1alpha1" +weight: 6 +--- + + +`apiVersion: coordination.k8s.io/v1alpha1` + +`import "k8s.io/api/coordination/v1alpha1"` + +## LeaseCandidate {#LeaseCandidate} + + +LeaseCandidate 定义一个 Lease 对象的候选者。 +通过创建候选者,协同式领导者选举能够从候选者列表中选出最佳的领导者。 + +
+ +- **apiVersion**: coordination.k8s.io/v1alpha1 + +- **kind**: LeaseCandidate + + +- **metadata** (}}">ObjectMeta) + + 更多信息: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + +- **spec** (}}">LeaseCandidateSpec) + + spec 包含 Lease 的规约。更多信息: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + +## LeaseCandidateSpec {#LeaseCandidateSpec} + + +LeaseCandidateSpec 是 Lease 的规约。 + +
+ + +- **leaseName** (string),必需 + + leaseName 是此候选者正在争夺的租约的名称。此字段是不可变更的。 + + +- **preferredStrategies** ([]string),必需 + + **原子:将在合并期间被替换** + + preferredStrategies 表示协同式领导者选举在选择领导者时所用的策略的列表。 + 此列表是有序的,第一个策略优先于所有其他策略。此列表将由协同式领导者选举用于决定最终的选举策略。 + 具体规则为: + + - 如果所有客户端的策略列表的第一个元素为 X,则策略 X 将被使用。 + - 如果一个候选者的策略为 [X],而另一个候选者的策略为 [Y, X],则 Y 优先于 X,策略 Y 将被使用。 + + - 如果一个候选者的策略为 [X, Y],而另一个候选者的策略为 [Y, X],则这是一个用户错误, + 并且在解决此错误之前领导者选举将不会操作 Lease。 + + (Alpha)使用此字段需要启用 CoordinatedLeaderElection 特性门控。 + + +- **binaryVersion** (string) + + binaryVersion 是可执行文件的版本。它必须采用不带前缀 `v` 的语义版本格式。 + 当策略为 "OldestEmulationVersion" 时,此字段是必需的。 + +- **emulationVersion** (string) + + emulationVersion 是仿真版本。它必须采用不带前缀 `v` 的语义版本格式。 + emulationVersion 必须小于或等于 binaryVersion。当策略为 "OldestEmulationVersion" 时,此字段是必需的。 + + +- **pingTime**(MicroTime) + + pingTime 是服务器最近一次请求 LeaseCandidate 续订的时间。 + 此操作仅在领导者选举期间进行,用以检查是否有 LeaseCandidates 变得不合格。 + 当 pingTime 更新时,LeaseCandidate 会通过更新 renewTime 来响应。 + + + **MicroTime 是微秒级精度的 Time 版本** + + +- **renewTime**(MicroTime) + + renewTime 是 LeaseCandidate 被最近一次更新的时间。每当 Lease 需要进行领导者选举时, + pingTime 字段会被更新,以向 LeaseCandidate 发出应更新 renewTime 的信号。 + 如果自上次续订以来已经过去几个小时,旧的 LeaseCandidate 对象也会被垃圾收集。 + pingTime 字段会被定期更新,以防止对仍处于活动状态的 LeaseCandidates 进行垃圾收集。 + + + **MicroTime 是微秒级精度的 Time 版本** + +## LeaseCandidateList {#LeaseCandidateList} + + +LeaseCandidateList 是 Lease 对象的列表。 + +
+ +- **apiVersion**: coordination.k8s.io/v1alpha1 + +- **kind**: LeaseCandidateList + + +- **metadata** (}}">ListMeta) + + 标准的列表元数据。更多信息: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + +- **items** ([]}}">LeaseCandidate),必需 + + items 是模式对象的列表。 + + +## 操作 {#Operations} + +
+ +### `get` 读取指定的 LeaseCandidate + +#### HTTP 请求 + +GET /apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates/{name} + + +#### 参数 + +- **name** (**路径参数**): string,必需 + + LeaseCandidate 的名称。 + +- **namespace** (**路径参数**): string,必需 + + }}">namespace + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">LeaseCandidate): OK + +401: Unauthorized + + +### `list` 列举或监视类别为 LeaseCandidate 的对象 + +#### HTTP 请求 + +GET /apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates + + +#### 参数 + +- **namespace** (**路径参数**): string,必需 + + }}">namespace + +- **allowWatchBookmarks** (**查询参数**): boolean + + }}">allowWatchBookmarks + +- **continue** (**查询参数**): string + + }}">continue + +- **fieldSelector** (**查询参数**): string + + }}">fieldSelector + +- **labelSelector** (**查询参数**): string + + }}">labelSelector + +- **limit** (**查询参数**): integer + + }}">limit + +- **pretty** (**查询参数**): string + + }}">pretty + +- **resourceVersion** (**查询参数**): string + + }}">resourceVersion + +- **resourceVersionMatch** (**查询参数**): string + + }}">resourceVersionMatch + +- **sendInitialEvents** (**查询参数**): boolean + + }}">sendInitialEvents + +- **timeoutSeconds** (**查询参数**): integer + + }}">timeoutSeconds + +- **watch** (**查询参数**): boolean + + }}">watch + + +#### 响应 + +200 (}}">LeaseCandidateList): OK + +401: Unauthorized + + +### `list` 列举或监视类别为 LeaseCandidate 的对象 + +#### HTTP 请求 + +GET /apis/coordination.k8s.io/v1alpha1/leasecandidates + + +#### 参数 + +- **allowWatchBookmarks** (**查询参数**): boolean + + }}">allowWatchBookmarks + +- **continue** (**查询参数**): string + + }}">continue + +- **fieldSelector** (**查询参数**): string + + }}">fieldSelector + +- **labelSelector** (**查询参数**): string + + }}">labelSelector + +- **limit** (**查询参数**): integer + + }}">limit + +- **pretty** (**查询参数**): string + + }}">pretty + +- **resourceVersion** (**查询参数**): string + + }}">resourceVersion + +- **resourceVersionMatch** (**查询参数**): string + + }}">resourceVersionMatch + +- **sendInitialEvents** (**查询参数**): boolean + + }}">sendInitialEvents + +- **timeoutSeconds** (**查询参数**): integer + + }}">timeoutSeconds + +- **watch** (**查询参数**): boolean + + }}">watch + + +#### 响应 + +200 (}}">LeaseCandidateList): OK + +401: Unauthorized + + +### `create` 创建 LeaseCandidate + +#### HTTP 请求 + +POST /apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates + + +#### 参数 + +- **namespace** (**路径参数**): string,必需 + + }}">namespace + +- **body**: }}">LeaseCandidate,必需 + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldManager** (**查询参数**): string + + }}">fieldManager + +- **fieldValidation** (**查询参数**): string + + }}">fieldValidation + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">LeaseCandidate): OK + +201 (}}">LeaseCandidate): Created + +202 (}}">LeaseCandidate): Accepted + +401: Unauthorized + + +### `update` 替换指定的 LeaseCandidate + +#### HTTP 请求 + +PUT /apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates/{name} + + +#### 参数 + +- **name** (**路径参数**): string,必需 + + LeaseCandidate 的名称。 + +- **namespace** (**路径参数**): string,必需 + + }}">namespace + +- **body**: }}">LeaseCandidate,必需 + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldManager** (**查询参数**): string + + }}">fieldManager + +- **fieldValidation** (**查询参数**): string + + }}">fieldValidation + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">LeaseCandidate): OK + +201 (}}">LeaseCandidate): Created + +401: Unauthorized + + +### `patch` 部分更新指定的 LeaseCandidate + +#### HTTP 请求 + +PATCH /apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates/{name} + + +#### 参数 + +- **name** (**路径参数**): string,必需 + + LeaseCandidate 的名称。 + +- **namespace** (**路径参数**): string,必需 + + }}">namespace + +- **body**: }}">Patch,必需 + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldManager** (**查询参数**): string + + }}">fieldManager + +- **fieldValidation** (**查询参数**): string + + }}">fieldValidation + +- **force** (**查询参数**): boolean + + }}">force + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">LeaseCandidate): OK + +201 (}}">LeaseCandidate): Created + +401: Unauthorized + + +### `delete` 删除 LeaseCandidate + +#### HTTP 请求 + +DELETE /apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates/{name} + + +#### 参数 + +- **name** (**路径参数**): string,必需 + + LeaseCandidate 的名称。 + +- **namespace** (**路径参数**): string,必需 + + }}">namespace + +- **body**: }}">DeleteOptions + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **gracePeriodSeconds** (**查询参数**): integer + + }}">gracePeriodSeconds + +- **pretty** (**查询参数**): string + + }}">pretty + +- **propagationPolicy** (**查询参数**): string + + }}">propagationPolicy + + +#### 响应 + +200 (}}">Status): OK + +202 (}}">Status): Accepted + +401: Unauthorized + + +### `deletecollection` 删除 LeaseCandidate 的集合 + +#### HTTP 请求 + +DELETE /apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates + + +#### 参数 + +- **namespace** (**路径参数**): string,必需 + + }}">namespace + +- **body**: }}">DeleteOptions + +- **continue** (**查询参数**): string + + }}">continue + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldSelector** (**查询参数**): string + + }}">fieldSelector + +- **gracePeriodSeconds** (**查询参数**): integer + + }}">gracePeriodSeconds + +- **labelSelector** (**查询参数**): string + + }}">labelSelector + +- **limit** (**查询参数**): integer + + }}">limit + +- **pretty** (**查询参数**): string + + }}">pretty + +- **propagationPolicy** (**查询参数**): string + + }}">propagationPolicy + +- **resourceVersion** (**查询参数**): string + + }}">resourceVersion + +- **resourceVersionMatch** (**查询参数**): string + + }}">resourceVersionMatch + +- **sendInitialEvents** (**查询参数**): boolean + + }}">sendInitialEvents + +- **timeoutSeconds** (**查询参数**): integer + + }}">timeoutSeconds + + +#### 响应 + +200 (}}">Status): OK + +401: Unauthorized diff --git a/content/zh-cn/docs/reference/kubernetes-api/cluster-resources/namespace-v1.md b/content/zh-cn/docs/reference/kubernetes-api/cluster-resources/namespace-v1.md index 6573a682254d3..8fec41162de66 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/cluster-resources/namespace-v1.md +++ b/content/zh-cn/docs/reference/kubernetes-api/cluster-resources/namespace-v1.md @@ -6,7 +6,7 @@ api_metadata: content_type: "api_reference" description: "Namespace 为名字提供作用域。" title: "Namespace" -weight: 2 +weight: 7 --- @@ -69,6 +69,12 @@ NamespaceSpec 用于描述 Namespace 的属性。 finalizers 是一个不透明的值列表,只有此列表为空时才能从存储中永久删除对象。 更多信息: https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/namespaces/ + + + **原子性:将在合并期间被替换** + ## NamespaceStatus {#NamespaceStatus} **补丁策略:基于 `type` 健合并** - + + **Map:键 `type` 的唯一值将在合并期间保留** + 表示命名空间当前状态的最新可用状况。 diff --git a/content/zh-cn/docs/reference/kubernetes-api/common-definitions/delete-options.md b/content/zh-cn/docs/reference/kubernetes-api/common-definitions/delete-options.md index a41d2b4207caa..feb4bf20a2e6c 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/common-definitions/delete-options.md +++ b/content/zh-cn/docs/reference/kubernetes-api/common-definitions/delete-options.md @@ -43,10 +43,14 @@ DeleteOptions may be provided when deleting an API object. - **dryRun** ([]string) + **原子性:将在合并期间被替换** + 该值如果存在,则表示不应保留修改。 无效或无法识别的 `dryRun` 指令将导致错误响应并且不会进一步处理请求。有效值为: @@ -124,4 +128,8 @@ DeleteOptions may be provided when deleting an API object. 表示是否以及如何执行垃圾收集。可以设置此字段或 `orphanDependents` 字段,但不能同时设置二者。 默认策略由 `metadata.finalizers` 中现有终结器(Finalizer)集合和特定资源的默认策略决定。 - 可接受的值为:`Orphan` - 令依赖对象成为孤儿对象;`Background` - 允许垃圾收集器在后台删除依赖项;`Foreground` - 一个级联策略,前台删除所有依赖项。 + 可选值为: + + - `Orphan` 令依赖对象成为孤儿对象; + - `Background` 允许垃圾收集器在后台删除依赖项; + - `Foreground` 一个级联策略,前台删除所有依赖项。 diff --git a/content/zh-cn/docs/reference/kubernetes-api/common-definitions/label-selector.md b/content/zh-cn/docs/reference/kubernetes-api/common-definitions/label-selector.md index 66bdf7f73f23c..03196dacf6608 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/common-definitions/label-selector.md +++ b/content/zh-cn/docs/reference/kubernetes-api/common-definitions/label-selector.md @@ -4,7 +4,7 @@ api_metadata: import: "k8s.io/apimachinery/pkg/apis/meta/v1" kind: "LabelSelector" content_type: "api_reference" -description: "标签选择器是对一组资源的标签查询。" +description: "标签选择算符是对一组资源的标签查询。" title: "LabelSelector" weight: 2 --- @@ -25,15 +25,17 @@ auto_generated: true -标签选择器是对一组资源的标签查询。 +标签选择算符是对一组资源的标签查询。 `matchLabels` 和 `matchExpressions` 的结果按逻辑与的关系组合。 -一个 `empty` 标签选择器匹配所有对象。一个 `null` 标签选择器不匹配任何对象。 +一个 `empty` 标签选择算符匹配所有对象。一个 `null` 标签选择算符不匹配任何对象。
- **matchExpressions** ([]LabelSelectorRequirement) - `matchExpressions` 是标签选择器要求的列表,这些要求的结果按逻辑与的关系来计算。 + **原子性:将在合并期间被替换** + + `matchExpressions` 是标签选择算符要求的列表,这些要求的结果按逻辑与的关系来计算。 - **标签选择器要求是包含值、键和关联键和值的运算符的选择器。** + **标签选择算符要求是包含值、键和关联键和值的运算符的选择算符。** - **matchExpressions.values** ([]string) + **原子性:将在合并期间被替换** + `values` 是一个字符串值数组。如果运算符为 `In` 或 `NotIn`,则 `values` 数组必须为非空。 如果运算符是 `Exists` 或 `DoesNotExist`,则 `values` 数组必须为空。 该数组在策略性合并补丁(Strategic Merge Patch)期间被替换。 @@ -89,5 +97,5 @@ A label selector is a label query over a set of resources. The result of matchLa `matchLabels` 映射中的单个 {`key`,`value`} 键值对相当于 `matchExpressions` 的一个元素, 其键字段为 `key`,运算符为 `In`,`values` 数组仅包含 `value`。 - + 所表达的需求最终要按逻辑与的关系组合。 diff --git a/content/zh-cn/docs/reference/kubernetes-api/common-definitions/local-object-reference.md b/content/zh-cn/docs/reference/kubernetes-api/common-definitions/local-object-reference.md index 80b46ad9a8f18..f90727b8b59f8 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/common-definitions/local-object-reference.md +++ b/content/zh-cn/docs/reference/kubernetes-api/common-definitions/local-object-reference.md @@ -34,13 +34,10 @@ LocalObjectReference 包含足够的信息,可以让你在同一命名空间 - **name** (string) - 被引用者的名称。 - 更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names/#names。 - - - - + 被引用者的名称。该字段实际上是必需的,但由于向后兼容性允许为空。 + 这种类型的实例如果此处具有空值,几乎肯定是错误的。 + 更多信息:https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names/#names。 diff --git a/content/zh-cn/docs/reference/kubernetes-api/common-definitions/object-meta.md b/content/zh-cn/docs/reference/kubernetes-api/common-definitions/object-meta.md index 6ab601689e3c8..c3281cec83edc 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/common-definitions/object-meta.md +++ b/content/zh-cn/docs/reference/kubernetes-api/common-definitions/object-meta.md @@ -8,7 +8,6 @@ description: "ObjectMeta 是所有持久化资源必须具有的元数据,其 title: "ObjectMeta" weight: 7 --- - + generateName 是一个可选前缀,由服务器使用,**仅在**未提供 name 字段时生成唯一名称。 如果使用此字段,则返回给客户端的名称将与传递的名称不同。该值还将与唯一的后缀组合。 提供的值与 name 字段具有相同的验证规则,并且可能会根据所需的后缀长度被截断,以使该值在服务器上唯一。 @@ -54,7 +54,8 @@ ObjectMeta 是所有持久化资源必须具有的元数据,其中包括用户 Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency --> - 如果指定了此字段并且生成的名称存在,则服务器将不会返回 409 ——相反,它将返回 201 Created 或 500, + + 如果指定了此字段并且生成的名称存在,则服务器将不会返回 409。相反,它将返回 201 Created 或 500, 原因是 ServerTimeout 指示在分配的时间内找不到唯一名称,客户端应重试(可选,在 Retry-After 标头中指定的时间之后)。 仅在未指定 name 时应用。更多信息: @@ -68,7 +69,7 @@ ObjectMeta 是所有持久化资源必须具有的元数据,其中包括用户 Must be a DNS_LABEL. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces --> - namespace 定义了一个值空间,其中每个名称必须唯一。空命名空间相当于 “default” 命名空间,但 “default” 是规范表示。 + namespace 定义了一个值空间,其中每个名称必须唯一。空命名空间相当于 “default” 命名空间,但 “default” 是规范的表示。 并非所有对象都需要限定在命名空间中——这些对象的此字段的值将为空。 必须是 DNS_LABEL。无法更新。更多信息: @@ -94,11 +95,19 @@ ObjectMeta 是所有持久化资源必须具有的元数据,其中包括用户 它们不可查询,在修改对象时应保留。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/annotations - + ### 系统字段 {#System} - **finalizers** ([]string) + + + **集合:唯一值将在合并期间被保留** + @@ -115,6 +124,12 @@ ObjectMeta 是所有持久化资源必须具有的元数据,其中包括用户 - **managedFields** ([]ManagedFieldsEntry) + + + **原子性:将在合并期间被替换** + + + manager 是管理这些字段的工作流的标识符。 - **managedFields.operation** (string) @@ -228,6 +247,8 @@ ObjectMeta 是所有持久化资源必须具有的元数据,其中包括用户 必选 - + - **ownerReferences.apiVersion** (string),必需 + + + 被引用资源的 API 版本。 - - **ownerReferences.kind** (string),必选 + - **ownerReferences.kind** (string),必需 + + - 被引用资源的类别。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - - **ownerReferences.name** (string),必选 + - **ownerReferences.name** (string),必需 - + 被引用资源的名称。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names/ - - **ownerReferences.uid** (string),必选 + - **ownerReferences.uid** (string),必需 - + 被引用资源的 uid。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names#uids @@ -274,6 +308,7 @@ ObjectMeta 是所有持久化资源必须具有的元数据,其中包括用户 + 如果为 true,**并且** 如果属主具有 “foregroundDeletion” 终结器, 则在删除此引用之前,无法从键值存储中删除属主。 默认为 false。要设置此字段,用户需要属主的 “delete” 权限, @@ -281,11 +316,16 @@ ObjectMeta 是所有持久化资源必须具有的元数据,其中包括用户 - **ownerReferences.controller** (boolean) - + + 如果为 true,则此引用指向管理的控制器。 - -### 只读字段 {#Read-only} + +### 只读字段 {#Read-only} - **creationTimestamp** (Time) @@ -297,6 +337,7 @@ ObjectMeta 是所有持久化资源必须具有的元数据,其中包括用户 *Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.* --> + creationTimestamp 是一个时间戳,表示创建此对象时的服务器时间。 不能保证在单独的操作中按发生前的顺序设置。 客户端不得设置此值。它以 RFC3339 形式表示,并采用 UTC。 @@ -313,6 +354,7 @@ ObjectMeta 是所有持久化资源必须具有的元数据,其中包括用户 + 此对象从系统中删除之前允许正常终止的秒数。 仅当设置了 deletionTimestamp 时才设置。 只能缩短。只读。 @@ -342,6 +384,7 @@ ObjectMeta 是所有持久化资源必须具有的元数据,其中包括用户 *Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.* --> + 请求体面删除时由系统填充。只读。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata @@ -354,6 +397,7 @@ ObjectMeta 是所有持久化资源必须具有的元数据,其中包括用户 + 表示期望状态的特定生成的序列号。由系统填充。只读。 - **resourceVersion** (string) @@ -363,6 +407,7 @@ ObjectMeta 是所有持久化资源必须具有的元数据,其中包括用户 Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency --> + 一个不透明的值,表示此对象的内部版本,客户端可以使用该值来确定对象是否已被更改。 可用于乐观并发、变更检测以及对资源或资源集的监听操作。 客户端必须将这些值视为不透明的,且未更改地传回服务器。 @@ -378,6 +423,7 @@ ObjectMeta 是所有持久化资源必须具有的元数据,其中包括用户 DEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release. --> + selfLink 是表示此对象的 URL。由系统填充。只读。 **已弃用**。Kubernetes 将在 1.20 版本中停止传播该字段,并计划在 1.21 版本中删除该字段。 diff --git a/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/csi-node-v1.md b/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/csi-node-v1.md index f0cafae20bef0..a615229aa2e06 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/csi-node-v1.md +++ b/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/csi-node-v1.md @@ -6,7 +6,7 @@ api_metadata: content_type: "api_reference" description: "CSINode 包含节点上安装的所有 CSI 驱动有关的信息。" title: "CSINode" -weight: 9 +weight: 4 --- `apiVersion: storage.k8s.io/v1` @@ -68,6 +68,8 @@ CSINodeSpec 包含一个节点上安装的所有 CSI 驱动规约有关的信息 *Patch strategy: merge on key `name`* + *Map: unique values on key name will be kept during a merge* + drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty. @@ -81,6 +83,8 @@ CSINodeSpec 包含一个节点上安装的所有 CSI 驱动规约有关的信息 **补丁策略:按照键 `name` 合并** + **映射:键 `name` 的唯一值将在合并过程中保留** + drivers 是节点上存在的所有 CSI 驱动的信息列表。如果列表中的所有驱动均被卸载,则此字段可以为空。 @@ -136,11 +140,15 @@ CSINodeSpec 包含一个节点上安装的所有 CSI 驱动规约有关的信息 - **drivers.topologyKeys** ([]string) + **原子性:合并期间将被替换** + topologyKeys 是驱动支持的键的列表。 在集群上初始化一个驱动时,该驱动将提供一组自己理解的拓扑键 (例如 “company.com/zone”、“company.com/region”)。 diff --git a/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-v1.md b/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-v1.md index 9ee059630398f..6422cfb166ed9 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-v1.md +++ b/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-v1.md @@ -6,7 +6,7 @@ api_metadata: content_type: "api_reference" description: "PersistentVolume (PV) 是管理员制备的一个存储资源。" title: "PersistentVolume" -weight: 5 +weight: 7 --- `apiVersion: v1` @@ -39,15 +40,13 @@ https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes - - **metadata** (}}">ObjectMeta) 标准的对象元数据。更多信息: @@ -58,12 +57,18 @@ https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes spec 定义了集群所拥有的持久卷的规约。由管理员进行制备。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#persistent-volumes + - **status** (}}">PersistentVolumeStatus) status 表示持久卷的当前信息/状态。该值由系统填充,只读。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#persistent-volumes ## PersistentVolumeSpec {#PersistentVolumeSpec} + @@ -73,6 +78,9 @@ PersistentVolumeSpec 是持久卷的规约。 - **accessModes** ([]string) + **原子:将在合并期间被替换** + accessModes 包含可以挂载卷的所有方式。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#access-modes @@ -95,9 +105,11 @@ PersistentVolumeSpec 是持久卷的规约。 claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding - **mountOptions** ([]string) + + *Atomic: will be replaced during a merge* + mountOptions is the list of mount options, e.g. ["ro", "soft"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options --> - - **claimRef** (}}">ObjectReference) claimRef 是 PersistentVolume 和 PersistentVolumeClaim 之间双向绑定的一部分。 @@ -106,18 +118,20 @@ PersistentVolumeSpec 是持久卷的规约。 - **mountOptions** ([]string) + **原子:将在合并期间被替换** + mountOptions 是挂载选项的列表,例如 ["ro", "soft"]。 针对此字段无合法性检查——如果某选项无效,则只是挂载会失败。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes/#mount-options - - **nodeAffinity** (VolumeNodeAffinity) nodeAffinity 定义可以从哪些节点访问此卷的约束限制。此字段会影响调度使用此卷的 Pod。 @@ -127,26 +141,13 @@ PersistentVolumeSpec 是持久卷的规约。 + - **nodeAffinity.required** (NodeSelector) required 指定必须满足的硬性节点约束。 @@ -155,20 +156,51 @@ PersistentVolumeSpec 是持久卷的规约。 **节点选择器表示在一组节点上一个或多个标签查询结果的并集; 也就是说,它表示由节点选择器条件表示的选择器的逻辑或计算结果。** + + - **nodeAffinity.required.nodeSelectorTerms** ([]NodeSelectorTerm),必需 + **原子:将在合并期间被替换** + 必需。节点选择器条件的列表。这些条件是逻辑或的计算结果。 **一个 null 或空的节点选择器条件不会与任何对象匹配。这些条件会按逻辑与的关系来计算。 TopologySelectorTerm 类别实现了 NodeSelectorTerm 的子集。** + + + - **nodeAffinity.required.nodeSelectorTerms.matchExpressions** ([]}}">NodeSelectorRequirement) + + **原子:将在合并期间被替换** + 基于节点标签所设置的节点选择器要求的列表。 - **nodeAffinity.required.nodeSelectorTerms.matchFields** ([]}}">NodeSelectorRequirement) + **原子:将在合并期间被替换** + 基于节点字段所设置的节点选择器要求的列表。 - - **persistentVolumeReclaimPolicy** (string) persistentVolumeReclaimPolicy 定义当从持久卷声明释放持久卷时会发生什么。 @@ -187,38 +218,54 @@ PersistentVolumeSpec 是持久卷的规约。 +- **volumeAttributesClassName** (string) + Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). +--> - **storageClassName** (string) storageClassName 是这个持久卷所属于的 StorageClass 的名称。 空值意味着此卷不属于任何 StorageClass。 +- **volumeAttributesClassName** (string) + + 此持久卷所属的 VolumeAttributesClass 的名称。不能为空。 + 当此字段未设置时,表示此卷不属于任何 VolumeAttributesClass。 + 此字段是可变更的,在某个卷已被成功更新为新类后可以由 CSI 驱动更改此字段。对于未绑定的 PersistentVolume, + volumeAttributesClassName 将在绑定过程中与未绑定的 PersistentVolumeClaim 进行匹配。 + 这是一个 Beta 字段,需要启用 VolumeAttributesClass 特性(默认关闭)。 + + - **volumeMode** (string) volumeMode 定义一个卷是带着已格式化的文件系统来使用还是保持在原始块状态来使用。 当 spec 中未包含此字段时,意味着取值为 Filesystem。 ### Local + - - **hostPath** (HostPathVolumeSource) hostPath 表示主机上的目录,由开发或测试人员进行制备。hostPath 仅对单节点开发和测试有用! @@ -247,13 +294,13 @@ PersistentVolumeSpec 是持久卷的规约。 *Local represents directly-attached storage with node affinity (Beta feature)* - **local.path** (string), required + path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...). - **local.fsType** (string) fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a filesystem if unspecified. --> - - **local** (LocalVolumeSource) local 表示具有节点亲和性的直连式存储。 @@ -274,8 +321,8 @@ PersistentVolumeSpec 是持久卷的规约。 - - **azureDisk** (AzureDiskVolumeSource) azureDisk 表示主机上挂载的 Azure Data Disk 并绑定挂载到 Pod 上。 @@ -353,26 +399,16 @@ PersistentVolumeSpec 是持久卷的规约。 - **azureDisk.diskName** (string),必需 @@ -387,6 +423,20 @@ PersistentVolumeSpec 是持久卷的规约。 cachingMode 是主机缓存(Host Caching)模式:None、Read Only、Read Write。 + + - **azureDisk.fsType** (string) fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。 @@ -395,9 +445,11 @@ PersistentVolumeSpec 是持久卷的规约。 - **azureDisk.kind** (string) kind 预期值包括: + - Shared:每个存储帐户多个 Blob 磁盘; - Dedicated:每个存储帐户单个 Blob 磁盘; - Managed:azure 托管的数据盘(仅托管的可用性集合中)。 + 默认为 Shared。 - **azureDisk.readOnly** (boolean) @@ -408,13 +460,24 @@ PersistentVolumeSpec 是持久卷的规约。 - **azureFile** (AzureFilePersistentVolumeSource) azureFile represents an Azure File Service mount on the host and bind mount to the pod. + *AzureFile represents an Azure File Service mount on the host and bind mount to the pod.* +--> +- **azureFile** (AzureFilePersistentVolumeSource) + + azureDisk 表示主机上挂载并绑定挂载到 Pod 上的 Azure File Service。 + + **azureFile 表示主机上挂载的并绑定挂载到 Pod 上的 Azure File Service。** + + - -- **azureFile** (AzureFilePersistentVolumeSource) - - azureDisk 表示主机上挂载的 Azure File Service 并绑定挂载到 Pod 上。 - - - **azureFile 表示主机上挂载的 Azure File Service 并绑定挂载到 Pod 上。** + --> - **azureFile.secretName** (string),必需 @@ -457,7 +513,6 @@ PersistentVolumeSpec 是持久卷的规约。 *Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.* --> - - **cephfs** (CephFSPersistentVolumeSource) cephfs 表示在主机上挂载的 Ceph FS,该文件系统挂载与 Pod 的生命周期相同。 @@ -467,13 +522,26 @@ PersistentVolumeSpec 是持久卷的规约。 + + - **cephfs.monitors** ([]string),必需 + **原子:将在合并期间被替换** + + monitors 是必需的。monitors 是 Ceph 监测组件的集合。更多信息: + https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + + - - **cephfs.monitors** ([]string),必需 - - monitors 是必需的。monitors 是 Ceph 监测的集合。更多信息: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it - - **cephfs.path** (string) path 是可选的。用作挂载的根,而不是完整的 Ceph 树,默认为 /。 @@ -509,9 +572,11 @@ PersistentVolumeSpec 是持久卷的规约。 *SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace* - **cephfs.secretRef.name** (string) + name is unique within a namespace to reference a secret resource. - **cephfs.secretRef.namespace** (string) + namespace defines the space within which the secret name must be unique. - **cephfs.user** (string) @@ -548,7 +613,6 @@ PersistentVolumeSpec 是持久卷的规约。 *Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.* --> - - **cinder** (CinderPersistentVolumeSource) cinder 表示 kubelet 主机上挂接和挂载的 Cinder 卷。更多信息: @@ -560,6 +624,7 @@ PersistentVolumeSpec 是持久卷的规约。 @@ -589,12 +655,14 @@ PersistentVolumeSpec 是持久卷的规约。 @@ -722,7 +794,7 @@ PersistentVolumeSpec 是持久卷的规约。 - **csi.nodeExpandSecretRef** (SecretReference) - nodeExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeExpandVolume call. This is a beta field which is enabled default by CSINodeExpandSecret feature gate. This field is optional, may be omitted if no secret is required. If the secret object contains more than one secret, all secrets are passed. + nodeExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeExpandVolume call. This field is optional, may be omitted if no secret is required. If the secret object contains more than one secret, all secrets are passed. *SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace* @@ -743,8 +815,7 @@ PersistentVolumeSpec 是持久卷的规约。 - **csi.nodeExpandSecretRef** (SecretReference) nodeExpandSecretRef 是对包含敏感信息的 Secret 对象的引用, - 从而传递到 CSI 驱动以完成 CSI NodeExpandVolume 和 NodeUnpublishVolume 调用。 - 这是一个 Beta 字段,通过 CSINodeExpandSecret 特性门控默认启用。 + 从而传递到 CSI 驱动以完成 CSI NodeExpandVolume 调用。 此字段是可选的,且如果不需要 Secret,则此字段可以为空。 如果 Secret 对象包含多个 Secret,则所有 Secret 被传递。 @@ -869,14 +940,6 @@ PersistentVolumeSpec 是持久卷的规约。 - **fc.readOnly** (boolean) readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. - - - **fc.targetWWNs** ([]string) - - targetWWNs is Optional: FC target worldwide names (WWNs) - - - **fc.wwids** ([]string) - - wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. --> - **fc.fsType** (string) @@ -893,12 +956,30 @@ PersistentVolumeSpec 是持久卷的规约。 readOnly 是可选的。默认为 false(读/写)。 此处 readOnly 将在 VolumeMounts 中强制设置 readOnly。 + + + - **fc.targetWWNs** ([]string) + + **原子:将在合并期间被替换** + targetWWNs 是可选的。FC 目标全球名称(WWN)。 - **fc.wwids** ([]string) + **原子:将在合并期间被替换** + wwids 是可选的。FC 卷全球识别号(wwids)。 必须设置 wwids 或 targetWWNs 及 lun 的组合,但不能同时设置两者。 @@ -910,7 +991,6 @@ PersistentVolumeSpec 是持久卷的规约。 *FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.* --> - - **flexVolume** (FlexPersistentVolumeSource) flexVolume 表示使用基于 exec 的插件制备/挂接的通用卷资源。 @@ -920,9 +1000,11 @@ PersistentVolumeSpec 是持久卷的规约。 - - **flocker** (FlockerVolumeSource) flocker 表示挂接到 kubelet 的主机并暴露给 Pod 供其使用的 Flocker 卷。 @@ -1018,6 +1102,7 @@ PersistentVolumeSpec 是持久卷的规约。 - - **gcePersistentDisk** (GCEPersistentDiskVolumeSource) gcePersistentDisk 表示挂接到 kubelet 的主机随后暴露给 Pod 的一个 GCE Disk 资源。 @@ -1040,15 +1124,19 @@ PersistentVolumeSpec 是持久卷的规约。 @@ -1078,17 +1166,16 @@ PersistentVolumeSpec 是持久卷的规约。 - **glusterfs** (GlusterfsPersistentVolumeSource) glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md ---> + + *Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.* +--> - **glusterfs** (GlusterfsPersistentVolumeSource) glusterfs 表示关联到主机并暴露给 Pod 的 Glusterfs 卷。由管理员配置。 更多信息:https://examples.k8s.io/volumes/glusterfs/README.md - **表示在 Pod 生命周期内一直存在的 Glusterfs 挂载卷。Glusterfs 卷不支持属主管理或 SELinux 重标记。** @@ -1150,12 +1236,15 @@ PersistentVolumeSpec 是持久卷的规约。 @@ -1182,6 +1271,7 @@ PersistentVolumeSpec 是持久卷的规约。 chapAuthSession defines whether support iSCSI Session CHAP authentication - **iscsi.fsType** (string) + fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi --> @@ -1205,10 +1295,13 @@ PersistentVolumeSpec 是持久卷的规约。 initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \:\ will be created for the connection. - **iscsi.iscsiInterface** (string) + iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). - **iscsi.portals** ([]string) + *Atomic: will be replaced during a merge* + portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). - **iscsi.readOnly** (boolean) @@ -1227,6 +1320,8 @@ PersistentVolumeSpec 是持久卷的规约。 - **iscsi.portals** ([]string) + **原子:将在合并期间被替换** + portals 是 iSCSI 目标门户列表(iSCSI Target Portal List)。 如果不是默认端口(通常是 TCP 端口 860 和 3260),则 Portal 为 IP 或 ip_addr:port。 @@ -1243,6 +1338,7 @@ PersistentVolumeSpec 是持久卷的规约。 *SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace* - **iscsi.secretRef.name** (string) + name is unique within a namespace to reference a secret resource. - **iscsi.secretRef.namespace** (string) @@ -1267,22 +1363,24 @@ PersistentVolumeSpec 是持久卷的规约。 - - **nfs** (NFSVolumeSource) nfs 表示主机上挂载的 NFS。由管理员进行制备。更多信息: @@ -1308,18 +1406,20 @@ PersistentVolumeSpec 是持久卷的规约。 - - **photonPersistentDisk** (PhotonPersistentDiskVolumeSource) photonPersistentDisk 表示 kubelet 主机上挂接和挂载的 PhotonController 持久磁盘。 @@ -1338,21 +1438,24 @@ PersistentVolumeSpec 是持久卷的规约。 - - **portworxVolume** (PortworxVolumeSource) portworxVolume 表示 kubelet 主机上挂接和挂载的 portworx 卷。 @@ -1382,12 +1485,13 @@ PersistentVolumeSpec 是持久卷的规约。 *Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.* - **quobyte.registry** (string), required + registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes - **quobyte.volume** (string), required + volume is a string that references an already created Quobyte volume by name. --> - - **quobyte** (QuobyteVolumeSource) quobyte 表示在共享 Pod 生命周期的主机上挂载的 Quobyte。 @@ -1406,15 +1510,19 @@ PersistentVolumeSpec 是持久卷的规约。 @@ -1436,15 +1544,20 @@ PersistentVolumeSpec 是持久卷的规约。 @@ -1463,6 +1576,8 @@ PersistentVolumeSpec 是持久卷的规约。 - **rbd.monitors** ([]string),必需 + **原子:将在合并期间被替换** + monitors 是 Ceph 监测的集合。更多信息: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it @@ -1472,12 +1587,15 @@ PersistentVolumeSpec 是持久卷的规约。 fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - **rbd.keyring** (string) + keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - **rbd.pool** (string) + pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - **rbd.readOnly** (boolean) + readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it --> @@ -1511,12 +1629,15 @@ PersistentVolumeSpec 是持久卷的规约。 *SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace* - **rbd.secretRef.name** (string) + name is unique within a namespace to reference a secret resource. - **rbd.secretRef.namespace** (string) + namespace defines the space within which the secret name must be unique. - **rbd.user** (string) + user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it --> @@ -1550,6 +1671,7 @@ PersistentVolumeSpec 是持久卷的规约。 *ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume* - **scaleIO.gateway** (string), required + gateway is the host address of the ScaleIO API Gateway. --> @@ -1566,15 +1688,18 @@ PersistentVolumeSpec 是持久卷的规约。 @@ -1595,15 +1720,19 @@ PersistentVolumeSpec 是持久卷的规约。 @@ -1626,15 +1755,19 @@ PersistentVolumeSpec 是持久卷的规约。 @@ -1657,18 +1790,20 @@ PersistentVolumeSpec 是持久卷的规约。 - - **storageos** (StorageOSPersistentVolumeSource) storageOS 表示一个 StorageOS 卷,该卷被挂接到 kubelet 的主机并挂载到 Pod 中。更多信息: @@ -1688,12 +1823,15 @@ PersistentVolumeSpec 是持久卷的规约。 @@ -1715,24 +1853,28 @@ PersistentVolumeSpec 是持久卷的规约。 - - **vsphereVolume** (VsphereVirtualDiskVolumeSource) vsphereVolume 表示 kubelet 主机上挂接和挂载的 vSphere 卷。 @@ -1770,8 +1912,7 @@ PersistentVolumeStatus 是持久卷的当前状态。 - **lastPhaseTransitionTime** (Time) lastPhaseTransitionTime is the time the phase transitioned from one to another and automatically - resets to current time everytime a volume phase transitions. This is an alpha field and requires - enabling PersistentVolumeLastPhaseTransitionTime feature. + resets to current time everytime a volume phase transitions. *Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. @@ -1780,22 +1921,23 @@ PersistentVolumeStatus 是持久卷的当前状态。 - **lastPhaseTransitionTime** (Time) lastPhaseTransitionTime 是从一个阶段转换到另一个阶段的时间,每次卷阶段转换时都会自动重置为当前时间。 - 这是一个 Alpha 字段,需要启用 PersistentVolumeLastPhaseTransitionTime 特性。 **Time 是 time.Time 的包装器,支持正确编组为 YAML 和 JSON,它为 time 包提供的许多工厂方法提供了包装器。** - - **message** (string) message 是一条人类可读的消息,指明有关卷为何处于此状态的详细信息。 @@ -1810,6 +1952,7 @@ PersistentVolumeStatus 是持久卷的当前状态。 reason 是一个描述任何故障的简短 CamelCase 字符串,用于机器解析并在 CLI 中整齐地显示。 ## PersistentVolumeList {#PersistentVolumeList} + @@ -1823,12 +1966,13 @@ PersistentVolumeList 是 PersistentVolume 各项的列表。 - - **metadata** (}}">ListMeta) 标准的列表元数据。更多信息: @@ -1849,7 +1993,9 @@ PersistentVolumeList 是 PersistentVolume 各项的列表。
### `get` 读取指定的 PersistentVolume + #### HTTP 请求 + GET /api/v1/persistentvolumes/{name} #### 参数 + - **name** (**路径参数**): string,必需 - PersistentVolume 的名称 + PersistentVolume 的名称。 - **pretty** (**查询参数**): string @@ -1872,6 +2019,7 @@ GET /api/v1/persistentvolumes/{name} #### Response --> #### 响应 + 200 (}}">PersistentVolume): OK 401: Unauthorized @@ -1881,7 +2029,9 @@ GET /api/v1/persistentvolumes/{name} #### HTTP Request --> ### `get` 读取指定的 PersistentVolume 的状态 + #### HTTP 请求 + GET /api/v1/persistentvolumes/{name}/status #### 参数 + - **name** (**路径参数**): string,必需 - PersistentVolume 的名称 + PersistentVolume 的名称。 - **pretty** (**查询参数**): string @@ -1904,6 +2055,7 @@ GET /api/v1/persistentvolumes/{name}/status #### Response --> #### 响应 + 200 (}}">PersistentVolume): OK 401: Unauthorized @@ -1913,7 +2065,9 @@ GET /api/v1/persistentvolumes/{name}/status #### HTTP Request --> ### `list` 列出或观测类别为 PersistentVolume 的对象 + #### HTTP 请求 + GET /api/v1/persistentvolumes #### 参数 + - **allowWatchBookmarks** (**查询参数**): boolean }}">allowWatchBookmarks @@ -1978,6 +2133,7 @@ GET /api/v1/persistentvolumes #### Response --> #### 响应 + 200 (}}">PersistentVolumeList): OK 401: Unauthorized @@ -1987,7 +2143,9 @@ GET /api/v1/persistentvolumes #### HTTP Request --> ### `create` 创建 PersistentVolume + #### HTTP 请求 + POST /api/v1/persistentvolumes #### 参数 + - **body**: }}">PersistentVolume,必需 + - **dryRun** (**查询参数**): string }}">dryRun @@ -2020,6 +2180,7 @@ POST /api/v1/persistentvolumes #### Response --> #### 响应 + 200 (}}">PersistentVolume): OK 201 (}}">PersistentVolume): Created @@ -2033,7 +2194,9 @@ POST /api/v1/persistentvolumes #### HTTP Request --> ### `update` 替换指定的 PersistentVolume + #### HTTP 请求 + PUT /api/v1/persistentvolumes/{name} #### 参数 + - **name** (**路径参数**): string,必需 - PersistentVolume 的名称 + PersistentVolume 的名称。 - **body**: }}">PersistentVolume,必需 @@ -2073,6 +2237,7 @@ PUT /api/v1/persistentvolumes/{name} #### Response --> #### 响应 + 200 (}}">PersistentVolume): OK 201 (}}">PersistentVolume): Created @@ -2084,7 +2249,9 @@ PUT /api/v1/persistentvolumes/{name} #### HTTP Request --> ### `update` 替换指定的 PersistentVolume 的状态 + #### HTTP 请求 + PUT /api/v1/persistentvolumes/{name}/status #### 参数 + - **name** (**路径参数**): string,必需 - PersistentVolume 的名称 + PersistentVolume 的名称。 - **body**: }}">PersistentVolume,必需 @@ -2124,6 +2292,7 @@ PUT /api/v1/persistentvolumes/{name}/status #### Response --> #### 响应 + 200 (}}">PersistentVolume): OK 201 (}}">PersistentVolume): Created @@ -2135,7 +2304,9 @@ PUT /api/v1/persistentvolumes/{name}/status #### HTTP Request --> ### `patch` 部分更新指定的 PersistentVolume + #### HTTP 请求 + PATCH /api/v1/persistentvolumes/{name} #### 参数 + - **name** (**路径参数**): string,必需 - PersistentVolume 的名称 + PersistentVolume 的名称。 - **body**: }}">Patch,必需 @@ -2180,6 +2352,7 @@ PATCH /api/v1/persistentvolumes/{name} #### Response --> #### 响应 + 200 (}}">PersistentVolume): OK 201 (}}">PersistentVolume): Created @@ -2191,7 +2364,9 @@ PATCH /api/v1/persistentvolumes/{name} #### HTTP Request --> ### `patch` 部分更新指定的 PersistentVolume 的状态 + #### HTTP 请求 + PATCH /api/v1/persistentvolumes/{name}/status #### 参数 + - **name** (**路径参数**): string,必需 - PersistentVolume 的名称 + PersistentVolume 的名称。 - **body**: }}">Patch,必需 @@ -2236,6 +2412,7 @@ PATCH /api/v1/persistentvolumes/{name}/status #### Response --> #### 响应 + 200 (}}">PersistentVolume): OK 201 (}}">PersistentVolume): Created @@ -2247,7 +2424,9 @@ PATCH /api/v1/persistentvolumes/{name}/status #### HTTP Request --> ### `delete` 删除 PersistentVolume + #### HTTP 请求 + DELETE /api/v1/persistentvolumes/{name} #### 参数 + - **name** (**路径参数**): string,必需 - PersistentVolume 的名称 + PersistentVolume 的名称。 - **body**: }}">DeleteOptions @@ -2287,6 +2467,7 @@ DELETE /api/v1/persistentvolumes/{name} #### Response --> #### 响应 + 200 (}}">PersistentVolume): OK 202 (}}">PersistentVolume): Accepted @@ -2298,7 +2479,9 @@ DELETE /api/v1/persistentvolumes/{name} #### HTTP Request --> ### `deletecollection` 删除 PersistentVolume 的集合 + #### HTTP 请求 + DELETE /api/v1/persistentvolumes #### 参数 + - **body**: }}">DeleteOptions - **continue** (**查询参数**): string @@ -2371,6 +2555,7 @@ DELETE /api/v1/persistentvolumes #### Response --> #### 响应 + 200 (}}">Status): OK 401: Unauthorized diff --git a/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/storage-class-v1.md b/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/storage-class-v1.md index bfb5910c913e5..1b84faaa8dd89 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/storage-class-v1.md +++ b/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/storage-class-v1.md @@ -6,7 +6,7 @@ api_metadata: content_type: "api_reference" description: "StorageClass 为可以动态制备 PersistentVolume 的存储类描述参数。" title: "StorageClass" -weight: 6 +weight: 8 --- `apiVersion: storage.k8s.io/v1` @@ -24,6 +25,7 @@ weight: 6 `import "k8s.io/api/storage/v1"` ## StorageClass {#StorageClass} + - **metadata** (}}">ObjectMeta) @@ -64,6 +69,7 @@ StorageClass 是不受名字空间作用域限制的;按照 etcd 设定的存 + + - **allowedTopologies.matchLabelExpressions** ([]TopologySelectorLabelRequirement) + + **原子性:将在合并期间被替换** + + 按标签设置的拓扑选择器要求的列表。 + + + **拓扑选择器要求是与给定标签匹配的一个选择器。这是一个 Alpha 特性,将来可能会变更。** + - - **allowedTopologies.matchLabelExpressions** ([]TopologySelectorLabelRequirement) + --> - 按标签设置的拓扑选择器要求的列表。 - - - **拓扑选择器要求是与给定标签匹配的一个选择器。此功能为 Alpha 特性,将来可能会变更。** - - **allowedTopologies.matchLabelExpressions.key** (string),必需 选择器所针对的标签键。 - + - **allowedTopologies.matchLabelExpressions.values** ([]string),必需 - 字符串数组。一个值必须与要选择的标签匹配。values 中的每个条目按逻辑或的关系来计算。 + **原子性:将在合并期间被替换** + + 字符串值的数组。一个值必须与要选择的标签匹配。values 中的每个条目按逻辑或的关系来计算。 - **mountOptions** ([]string) - mountOptions 控制此存储类动态制备的 PersistentVolume 的挂载配置。 - (例如 ["ro", "soft"])。 - 系统对选项作检查——如果有一个选项无效,则这些 PV 的挂载将失败。 + **原子性:将在合并期间被替换** + + mountOptions 控制此存储类动态制备的 PersistentVolume 的挂载配置,例如 ["ro", "soft"]。 + 针对此字段无合法性检查 —— 如果有一个选项无效,则这些 PV 的挂载将失败。 - **parameters** (map[string]string) @@ -134,6 +160,7 @@ StorageClass 是不受名字空间作用域限制的;按照 etcd 设定的存 reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class. Defaults to Delete. - **volumeBindingMode** (string) + volumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature. --> - **reclaimPolicy** (string) @@ -147,6 +174,7 @@ StorageClass 是不受名字空间作用域限制的;按照 etcd 设定的存 只有启用 VolumeScheduling 功能特性的服务器才能使用此字段。 ## StorageClassList {#StorageClassList} + @@ -160,9 +188,11 @@ StorageClassList 是存储类的集合。 - **metadata** (}}">ListMeta) @@ -184,7 +214,9 @@ StorageClassList 是存储类的集合。
### `get` 读取指定的 StorageClass + #### HTTP 请求 + GET /apis/storage.k8s.io/v1/storageclasses/{name} #### 参数 + - **name** (**路径参数**): string,必需 - StorageClass 的名称 + StorageClass 的名称。 - **pretty** (**查询参数**): string @@ -206,6 +239,7 @@ GET /apis/storage.k8s.io/v1/storageclasses/{name} #### Response --> #### 响应 + 200 (}}">StorageClass): OK 401: Unauthorized @@ -215,7 +249,9 @@ GET /apis/storage.k8s.io/v1/storageclasses/{name} #### HTTP Request --> ### `list` 列出或观测类别为 StorageClass 的对象 + #### HTTP 请求 + GET /apis/storage.k8s.io/v1/storageclasses #### 参数 + - **allowWatchBookmarks** (**查询参数**): boolean }}">allowWatchBookmarks @@ -280,6 +317,7 @@ GET /apis/storage.k8s.io/v1/storageclasses #### Response --> #### 响应 + 200 (}}">StorageClassList): OK 401: Unauthorized @@ -289,7 +327,9 @@ GET /apis/storage.k8s.io/v1/storageclasses #### HTTP Request --> ### `create` 创建 StorageClass + #### HTTP 请求 + POST /apis/storage.k8s.io/v1/storageclasses #### 参数 + - **body**: }}">StorageClass,必需 - **dryRun** (**查询参数**): string @@ -323,6 +364,7 @@ POST /apis/storage.k8s.io/v1/storageclasses #### Response --> #### 响应 + 200 (}}">StorageClass): OK 201 (}}">StorageClass): Created @@ -336,7 +378,9 @@ POST /apis/storage.k8s.io/v1/storageclasses #### HTTP Request --> ### `update` 替换指定的 StorageClass + #### HTTP 请求 + PUT /apis/storage.k8s.io/v1/storageclasses/{name} #### 参数 + - **name** (**路径参数**): string,必需 - StorageClass 的名称 + StorageClass 的名称。 - **body**: }}">StorageClass,必需 @@ -376,6 +421,7 @@ PUT /apis/storage.k8s.io/v1/storageclasses/{name} #### Response --> #### 响应 + 200 (}}">StorageClass): OK 201 (}}">StorageClass): Created @@ -387,7 +433,9 @@ PUT /apis/storage.k8s.io/v1/storageclasses/{name} #### HTTP Request --> ### `patch` 部分更新指定的 StorageClass + #### HTTP 请求 + PATCH /apis/storage.k8s.io/v1/storageclasses/{name} #### 参数 + - **name** (**路径参数**): string,必需 - StorageClass 的名称 + StorageClass 的名称。 - **body**: }}">Patch,必需 @@ -432,6 +481,7 @@ PATCH /apis/storage.k8s.io/v1/storageclasses/{name} #### Response --> #### 响应 + 200 (}}">StorageClass): OK 201 (}}">StorageClass): Created @@ -443,7 +493,9 @@ PATCH /apis/storage.k8s.io/v1/storageclasses/{name} #### HTTP Request --> ### `delete` 删除 StorageClass + #### HTTP 请求 + DELETE /apis/storage.k8s.io/v1/storageclasses/{name} #### 参数 + - **name** (**路径参数**): string,必需 - StorageClass 的名称 + StorageClass 的名称。 - **body**: }}">DeleteOptions @@ -483,6 +536,7 @@ DELETE /apis/storage.k8s.io/v1/storageclasses/{name} #### Response --> #### 响应 + 200 (}}">StorageClass): OK 202 (}}">StorageClass): Accepted @@ -494,7 +548,9 @@ DELETE /apis/storage.k8s.io/v1/storageclasses/{name} #### HTTP Request --> ### `deletecollection` 删除 StorageClass 的集合 + #### HTTP 请求 + DELETE /apis/storage.k8s.io/v1/storageclasses #### 参数 + - **body**: }}">DeleteOptions - **continue** (**查询参数**): string @@ -567,6 +624,7 @@ DELETE /apis/storage.k8s.io/v1/storageclasses #### Response --> #### 响应 + 200 (}}">Status): OK 401: Unauthorized diff --git a/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/volume-attributes-class-v1beta1.md b/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/volume-attributes-class-v1beta1.md new file mode 100644 index 0000000000000..77fafbcb6dd29 --- /dev/null +++ b/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/volume-attributes-class-v1beta1.md @@ -0,0 +1,680 @@ +--- +api_metadata: + apiVersion: "storage.k8s.io/v1beta1" + import: "k8s.io/api/storage/v1beta1" + kind: "VolumeAttributesClass" +content_type: "api_reference" +description: "VolumeAttributesClass 表示由 CSI 驱动所定义的可变更卷属性的规约。" +title: "VolumeAttributesClass v1beta1" +weight: 12 +--- + + +`apiVersion: storage.k8s.io/v1beta1` + +`import "k8s.io/api/storage/v1beta1"` + +## VolumeAttributesClass {#VolumeAttributesClass} + + +VolumeAttributesClass 表示由 CSI 驱动所定义的可变更卷属性的规约。 +此类可以在动态制备 PersistentVolumeClaim 期间被指定, +并且可以在制备之后在 PersistentVolumeClaim 规约中更改。 + +
+ +- **apiVersion**: storage.k8s.io/v1beta1 + +- **kind**: VolumeAttributesClass + + +- **metadata** (}}">ObjectMeta) + + 标准的对象元数据。更多信息: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + +- **driverName** (string),必需 + + CSI 驱动的名称。此字段是不可变更的。 + + +- **parameters** (map[string]string) + + parameters 保存由 CSI 驱动所定义的卷属性。这些值对 Kubernetes 是不透明的,被直接传递给 CSI 驱动。 + 下层存储驱动支持更改现有卷的这些属性,但 parameters 字段本身是不可变更的。 + 要触发一次卷更新,应该使用新的参数创建新的 VolumeAttributesClass, + 并且应更新 PersistentVolumeClaim,使之引用新的 VolumeAttributesClass。 + + 此字段是必需的,必须至少包含一个键/值对。键不能为空,参数最多 512 个,累计最大尺寸为 256K。 + 如果 CSI 驱动拒绝无效参数,则目标 PersistentVolumeClaim + 的状态中 modifyVolumeStatus 字段将被设置为 “Infeasible”。 + +## VolumeAttributesClassList {#VolumeAttributesClassList} + + +VolumeAttributesClassList 是 VolumeAttributesClass 对象的集合。 + +
+ +- **apiVersion**: storage.k8s.io/v1beta1 + +- **kind**: VolumeAttributesClassList + + +- **metadata** (}}">ListMeta) + + 标准的列表元数据。更多信息: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + +- **items** ([]}}">VolumeAttributesClass),必需 + + items 是 VolumeAttributesClass 对象的列表。 + + +## 操作 {#Operations} + +
+ +### `get` 读取指定的 VolumeAttributesClass + +#### HTTP 请求 + +GET /apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name} + + +#### 参数 + +- **name** (**路径参数**): string,必需 + + VolumeAttributesClass 的名称。 + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">VolumeAttributesClass): OK + +401: Unauthorized + + +### `list` 列举或监视类别为 VolumeAttributesClass 的对象 + +#### HTTP 请求 + +GET /apis/storage.k8s.io/v1beta1/volumeattributesclasses + + +#### 参数 + +- **allowWatchBookmarks** (**查询参数**): boolean + + }}">allowWatchBookmarks + +- **continue** (**查询参数**): string + + }}">continue + +- **fieldSelector** (**查询参数**): string + + }}">fieldSelector + +- **labelSelector** (**查询参数**): string + + }}">labelSelector + +- **limit** (**查询参数**): integer + + }}">limit + +- **pretty** (**查询参数**): string + + }}">pretty + +- **resourceVersion** (**查询参数**): string + + }}">resourceVersion + +- **resourceVersionMatch** (**查询参数**): string + + }}">resourceVersionMatch + +- **sendInitialEvents** (**查询参数**): boolean + + }}">sendInitialEvents + +- **timeoutSeconds** (**查询参数**): integer + + }}">timeoutSeconds + +- **watch** (**查询参数**): boolean + + }}">watch + + +#### 响应 + +200 (}}">VolumeAttributesClassList): OK + +401: Unauthorized + + +### `create` 创建 VolumeAttributesClass + +#### HTTP 请求 + +POST /apis/storage.k8s.io/v1beta1/volumeattributesclasses + + +#### 参数 + +- **body**: }}">VolumeAttributesClass,必需 + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldManager** (**查询参数**): string + + }}">fieldManager + +- **fieldValidation** (**查询参数**): string + + }}">fieldValidation + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">VolumeAttributesClass): OK + +201 (}}">VolumeAttributesClass): Created + +202 (}}">VolumeAttributesClass): Accepted + +401: Unauthorized + + +### `update` 替换指定的 VolumeAttributesClass + +#### HTTP 请求 + +PUT /apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name} + + +#### 参数 + +- **name** (**路径参数**): string,必需 + + VolumeAttributesClass 的名称。 + +- **body**: }}">VolumeAttributesClass,必需 + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldManager** (**查询参数**): string + + }}">fieldManager + +- **fieldValidation** (**查询参数**): string + + }}">fieldValidation + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">VolumeAttributesClass): OK + +201 (}}">VolumeAttributesClass): Created + +401: Unauthorized + + +### `patch` 部分更新指定的 VolumeAttributesClass + +#### HTTP 请求 + +PATCH /apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name} + + +#### 参数 + +- **name** (**路径参数**): string,必需 + + VolumeAttributesClass 的名称。 + +- **body**: }}">Patch,必需 + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldManager** (**查询参数**): string + + }}">fieldManager + +- **fieldValidation** (**查询参数**): string + + }}">fieldValidation + +- **force** (**查询参数**): boolean + + }}">force + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">VolumeAttributesClass): OK + +201 (}}">VolumeAttributesClass): Created + +401: Unauthorized + + +### `delete` 删除 VolumeAttributesClass + +#### HTTP 请求 + +DELETE /apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name} + + +#### 参数 + +- **name** (**路径参数**): string,必需 + + VolumeAttributesClass 的名称。 + +- **body**: }}">DeleteOptions + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **gracePeriodSeconds** (**查询参数**): integer + + }}">gracePeriodSeconds + +- **pretty** (**查询参数**): string + + }}">pretty + +- **propagationPolicy** (**查询参数**): string + + }}">propagationPolicy + + +#### 响应 + +200 (}}">VolumeAttributesClass): OK + +202 (}}">VolumeAttributesClass): Accepted + +401: Unauthorized + + +### `deletecollection` 删除 VolumeAttributesClass 的集合 + +#### HTTP 请求 + +DELETE /apis/storage.k8s.io/v1beta1/volumeattributesclasses + + +#### 参数 + +- **body**: }}">DeleteOptions + +- **continue** (**查询参数**): string + + }}">continue + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldSelector** (**查询参数**): string + + }}">fieldSelector + +- **gracePeriodSeconds** (**查询参数**): integer + + }}">gracePeriodSeconds + +- **labelSelector** (**查询参数**): string + + }}">labelSelector + +- **limit** (**查询参数**): integer + + }}">limit + +- **pretty** (**查询参数**): string + + }}">pretty + +- **propagationPolicy** (**查询参数**): string + + }}">propagationPolicy + +- **resourceVersion** (**查询参数**): string + + }}">resourceVersion + +- **resourceVersionMatch** (**查询参数**): string + + }}">resourceVersionMatch + +- **sendInitialEvents** (**查询参数**): boolean + + }}">sendInitialEvents + +- **timeoutSeconds** (**查询参数**): integer + + }}">timeoutSeconds + + +#### 响应 + +200 (}}">Status): OK + +401: Unauthorized diff --git a/content/zh-cn/docs/reference/kubernetes-api/workload-resources/controller-revision-v1.md b/content/zh-cn/docs/reference/kubernetes-api/workload-resources/controller-revision-v1.md index 424358eff3561..07a195b27f5ca 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/workload-resources/controller-revision-v1.md +++ b/content/zh-cn/docs/reference/kubernetes-api/workload-resources/controller-revision-v1.md @@ -6,7 +6,7 @@ api_metadata: content_type: "api_reference" description: "ControllerRevision 实现了状态数据的不可变快照。" title: "ControllerRevision" -weight: 7 +weight: 8 --- diff --git a/content/zh-cn/docs/reference/kubernetes-api/workload-resources/deployment-v1.md b/content/zh-cn/docs/reference/kubernetes-api/workload-resources/deployment-v1.md index 8013ef6e220aa..ebcd764dfd8b3 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/workload-resources/deployment-v1.md +++ b/content/zh-cn/docs/reference/kubernetes-api/workload-resources/deployment-v1.md @@ -6,7 +6,7 @@ api_metadata: content_type: "api_reference" description: "Deployment 使得 Pod 和 ReplicaSet 能够进行声明式更新。" title: "Deployment" -weight: 5 +weight: 6 --- @@ -291,7 +291,9 @@ DeploymentStatus 是最近观测到的 Deployment 状态。 - **conditions** ([]DeploymentCondition) *Patch strategy: merge on key `type`* - + + *Map: unique values on key type will be kept during a merge* + Represents the latest available observations of a deployment's current state. @@ -300,7 +302,9 @@ DeploymentStatus 是最近观测到的 Deployment 状态。 - **conditions** ([]DeploymentCondition) **补丁策略:按照键 `type` 合并** - + + **Map:键 `type` 的唯一值将在合并期间保留** + 表示 Deployment 当前状态的最新可用观测值。 diff --git a/content/zh-cn/docs/reference/kubernetes-api/workload-resources/priority-class-v1.md b/content/zh-cn/docs/reference/kubernetes-api/workload-resources/priority-class-v1.md index e05814e115543..7717a4d42ce17 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/workload-resources/priority-class-v1.md +++ b/content/zh-cn/docs/reference/kubernetes-api/workload-resources/priority-class-v1.md @@ -6,7 +6,7 @@ api_metadata: content_type: "api_reference" description: "PriorityClass 定义了从优先级类名到优先级数值的映射。" title: "PriorityClass" -weight: 13 +weight: 14 auto_generated: false --- @@ -18,7 +18,7 @@ api_metadata: content_type: "api_reference" description: "PriorityClass defines mapping from a priority class name to the priority integer value." title: "PriorityClass" -weight: 13 +weight: 14 auto_generated: true --> diff --git a/content/zh-cn/docs/reference/kubernetes-api/workload-resources/replica-set-v1.md b/content/zh-cn/docs/reference/kubernetes-api/workload-resources/replica-set-v1.md index 03f1f42b04c38..f71113f1a6542 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/workload-resources/replica-set-v1.md +++ b/content/zh-cn/docs/reference/kubernetes-api/workload-resources/replica-set-v1.md @@ -164,6 +164,8 @@ ReplicaSetStatus 表示 ReplicaSet 的当前状态。 - **conditions** ([]ReplicaSetCondition) *Patch strategy: merge on key `type`* + + *Map: unique values on key type will be kept during a merge* Represents the latest available observations of a replica set's current state. @@ -173,6 +175,8 @@ ReplicaSetStatus 表示 ReplicaSet 的当前状态。 - **conditions** ([]ReplicaSetCondition) **补丁策略:按照键 `type` 合并** + + **Map:键类型的唯一值将在合并期间保留** 表示副本集当前状态的最新可用观测值。 diff --git a/content/zh-cn/docs/reference/labels-annotations-taints/_index.md b/content/zh-cn/docs/reference/labels-annotations-taints/_index.md index 29dd03faf65ab..51019af0b97ca 100644 --- a/content/zh-cn/docs/reference/labels-annotations-taints/_index.md +++ b/content/zh-cn/docs/reference/labels-annotations-taints/_index.md @@ -572,6 +572,33 @@ feature gate must be enabled for this label to be added to pods. 请注意,[PodIndexLabel](/zh-cn/docs/reference/command-line-tools-reference/feature-gates/) 特性门控必须被启用,才能将此标签添加到 Pod 上。 + +### resource.kubernetes.io/pod-claim-name {#resource-kubernetes-io-pod-claim-name} + +类别:注解 + +示例:`resource.kubernetes.io/pod-claim-name: "my-pod-claim"` + +用于:ResourceClaim + +该注解被赋予自动生成的 ResourceClaim。 +注解的值对应于触发 ResourceClaim 创建的 Pod 在 `.spec` 中的资源声明名称。 +此注解是[动态资源分配](/zh-cn/docs/concepts/scheduling-eviction/dynamic-resource-allocation/)的内部实现细节。 +你不需要读取或修改此注解的值。 + diff --git a/content/zh-cn/docs/reference/labels-annotations-taints/audit-annotations.md b/content/zh-cn/docs/reference/labels-annotations-taints/audit-annotations.md index 16e6194248cc9..4b09f17ac5e02 100644 --- a/content/zh-cn/docs/reference/labels-annotations-taints/audit-annotations.md +++ b/content/zh-cn/docs/reference/labels-annotations-taints/audit-annotations.md @@ -139,7 +139,8 @@ PodSecurity 执行中违反的特定策略及对应字段。 Example: `authorization.k8s.io/decision: "forbid"` -This annotation indicates whether or not a request was authorized in Kubernetes audit logs. +Value must be **forbid** or **allow**. This annotation indicates whether or not a request +was authorized in Kubernetes audit logs. See [Auditing](/docs/tasks/debug/debug-cluster/audit/) for more information. --> @@ -147,6 +148,7 @@ See [Auditing](/docs/tasks/debug/debug-cluster/audit/) for more information. 例子:`authorization.k8s.io/decision: "forbid"` +值必须是 **forbid** 或者 **allow**。 此注解在 Kubernetes 审计日志中表示请求是否获得授权。 有关详细信息,请参阅[审计](/zh-cn/docs/tasks/debug/debug-cluster/audit/)。 diff --git a/content/zh-cn/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm.md b/content/zh-cn/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm.md index 7d752b1e6bdf9..abf59408acdac 100644 --- a/content/zh-cn/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm.md +++ b/content/zh-cn/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm.md @@ -13,18 +13,6 @@ weight: 70 -{{< note >}} - -在本指南中,使用 kubeadm 作为外部 etcd 节点管理工具,请注意 kubeadm 不计划支持此类节点的证书更换或升级。 -对于长期规划是使用 [etcdadm](https://github.com/kubernetes-sigs/etcdadm) 增强工具来管理这些方面。 -{{< /note >}} - 本页概述升级 Kubernetes 集群的步骤。 +Kubernetes 项目建议及时升级到最新的补丁版本,并确保使用受支持的 Kubernetes 版本。 +遵循这一建议有助于保障安全。 + 升级集群的方式取决于你最初部署它的方式、以及后续更改它的方式。 从高层规划的角度看,要执行的步骤是: diff --git a/content/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md b/content/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md index e75ec21f27835..1595945c06dc5 100644 --- a/content/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md +++ b/content/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md @@ -1,14 +1,14 @@ --- title: 升级 kubeadm 集群 content_type: task -weight: 40 +weight: 30 --- @@ -41,6 +41,14 @@ please refer to following pages instead: - [将 kubeadm 集群从 {{< skew currentVersionAddMinor -4 >}} 升级到 {{< skew currentVersionAddMinor -3 >}}](https://v{{< skew currentVersionAddMinor -3 "-" >}}.docs.kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/) - [将 kubeadm 集群从 {{< skew currentVersionAddMinor -5 >}} 升级到 {{< skew currentVersionAddMinor -4 >}}](https://v{{< skew currentVersionAddMinor -4 "-" >}}.docs.kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/) + +Kubernetes 项目建议立即升级到最新的补丁版本,并确保你运行的是受支持的 Kubernetes 次要版本。 +遵循此建议可帮助你保持安全。 + diff --git a/content/zh-cn/docs/tasks/manage-gpus/scheduling-gpus.md b/content/zh-cn/docs/tasks/manage-gpus/scheduling-gpus.md index fa212fabf0271..4a460099da12e 100644 --- a/content/zh-cn/docs/tasks/manage-gpus/scheduling-gpus.md +++ b/content/zh-cn/docs/tasks/manage-gpus/scheduling-gpus.md @@ -49,7 +49,7 @@ GPU vendor. Here are some links to vendors' instructions: 作为集群管理员,你要在节点上安装来自对应硬件厂商的 GPU 驱动程序,并运行来自 GPU 厂商的对应设备插件。以下是一些厂商说明的链接: -* [AMD](https://github.com/RadeonOpenCompute/k8s-device-plugin#deployment) +* [AMD](https://github.com/ROCm/k8s-device-plugin#deployment) * [Intel](https://intel.github.io/intel-device-plugins-for-kubernetes/cmd/gpu_plugin/README.html) * [NVIDIA](https://github.com/NVIDIA/k8s-device-plugin#quick-start) 当 DNS 配置以及其它选项不合理的时候,通过向 Pod 的 `/etc/hosts` 文件中添加条目, 可以在 Pod 级别覆盖对主机名的解析。你可以通过 PodSpec 的 HostAliases 字段来添加这些自定义条目。 -建议通过使用 HostAliases 来进行修改,因为该文件由 Kubelet 管理,并且 -可以在 Pod 创建/重启过程中被重写。 +Kubernetes 项目建议使用 `hostAliases` 字段(Pod `.spec` 的一部分)来修改 DNS 配置, +而不是通过使用 Init 容器或其他方式直接编辑 `/etc/hosts`。 +以其他方式所做的更改可能会在 Pod 创建或重启过程中被 kubelet 重写。 @@ -36,7 +39,7 @@ Modification not using HostAliases is not suggested because the file is managed Start an Nginx Pod which is assigned a Pod IP: --> -## 默认 hosts 文件内容 +## 默认 hosts 文件内容 {#default-hosts-file-content} 让我们从一个 Nginx Pod 开始,该 Pod 被分配一个 IP: @@ -65,7 +68,7 @@ nginx 1/1 Running 0 13s 10.200.0.4 worker0 -主机文件的内容如下所示: +hosts 文件的内容如下所示: ```shell kubectl exec nginx -- cat /etc/hosts @@ -97,7 +100,7 @@ For example: to resolve `foo.local`, `bar.local` to `127.0.0.1` and `foo.remote` `bar.remote` to `10.1.2.3`, you can configure HostAliases for a Pod under `.spec.hostAliases`: --> -## 通过 HostAliases 增加额外条目 +## 通过 HostAliases 增加额外条目 {#adding-additional-entries-with-hostaliases} 除了默认的样板内容,你可以向 `hosts` 文件添加额外的条目。 例如,要将 `foo.local`、`bar.local` 解析为 `127.0.0.1`, diff --git a/content/zh-cn/docs/tutorials/security/apparmor.md b/content/zh-cn/docs/tutorials/security/apparmor.md index 072ea4b1a76fd..7eac3f1a260b8 100644 --- a/content/zh-cn/docs/tutorials/security/apparmor.md +++ b/content/zh-cn/docs/tutorials/security/apparmor.md @@ -220,12 +220,12 @@ profile k8s-apparmor-example-deny-write flags=(attach_disconnected) { ``` 由于不知道 Pod 将被调度到哪里,该配置文件需要加载到所有节点上。 -在本例中,我们将使用 SSH 来安装概要文件, +在本例中,你可以使用 SSH 来安装配置文件, 但是在[使用配置文件设置节点](#setting-up-nodes-with-profiles)中讨论了其他方法。