|
| 1 | +--- |
| 2 | +layout: blog |
| 3 | +title: "聚焦 SIG CLI" |
| 4 | +date: 2023-07-20 |
| 5 | +slug: sig-cli-spotlight-2023 |
| 6 | +--- |
| 7 | + |
| 8 | +<!-- |
| 9 | +layout: blog |
| 10 | +title: "Spotlight on SIG CLI" |
| 11 | +date: 2023-07-20 |
| 12 | +slug: sig-cli-spotlight-2023 |
| 13 | +canonicalUrl: https://www.kubernetes.dev/blog/2023/07/13/sig-cli-spotlight-2023/ |
| 14 | +--> |
| 15 | + |
| 16 | +<!-- |
| 17 | +**Author**: Arpit Agrawal |
| 18 | +--> |
| 19 | +**作者**:Arpit Agrawal |
| 20 | + |
| 21 | +**译者**:Xin Li (Daocloud) |
| 22 | + |
| 23 | +<!-- |
| 24 | +In the world of Kubernetes, managing containerized applications at |
| 25 | +scale requires powerful and efficient tools. The command-line |
| 26 | +interface (CLI) is an integral part of any developer or operator’s |
| 27 | +toolkit, offering a convenient and flexible way to interact with a |
| 28 | +Kubernetes cluster. |
| 29 | +--> |
| 30 | +在 Kubernetes 的世界中,大规模管理容器化应用程序需要强大而高效的工具。 |
| 31 | +命令行界面(CLI)是任何开发人员或操作人员工具包不可或缺的一部分, |
| 32 | +其提供了一种方便灵活的方式与 Kubernetes 集群交互。 |
| 33 | + |
| 34 | +<!-- |
| 35 | +SIG CLI plays a crucial role in improving the [Kubernetes |
| 36 | +CLI](https://github.com/kubernetes/community/tree/master/sig-cli) |
| 37 | +experience by focusing on the development and enhancement of |
| 38 | +`kubectl`, the primary command-line tool for Kubernetes. |
| 39 | +--> |
| 40 | +SIG CLI 通过专注于 Kubernetes 主要命令行工具 `kubectl` 的开发和增强, |
| 41 | +在改善 [Kubernetes CLI](https://github.com/kubernetes/community/tree/master/sig-cli) |
| 42 | +体验方面发挥着至关重要的作用。 |
| 43 | + |
| 44 | +<!-- |
| 45 | +In this SIG CLI Spotlight, Arpit Agrawal, SIG ContribEx-Comms team |
| 46 | +member, talked with [Katrina Verey](https://github.com/KnVerey), Tech |
| 47 | +Lead & Chair of SIG CLI,and [Maciej |
| 48 | +Szulik](https://github.com/soltysh), SIG CLI Batch Lead, about SIG |
| 49 | +CLI, current projects, challenges and how anyone can get involved. |
| 50 | +--> |
| 51 | +在本次 SIG CLI 聚焦中,SIG ContribEx-Comms 团队成员 Arpit Agrawal 与 |
| 52 | +SIG CLI 技术主管兼主席 [Katrina Verey](https://github.com/KnVerey) |
| 53 | +和 SIG CLI Batch 主管 [Maciej Szulik](https://github.com/soltysh) |
| 54 | +讨论了 SIG CLI 当前项目状态和挑战以及如何参与其中。 |
| 55 | + |
| 56 | +<!-- |
| 57 | +So, whether you are a seasoned Kubernetes enthusiast or just getting |
| 58 | +started, understanding the significance of SIG CLI will undoubtedly |
| 59 | +enhance your Kubernetes journey. |
| 60 | +--> |
| 61 | +因此,无论你是经验丰富的 Kubernetes 爱好者还是刚刚入门,了解 |
| 62 | +SIG CLI 的重要性无疑将增强你的 Kubernetes 之旅。 |
| 63 | + |
| 64 | +<!-- |
| 65 | +## Introductions |
| 66 | +
|
| 67 | +**Arpit**: Could you tell us a bit about yourself, your role, and how |
| 68 | +you got involved in SIG CLI? |
| 69 | +--> |
| 70 | +## 简介 |
| 71 | + |
| 72 | +**Arpit**:你们能否向我们介绍一下你自己、你的角色以及你是如何参与 SIG CLI 的? |
| 73 | + |
| 74 | +<!-- |
| 75 | +**Maciej**: I’m one of the technical leads for SIG-CLI. I was working |
| 76 | +on Kubernetes in multiple areas since 2014, and in 2018 I got |
| 77 | +appointed a lead. |
| 78 | +--> |
| 79 | +**Maciej**:我是 SIG-CLI 的技术负责人之一。自 2014 年以来,我一直在多个领域从事 |
| 80 | +Kubernetes 工作,并于 2018 年被任命为负责人。 |
| 81 | + |
| 82 | +<!-- |
| 83 | +**Katrina**: I’ve been working with Kubernetes as an end-user since |
| 84 | +2016, but it was only in late 2019 that I discovered how well SIG CLI |
| 85 | +aligned with my experience from internal projects. I started regularly |
| 86 | +attending meetings and made a few small PRs, and by 2021 I was working |
| 87 | +more deeply with the |
| 88 | +[Kustomize](https://github.com/kubernetes-sigs/kustomize) team |
| 89 | +specifically. Later that year, I was appointed to my current roles as |
| 90 | +subproject owner for Kustomize and KRM Functions, and as SIG CLI Tech |
| 91 | +Lead and Chair. |
| 92 | +--> |
| 93 | +**Katrina**:自 2016 年以来,我一直作为最终用户使用 Kubernetes,但直到 2019 年底, |
| 94 | +我才发现 SIG CLI 与我在内部项目中的经验非常吻合。我开始定期参加会议并提交了一些小型 PR, |
| 95 | +到 2021 年,我专门与 [Kustomize](https://github.com/kubernetes-sigs/kustomize) |
| 96 | +团队进行了更深入的合作。同年晚些时候,我被任命担任目前的职务,担任 Kustomize 和 |
| 97 | +KRM Functions 的子项目 owner 以及 SIG CLI 技术主管和负责人。 |
| 98 | + |
| 99 | +<!-- |
| 100 | +## About SIG CLI |
| 101 | +
|
| 102 | +**Arpit**: Thank you! Could you share with us the purpose and goals of SIG CLI? |
| 103 | +--> |
| 104 | +## 关于 SIG CLI |
| 105 | + |
| 106 | +**Arpit**:谢谢!你们能否与我们分享一下 SIG CLI 的宗旨和目标? |
| 107 | + |
| 108 | +<!-- |
| 109 | +**Maciej**: Our |
| 110 | +[charter](https://github.com/kubernetes/community/tree/master/sig-cli/) |
| 111 | +has the most detailed description, but in few words, we handle all CLI |
| 112 | +tooling that helps you manage your Kubernetes manifests and interact |
| 113 | +with your Kubernetes clusters. |
| 114 | +--> |
| 115 | +**Maciej**:我们的[章程](https://github.com/kubernetes/community/tree/master/sig-cli/)有最详细的描述, |
| 116 | +但简而言之,我们处理所有 CLI 工具,帮助你管理 Kubernetes 资源清单以及与 Kubernetes 集群进行交互。 |
| 117 | + |
| 118 | +<!-- |
| 119 | +**Arpit**: I see. And how does SIG CLI work to promote best-practices |
| 120 | +for CLI development and usage in the cloud native ecosystem? |
| 121 | +--> |
| 122 | +**Arpit**:我明白了。请问 SIG CLI 如何致力于推广云原生生态系统中 CLI 开发和使用的最佳实践? |
| 123 | + |
| 124 | +<!-- |
| 125 | +**Maciej**: Within `kubectl`, we have several on-going efforts that |
| 126 | +try to encourage new contributors to align existing commands to new |
| 127 | +standards. We publish several libraries which hopefully make it easier |
| 128 | +to write CLIs that interact with Kubernetes APIs, such as cli-runtime |
| 129 | +and |
| 130 | +[kyaml](https://github.com/kubernetes-sigs/kustomize/tree/master/kyaml). |
| 131 | +--> |
| 132 | +**Maciej**:在 `kubectl` 中,我们正在进行多项努力,试图鼓励新的贡献者将现有命令与新标准保持一致。 |
| 133 | +我们发布了几个库,希望能够更轻松地编写与 Kubernetes API 交互的 CLI,例如 cli-runtime 和 |
| 134 | +[kyaml](https://github.com/kubernetes-sigs/kustomize/tree/master/kyaml)。 |
| 135 | + |
| 136 | +<!-- |
| 137 | +**Katrina**: We also maintain some interoperability specifications for |
| 138 | +CLI tooling, such as the [KRM Functions |
| 139 | +Specification](https://github.com/kubernetes-sigs/kustomize/blob/master/cmd/config/docs/api-conventions/functions-spec.md) |
| 140 | +(GA) and the new ApplySet |
| 141 | +Specification |
| 142 | +(alpha). |
| 143 | +--> |
| 144 | +**Katrina**:我们还维护一些 CLI 工具的互操作性规范,例如 |
| 145 | +[KRM 函数规范](https://github.com/kubernetes-sigs/kustomize/blob/master/cmd/config/docs/api-conventions/functions-spec.md)(GA) |
| 146 | +和新的 ApplySet 规范(Alpha)。 |
| 147 | + |
| 148 | +<!-- |
| 149 | +## Current projects and challenges |
| 150 | +
|
| 151 | +**Arpit**: Going through the README file, it’s clear SIG CLI has a |
| 152 | +number of subprojects, could you highlight some important ones? |
| 153 | +--> |
| 154 | +## 当前的项目和挑战 |
| 155 | + |
| 156 | +**Arpit**:阅读了一遍 README 文件,发现 SIG CLI 有许多子项目,你能突出讲一些重要的子项目吗? |
| 157 | + |
| 158 | +<!-- |
| 159 | +**Maciej**: The four most active subprojects that are, in my opinion, |
| 160 | +worthy of your time investment would be: |
| 161 | +
|
| 162 | +* [`kubectl`](https://github.com/kubernetes/kubectl): the canonical Kubernetes CLI. |
| 163 | +* [Kustomize](https://github.com/kubernetes-sigs/kustomize): a |
| 164 | + template-free customization tool for Kubernetes yaml manifest files. |
| 165 | +* [KUI](https://kui.tools) - a GUI interface to Kubernetes, think |
| 166 | + `kubectl` on steroids. |
| 167 | +* [`krew`](https://github.com/kubernetes-sigs/krew): a plugin manager for `kubectl`. |
| 168 | +--> |
| 169 | +**Maciej**:在我看来,值得你投入时间的四个最活跃的子项目是: |
| 170 | + |
| 171 | +* [`kubectl`](https://github.com/kubernetes/kubectl):规范的 Kubernetes CLI。 |
| 172 | +* [Kustomize](https://github.com/kubernetes-sigs/kustomize):Kubernetes yaml 清单文件的无模板定制工具。 |
| 173 | +* [KUI](https://kui.tools) - 一个针对 Kubernetes 的 GUI 界面,可以将其视为增强版的 `kubectl`。 |
| 174 | +* [`krew`](https://github.com/kubernetes-sigs/krew):`kubectl` 的插件管理器。 |
| 175 | + |
| 176 | +<!-- |
| 177 | +**Arpit**: Are there any upcoming initiatives or developments that SIG |
| 178 | +CLI is working on? |
| 179 | +
|
| 180 | +**Maciej**: There are always several initiatives we’re working on at |
| 181 | +any given point in time. It’s best to join [one of our |
| 182 | +calls](https://github.com/kubernetes/community/tree/master/sig-cli/#meetings) |
| 183 | +to learn about the current ones. |
| 184 | +--> |
| 185 | +**Arpit**:SIG CLI 是否有任何正在开展或即将开展的计划或开发工作? |
| 186 | + |
| 187 | +**Maciej**:在任何给定的时间点,我们总是在开展多项举措。 |
| 188 | +最好加入[我们的一个电话会议](https://github.com/kubernetes/community/tree/master/sig-cli/#meetings)来了解当前的情况。 |
| 189 | + |
| 190 | +<!-- |
| 191 | +**Katrina**: For major features, you can check out [our open |
| 192 | +KEPs](https://www.kubernetes.dev/resources/keps/). For instance, in |
| 193 | +1.27 we introduced alphas for [a new pruning mode in kubectl |
| 194 | +apply](https://kubernetes.io/blog/2023/05/09/introducing-kubectl-applyset-pruning/), |
| 195 | +and for kubectl create plugins. Exciting ideas that are currently |
| 196 | +under discussion include an interactive mode for `kubectl` delete |
| 197 | +([KEP |
| 198 | +3895](https://kubernetes.io/blog/2023/05/09/introducing-kubectl-applyset-pruning)) |
| 199 | +and the `kuberc` user preferences file ([KEP |
| 200 | +3104](https://kubernetes.io/blog/2023/05/09/introducing-kubectl-applyset-pruning)). |
| 201 | +--> |
| 202 | +对于主要功能,你可以查看[我们的开放 KEP](https://www.kubernetes.dev/resources/keps/)。 |
| 203 | +例如,在 1.27 中,我们为 [kubectl apply 中的新裁剪模式](https://kubernetes.io/blog/2023/05/09/introducing-kubectl-applyset-pruning/) |
| 204 | +引入了新的 Alpha 特性,并为 kubectl 添加了插件。 |
| 205 | +目前正在讨论的令人兴奋的想法包括 `kubectl` 删除的交互模式([KEP 3895](https://kubernetes.io/blog/2023/05/09/introducing-kubectl-applyset-pruning))和 |
| 206 | +`kuberc` 用户首选项文件([KEP 3104](https://kubernetes.io/blog/2023/05/09/introducing-kubectl-applyset-pruning))。 |
| 207 | + |
| 208 | +<!-- |
| 209 | +**Arpit**: Could you discuss any challenges that SIG CLI faces in its |
| 210 | +efforts to improve CLIs for cloud-native technologies? What are the |
| 211 | +future efforts to solve them? |
| 212 | +--> |
| 213 | +**Arpit**:你们能否说说 SIG CLI 在改善云本地技术的 CLI 时面临的任何挑战?未来将采取哪些措施来解决这些问题? |
| 214 | + |
| 215 | +<!-- |
| 216 | +**Katrina**: The biggest challenge we’re facing with every decision is |
| 217 | +backwards compatibility and ensuring we don’t break existing users. It |
| 218 | +frequently happens that fixing what's on the surface may seem |
| 219 | +straightforward, but even fixing a bug could constitute a breaking |
| 220 | +change for some users, which means we need to go through an extended |
| 221 | +deprecation process to change it, or in some cases we can’t change it |
| 222 | +at all. Another challenge is the need to balance customization with |
| 223 | +usability in the flag sets we expose on our tools. For example, we get |
| 224 | +many proposals for new flags that would certainly be useful to some |
| 225 | +users, but not a large enough subset to justify the increased |
| 226 | +complexity having them in the tool entails for everyone. The `kuberc` |
| 227 | +proposal may help with some of these problems by giving individual |
| 228 | +users the ability to set or override default values we can’t change, |
| 229 | +and even create custom subcommands via aliases |
| 230 | +--> |
| 231 | +**Katrina**:我们每个决定面临的最大挑战是向后兼容性并确保我们不会影响现有用户。 |
| 232 | +经常发生的情况是,修复表面上的内容似乎很简单,但即使修复 bug 也可能对某些用户造成破坏性更改, |
| 233 | +这意味着我们需要经历一个较长的弃用过程来更改它,或者在某些情况下我们不能完全改变它。 |
| 234 | +另一个挑战是我们需要在工具上公开 flag 的平衡定制和可用性。例如,我们收到了许多关于新标志的建议, |
| 235 | +这些建议肯定对某些用户有用,但没有足够大的子集来证明,将它们添加到工具中对每个用户来说都会增加复杂性。 |
| 236 | +`kuberc` 提案可能会帮助个人用户设置或覆盖我们无法更改的默认值,甚至通过别名创建自定义子命令, |
| 237 | +从而帮助解决其中一些问题。 |
| 238 | + |
| 239 | +<!-- |
| 240 | +**Arpit**: With every new version release of Kubernetes, maintaining |
| 241 | +consistency and integrity is surely challenging: how does the SIG CLI |
| 242 | +team tackle it? |
| 243 | +--> |
| 244 | +**Arpit**:随着 Kubernetes 的每个新版本的发布,保持一致性和完整性无疑是一项挑战: |
| 245 | +SIG CLI 团队如何解决这个问题? |
| 246 | + |
| 247 | +<!-- |
| 248 | +**Maciej**: This is mostly similar to the topic mentioned in the |
| 249 | +previous question: every new change, especially to existing commands |
| 250 | +goes through a lot of scrutiny to ensure we don’t break existing |
| 251 | +users. At any point in time we have to keep a reasonable balance |
| 252 | +between features and not breaking users. |
| 253 | +--> |
| 254 | +**Maciej**:这与上一个问题中提到的主题非常相似:每一个新的更改,尤其是对现有命令的更改, |
| 255 | +都会经过大量的审查,以确保我们不会影响现有用户。在任何时候我们都必须在功能和不影响用户之间保持合理的平衡。 |
| 256 | + |
| 257 | +<!-- |
| 258 | +## Future plans and contribution |
| 259 | +
|
| 260 | +**Arpit**: How do you see the role of CLI tools in the cloud-native |
| 261 | +ecosystem evolving in the future? |
| 262 | +--> |
| 263 | +## 未来计划及贡献 |
| 264 | + |
| 265 | +**Arpit**:你们如何看待 CLI 工具在未来云原生生态系统中的作用? |
| 266 | + |
| 267 | +<!-- |
| 268 | +**Maciej**: I think that CLI tools were and will always be an |
| 269 | +important piece of the ecosystem. Whether used by administrators on |
| 270 | +remote machines that don’t have GUI or in every CI/CD pipeline, they |
| 271 | +are irreplaceable. |
| 272 | +--> |
| 273 | +**Maciej**:我认为 CLI 工具曾经并将永远是生态系统的重要组成部分。 |
| 274 | +无论是管理员在没有 GUI 的远程计算机上还是在每个 CI/CD 管道中使用,它们都是不可替代的。 |
| 275 | + |
| 276 | +<!-- |
| 277 | +**Arpit**: Kubernetes is a community-driven project. Any |
| 278 | +recommendation for anyone looking into getting involved in SIG CLI |
| 279 | +work? Where should they start? Are there any prerequisites? |
| 280 | +
|
| 281 | +**Maciej**: There are no prerequisites other than a little bit of free |
| 282 | +time on your hands and willingness to learn something new :-) |
| 283 | +--> |
| 284 | +**Arpit**:Kubernetes 是一个社区驱动的项目。对于想要参与 SIG CLI 工作的人有什么建议吗? |
| 285 | +他们应该从哪里开始?有什么先决条件吗? |
| 286 | + |
| 287 | +**Maciej**:除了有一点空闲时间和学习新东西的意愿之外,没有任何先决条件 :-) |
| 288 | + |
| 289 | +<!-- |
| 290 | +**Katrina**: A working knowledge of [Go](https://go.dev/) often helps, |
| 291 | +but we also have areas in need of non-code contributions, such as the |
| 292 | +[Kustomize docs consolidation |
| 293 | +project](https://github.com/kubernetes-sigs/kustomize/issues/4338). |
| 294 | +--> |
| 295 | +**Katrina**:[Go](https://go.dev/) 的实用知识通常会有所帮助,但我们也有需要非代码贡献的领域, |
| 296 | +例如 [Kustomize 文档整合项目](https://github.com/kubernetes-sigs/kustomize/issues/4338)。 |
0 commit comments