{"id":36001,"date":"2023-07-22T16:02:28","date_gmt":"2023-05-12T14:43:18","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27%e7%89%88%e6%9c%ac%e4%b8%ad%e7%9a%84sig-cli%ef%bc%88kubectl%ef%bc%89%e7%9a%84%e5%8f%98%e6%9b%b4%e5%86%85%e5%ae%b9%e3%80%82\/"},"modified":"2024-04-30T14:51:40","modified_gmt":"2024-04-30T06:51:40","slug":"kubernetes-1-27%e7%89%88%e6%9c%ac%e4%b8%ad%e7%9a%84sig-cli%ef%bc%88kubectl%ef%bc%89%e7%9a%84%e5%8f%98%e6%9b%b4%e5%86%85%e5%ae%b9%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27%e7%89%88%e6%9c%ac%e4%b8%ad%e7%9a%84sig-cli%ef%bc%88kubectl%ef%bc%89%e7%9a%84%e5%8f%98%e6%9b%b4%e5%86%85%e5%ae%b9%e3%80%82\/","title":{"rendered":"Kubernetes 1.27\u7248\u672c\u4e2d\u7684SIG-CLI\uff08kubectl\uff09\u7684\u53d8\u66f4\u5185\u5bb9"},"content":{"rendered":"<p>\u8fd9\u91cc\u603b\u7ed3\u4e86\u6765\u81ea Kubernetes 1.27 \u7684 CHANGELOG \u7684 SIG-CLI (kubectl) \u52aa\u529b\u7684\u5185\u5bb9\u3002\u8fd9\u662f\u4f5c\u8005\u7684\u8bc4\u8bba\u3002<\/p>\n<ul class=\"post-ul\">https:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/CHANGELOG\/CHANGELOG-1.27.md<\/ul>\n<p>\u65b0\u589e\u7684\u91cd\u8981\u6307\u4ee4\u548c\u6807\u5fd7<\/p>\n<p>kubectl auth whoami \u30b3\u30de\u30f3\u30c9: \u81ea\u5206\u81ea\u8eab\u306e\u5c5e\u6027\u3092\u78ba\u8a8d\u3059\u308b<\/p>\n<p>kubectl debug &#8211;file\/-f \u30d5\u30e9\u30b0: \u30c7\u30d0\u30c3\u30b0\u3059\u308b\u30ea\u30bd\u30fc\u30b9\u306e\u6307\u5b9a<\/p>\n<p>\u4e3b\u8981\u547d\u4ee4\u548c\u6807\u8bb0\u53d1\u751f\u4e86\u53d8\u66f4\u3002<\/p>\n<p>kubectl explain &#8211;output \u30d5\u30e9\u30b0: \u30b9\u30ad\u30fc\u30de\u3092\u8868\u793a\u3059\u308b\u5f62\u5f0f (plaintext, plaintext-openapiv2) (\u30c7\u30d5\u30a9\u30eb\u30c8 &#8220;plaintext&#8221;)<\/p>\n<p>\u5c06\u88ab\u5e9f\u5f03\u7684\u6307\u4ee4\u548c\u6807\u5fd7<\/p>\n<p>\u7121\u3010\u3080\u3011\u3057<\/p>\n<p>\u5df2\u5220\u9664\u7684\u547d\u4ee4\u548c\u6807\u8bb0<\/p>\n<p>kubectl alpha auth whoami: \u30b3\u30de\u30f3\u30c9: \u81ea\u5206\u81ea\u8eab\u306e\u5c5e\u6027\u3092\u78ba\u8a8d\u3059\u308b<\/p>\n<p>kubectl kustomize &#8211;reorder \u30d5\u30e9\u30b0: \u51fa\u529b\u3059\u308b\u76f4\u524d\u306b\u30ea\u30bd\u30fc\u30b9\u3092\u4e26\u3073\u66ff\u3048\u308b<\/p>\n<p>\u53e6\u5916\uff0c\u60a8\u53ef\u4ee5\u5728\u6b64\u94fe\u63a5\u4e0a\u67e5\u770b\u8be6\u7ec6\u7684\u66f4\u6539\u5185\u5bb9\uff1ahttps:\/\/github.com\/superbrothers\/kubectl-docs\/compare\/v1.26.0&#8230;v1.27.0\u3002<\/p>\n<h2>\u611f\u53d7<\/h2>\n<p>\u8fd9\u4e2a\u7248\u672c\u4e0e SIG-CLI \u76f8\u5173\u7684\u53d8\u66f4\u7279\u522b\u5c11\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u81ea\u5206\u81ea\u8eab\u306e\u5c5e\u6027\u304c\u78ba\u8a8d\u3067\u304d\u308b kubectl auth whoami \u30b3\u30de\u30f3\u30c9\u304c\u6607\u683c\u3057\u307e\u3057\u305f\u304c\u3001\u3053\u306e\u30b3\u30de\u30f3\u30c9\u304c\u4f7f\u7528\u3059\u308b API \u304c\u30d9\u30fc\u30bf\u3067\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u7121\u52b9\u306e\u305f\u3081\u307e\u3060\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093<\/ul>\n<\/li>\n<\/ul>\n<p>kubectl debug \u30b3\u30de\u30f3\u30c9\u306b\u30c7\u30d0\u30c3\u30af\u76ee\u7684\u306b\u5fdc\u3058\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u6307\u5b9a\u3059\u308b\u6a5f\u80fd\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002\u3088\u3055\u305d\u3046\u3067\u3059<\/p>\n<p>\u5927\u89c4\u6a21\u529f\u80fd\u5347\u7ea7\u4e2d\uff0c\u6709\u4e00\u4e2a\u540d\u4e3a ApplySet \u7684\u529f\u80fd\u3002\u8fd9\u4e2a\u529f\u80fd\u662f\u5728 kubectl apply \u547d\u4ee4\u7684 &#8211;prune \u529f\u80fd\u57fa\u7840\u4e0a\u8fdb\u884c\u4e86\u9769\u65b0\uff0c\u6700\u521d\u662f\u4f5c\u4e3a Alpha \u7248\u6dfb\u52a0\u7684\u3002\u6211\u8bb0\u5f97\u5f88\u4e45\u4ee5\u524d\u4e3a\u4e86\u627e\u5230\u4e00\u79cd\u65b9\u6cd5\u6765\u4f7f\u7528 prune \u800c\u82e6\u82e6\u6323\u624e\u7684\u65e5\u5b50\u3002\u867d\u7136\u8fd9\u4e2a\u529f\u80fd\u5e76\u4e0d\u5b9e\u7528\uff0c\u4f46\u6211\u4eec\u8fd8\u662f\u5bf9 ApplySet \u5bc4\u4e88\u4e86\u671f\u671b\u3002\u901a\u5e38\u60c5\u51b5\u4e0b\uff0cGitOps \u5de5\u5177\u4f1a\u81ea\u5df1\u5b9e\u73b0\u7c7b\u4f3c prune \u7684\u529f\u80fd\uff0c\u56e0\u6b64\u76f4\u63a5\u4f7f\u7528\u5e76\u4e0d\u662f\u592a\u65b9\u4fbf\u7684\u60c5\u51b5\u53ef\u80fd\u5e76\u4e0d\u591a\u3002\u8bf7\u770b\u770b\u6211\u5728\u9875\u9762\u672b\u5c3e\u5199\u4e0b\u7684\u4f7f\u7528\u611f\u53d7\u3002<\/p>\n<h2>\u6709\u4ec0\u4e48\u65b0\u53d8\u5316\uff08\u4e3b\u8981\u4e3b\u9898\uff09<\/h2>\n<p>\u5173\u4e8eSIG-CLI\u6ca1\u6709\u76f8\u5173\u4fe1\u606f\u3002<\/p>\n<h2>\u7d27\u6025\u5347\u7ea7\u6ce8\u610f\u4e8b\u9879\uff08\u5fc5\u987b\u5148\u9605\u8bfb\u540e\u8fdb\u884c\u5347\u7ea7\u7684\u4e8b\u9879\uff09<\/h2>\n<p>\u6ca1\u6709\u4e0eSIG-CLI\u76f8\u5173\u7684\u4fe1\u606f\u3002<\/p>\n<h2>\u5206\u7c7b\u53d8\u66f4<\/h2>\n<h3>Deprecation (\u5ec3\u6b62) &#8211; \u5e9f\u9664<\/h3>\n<p>SIG-CLI \u6ca1\u6709\u76f8\u5173\u4fe1\u606f\u3002<\/p>\n<h3>API \u53d8\u66f4<\/h3>\n<p>SelfSubjectReview \u304c\u30d9\u30fc\u30bf\u306b\u6607\u683c\u3057\u307e\u3057\u305f (#116274, nabokihms) [SIG API Machinery, Auth, CLI and Testing] [sig\/api-machinery,sig\/auth,sig\/cli,sig\/testing]<\/p>\n<p>SelfSubjectReview \u306e\u30d9\u30fc\u30bf\u6607\u683c\u306b\u5408\u308f\u305b\u3066 kubectl alpha auth whoami \u30b3\u30de\u30f3\u30c9\u304c kubectl auth whoami \u306b\u6607\u683c\u3057\u3066\u3044\u307e\u3059<\/p>\n<p>SelfSubjectReviews API \u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u306a\u3044\u305f\u3081\u3001\u4f7f\u7528\u3059\u308b\u306b\u306f\u660e\u793a\u7684\u306b API \u3092\u6709\u52b9\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306f\u304a\u305d\u3089\u304f v1.24 \u304b\u3089 Beta API \u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u7121\u52b9\u306b\u5909\u66f4\u3055\u308c\u305f\u305f\u3081\u3060\u3068\u601d\u308f\u308c\u307e\u3059\u3002<\/p>\n<p>Beta APIs Are Off by Default \u00b7 Issue #3136 \u00b7 kubernetes\/enhancements<\/p>\n<h3>\u529f\u80fd<\/h3>\n<p>kubectl debug \u306b &#8220;general&#8221;, &#8220;baseline&#8221;, &#8220;restricted&#8221; \u306e\u30c7\u30d0\u30c3\u30b0\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u8ffd\u52a0\u3057\u307e\u3057\u305f (#114280, sding3) [SIG CLI] [sig\/cli]<\/p>\n<p>kubectl debug \u3092\u30ed\u30f3\u30c1\u3057\u3066\u304b\u3089\u30e6\u30fc\u30b6\u304b\u3089\u751f\u6210\u3055\u308c\u308b Pod \u3084\u30b3\u30f3\u30c6\u30ca\u3067\u3088\u308a\u8a2d\u5b9a\u3092\u67d4\u8edf\u306b\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u305f\u3044\u3068\u3044\u3046\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u304c\u3042\u308a\u3001\u305d\u308c\u3092\u53d7\u3051\u3066\u8ffd\u52a0\u3055\u308c\u305f\u6a5f\u80fd\u3002\u4e8b\u524d\u306b\u5b9a\u7fa9\u3055\u308c\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3055\u305b\u308b\u3068\u3044\u3046\u65b9\u6cd5\u3092\u53d6\u308b\u3053\u3068\u3067\u3001\u6709\u52b9\u306b\u3057\u305f\u3044\u6a5f\u80fd\u3092\u7d30\u304b\u304f\u30d5\u30e9\u30b0\u3067\u6307\u5b9a\u3055\u305b\u308b\u7169\u96d1\u306a\u4f5c\u696d\u3092\u907f\u3051\u3089\u308c\u308b\u3088\u3046\u306b\u3057\u305f\u3068\u306e\u3053\u3068\u3002\u500b\u3005\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306f\u30c7\u30d0\u30c3\u30b0\u76ee\u7684\u3088\u308a\u4f7f\u3044\u5206\u3051\u308b\u3053\u3068\u306b\u306a\u3063\u3066\u3044\u308b\u3002<\/p>\n<p>general: \u5408\u7406\u7684\u306a\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30bb\u30c3\u30c8<\/p>\n<p>baseline: Pod Security Standard \u306e baseline \u3068\u4e92\u63db<\/p>\n<p>restricted: Pod Security Standard \u306e restricted \u3068\u4e92\u63db<\/p>\n<p>legacy: 1.22 \u3067\u306e\u6319\u52d5\u3068\u306e\u5f8c\u65b9\u4e92\u63db<\/p>\n<p>\u305d\u308c\u305d\u308c\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3067\u6709\u52b9\u306b\u306a\u308b\u6a5f\u80fd\u306f\u3001\u30c7\u30d0\u30c3\u30b0\u5bfe\u8c61\u304c Node \u306a\u306e\u304b\u3001Pod Copy \u306a\u306e\u304b Ephemeral Container \u306a\u306e\u304b\u3067\u7570\u306a\u308a\u3001\u6b63\u78ba\u306a\u3068\u3053\u308d\u306f\u5b9f\u88c5\u3092\u307f\u308b\u3057\u304b\u306a\u3044\u306e\u3067\u5206\u304b\u308a\u306b\u304f\u3044\u6c17\u304c\u3059\u308b<\/p>\n<p>https:\/\/github.com\/kubernetes\/kubernetes\/blob\/v1.27.0\/staging\/src\/k8s.io\/kubectl\/pkg\/cmd\/debug\/profiles.go#L126-L148<\/p>\n<p>kubectl debug \u306b netadmin \u30c7\u30d0\u30c3\u30b0\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#115712, wedaly) [SIG CLI] [sig\/cli]<\/p>\n<p>\u3053\u308c\u306f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30c7\u30d0\u30c3\u30b0\u306e\u305f\u3081\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3067\u3001NET_ADMIN Capability \u3068 Node \u304c\u5bfe\u8c61\u306e\u5834\u5408\u306f privileged, host namespace \u306e\u4f7f\u7528\u304c\u8a2d\u5b9a\u3055\u308c\u308b<\/p>\n<p>kubectl explain \u306b\u53e4\u3044 openapiv2 \u306e explain \u5b9f\u88c5\u3092\u4f7f\u3046 &#8211;output plaintext-openapiv2 \u5f15\u6570\u304c\u8ffd\u52a0\u3057\u307e\u3057\u305f (#115480, alexzielenski) [sig\/node,sig\/auth,sig\/cli,sig\/architecture,sig\/cloud-provider]<\/p>\n<p>&#8211;output \u30d5\u30e9\u30b0\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u306f plain \u3067 OpenAPIv3 \u3092\u4f7f\u3044\u307e\u3059<\/p>\n<p>\u30d9\u30fc\u30bf\u3078\u306e\u6607\u683c\u306e\u305f\u3081\u306b kubectl &#8211;subresource \u306b e2e \u30c6\u30b9\u30c8\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#116590, MadhavJivrajani) [sig\/cli,sig\/testing]<br \/>\ndebug \u30b3\u30de\u30f3\u30c9\u306b\u660e\u793a\u7684\u306a\u540d\u524d\u306e\u4ee3\u308f\u308a\u306b pod \u307e\u305f\u306f node \u306e\u30d5\u30a1\u30a4\u30eb\u3092\u6e21\u305b\u308b\u65b0\u3057\u3044 -f \u30d5\u30e9\u30b0\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#111453, ardaguclu) [sig\/cli,sig\/testing]<\/p>\n<p>-f\/&#8211;file \u306b\u30de\u30cb\u30d5\u30a7\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u6e21\u3057\u3066 kubectl debug \u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3068\u3044\u3046\u610f\u5473\u3067\u3059<\/p>\n<p>kubectl &#8211;subresource \u30d5\u30e9\u30b0\u304c\u30d9\u30fc\u30bf\u306b\u5909\u66f4\u3055\u308c\u307e\u3057\u305f (#116595, MadhavJivrajani) [sig\/cli]<br \/>\nKubectl \u306f\u5024\u304c\u3042\u308c\u3070 pods, containers, ephemeral containers \u3067 SeccompProfile \u3092\u8868\u793a\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f (#113284, williamyeh) [sig\/cli,sig\/security]<\/p>\n<p>\u8868\u793a\u3059\u308b\u3068\u3044\u3046\u306e\u306f kubectl describe \u30b3\u30de\u30f3\u30c9\u3067\u3067\u3059<br \/>\n$ kubectl describe po nginx-655d4774bb-k7fnw | grep SeccompProfile<br \/>\nSeccompProfile: RuntimeDefault<\/p>\n<p>Kubectl: default container annotation \u306e e2e test \u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#115046, pacoxu) [sig\/cli,sig\/testing,sig\/architecture]<\/p>\n<p>whoami kubectl \u30b3\u30de\u30f3\u30c9\u3092\u6607\u683c (#116510, nabokihms) [sig\/auth,sig\/cli]<\/p>\n<p>kubectl alpha auth whoami \u30b3\u30de\u30f3\u30c9\u306f\u524a\u9664\u3055\u308c\u307e\u3057\u305f<\/p>\n<p>Kubernetes v1.5 \u304b\u3089 kubectl apply \u306b\u306f\u30a2\u30eb\u30d5\u30a1\u30b9\u30c6\u30fc\u30b8\u306e &#8211;prune \u30d5\u30e9\u30b0\u304c\u3042\u308a\u3001\u4ee5\u524d\u9069\u7528\u3055\u308c\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u6e21\u3055\u308c\u305f\u30de\u30cb\u30d5\u30a7\u30b9\u30c8\u304b\u3089\u524a\u9664\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u3001\u305d\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u524a\u9664\u3059\u308b\u3053\u3068\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u6a5f\u80fd\u306f\u8a2d\u8a08\u306b\u5143\u304b\u3089\u5b58\u5728\u3059\u308b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u6b63\u78ba\u6027\u306e\u554f\u984c\u306b\u3088\u308a\u30a2\u30eb\u30d5\u30a1\u306b\u3068\u3069\u307e\u308a\u7d9a\u3051\u3066\u3044\u307e\u3059\u3002\u3053\u306e PR \u306f ApplySets \u3068\u3044\u3046\u65b0\u3057\u3044\u6a19\u6e96\u306b\u3088\u3063\u3066\u5b9f\u73fe\u3055\u308c\u305f\u3001\u7b2c\u4e8c\u306e\u72ec\u7acb\u3057\u305f pruning \u3092\u30a2\u30eb\u30d5\u30a1\u3067\u516c\u958b\u3057\u307e\u3059\u3002ApplySet \u306f server-side \u30aa\u30d6\u30b8\u30a7\u30af\u30c8 (\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f Secret, Configmaps \u3082\u53ef) \u3067\u3001kubectl \u304c apply \u64cd\u4f5c\u5168\u4f53\u3067\u30bb\u30c3\u30c8\u30e1\u30f3\u30d0\u30fc\u30b7\u30c3\u30d7\u3092\u6b63\u78ba\u304b\u3064\u52b9\u7387\u7684\u306b\u8ffd\u8de1\u3059\u308b\u305f\u3081\u306e\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002ApplySet \u3067\u4f7f\u7528\u3055\u308c\u308b\u5f62\u5f0f\u306f\u3001\u4f4e\u30ec\u30d9\u30eb\u306e\u4ed5\u69d8\u3068\u3057\u3066 KEP 3659 \u3067\u898f\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u30a8\u30b3\u30b7\u30b9\u30c6\u30e0\u5185\u306e\u4ed6\u306e\u30c4\u30fc\u30eb\u3082\u76f8\u4e92\u904b\u7528\u6027\u3092\u5411\u4e0a\u3055\u305b\u308b\u305f\u3081\u306b\u3053\u306e\u4ed5\u69d8\u306b\u57fa\u3065\u3044\u3066\u69cb\u7bc9\u3067\u304d\u307e\u3059\u3002ApplySet \u306b\u57fa\u3065\u304f\u30a2\u30eb\u30d5\u30a1\u306e pruning \u3092\u8a66\u3059\u306b\u306f KUBECTl_APPLYSET=true \u3068 &#8211;prune &#8211;applyset=secret-name \u3068\u3044\u3046\u30d5\u30e9\u30b0\u3092 kubectl apply \u306b\u3064\u3051\u3066\u304f\u3060\u3055\u3044\u3002 (#116205, justinsb) [sig\/cli]<\/p>\n<p>ApplySet \u6a5f\u80fd\u306b\u3064\u3044\u3066\u306f\u30da\u30fc\u30b8\u6700\u5f8c\u306b\u307e\u3068\u3081\u3066\u3044\u307e\u3059<\/p>\n<p>kubectl explain \u306f\u30b5\u30fc\u30d0\u304c\u516c\u958b\u3059\u308b OpenAPIV3 \u306e\u60c5\u5831\u3092\u4f7f\u3046\u3088\u3046\u306b\u5909\u66f4\u3055\u308c\u307e\u3057\u305f (#116390, alexzielenski) [SIG API Machinery, CLI and Testing] [sig\/api-machinery,sig\/cli,sig\/testing]<\/p>\n<p>https:\/\/github.com\/kubernetes-sigs\/kustomize\/pull\/4954: gh: \u3092\u30db\u30b9\u30c8\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u305f\u3081\u306e\u30b5\u30dd\u30fc\u30c8\u3092\u524a\u9664\u3002\u3053\u308c\u306e\u4f7f\u7528\u65b9\u6cd5\u3068\u6839\u62e0\u3092\u898b\u51fa\u305b\u305a\u3001\u30ab\u30b9\u30bf\u30e0\u306e gitconfig \u306e\u77ed\u7e2e\u69cb\u6587\u3092\u5bfe\u8c61\u306b\u3057\u3066\u3044\u305f\u3068\u8003\u3048\u3089\u308c\u307e\u3059<\/p>\n<p>kubectl kustomize \u3092 kustomize v5.0.1 \u306b\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3057\u307e\u3059\u3002\u3053\u308c\u306f kustomize \u306e\u30e1\u30b8\u30e3\u30fc\u30ea\u30ea\u30fc\u30b9\u306e\u305f\u3081\u3001\u3044\u304f\u3064\u304b\u306e\u5f8c\u65b9\u4e92\u63db\u6027\u306e\u306a\u3044\u5909\u66f4\u304c\u542b\u307e\u308c\u307e\u3059\u304c\u3001\u305d\u306e\u307b\u3068\u3093\u3069\u306f\u7a00\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3001\u526f\u4f5c\u7528\u306e\u3042\u308b\u30d0\u30b0\u4fee\u6b63\u3001\u307e\u305f\u306f\u3059\u3067\u306b\u3053\u308c\u307e\u3067\u306e\u30ea\u30ea\u30fc\u30b9\u3067\u975e\u63a8\u5968\u3068\u3055\u308c\u3066\u3044\u308b\u3082\u306e\u3067\u3059\u3002 (#116598, natasha41575) [SIG CLI] [sig\/cli]<\/p>\n<p>Kustomize v5 \u306e\u5909\u66f4\u306b\u3064\u3044\u3066\u306f Kubernetes Meetup Tokyo 56 \u3067\u767a\u8868\u304c\u3042\u3063\u305f\u306e\u3067\u8a73\u7d30\u306f\u305d\u3061\u3089\u3092\u53c2\u7167: [k8sjp #56] Kustomize v5 \u3092\u542b\u3080\u6700\u65b0\u6a5f\u80fd\u3068\u30c6\u30af\u30cb\u30c3\u30af\u306e\u7d39\u4ecb &#8211; Speaker Deck<\/p>\n<p>\u5f8c\u65b9\u4e92\u63db\u6027\u306e\u306a\u3044\u5909\u66f4\u3068\u3057\u3066\u6b21\u304c\u3042\u3052\u3089\u308c\u3066\u3044\u308b<\/p>\n<p>https:\/\/github.com\/kubernetes-sigs\/kustomize\/pull\/4911: Drop support for a very old, legacy style of patches. patches used to be allowed to be used as an alias for patchesStrategicMerge in kustomize v3. You now have to use patchesStrategicMerge explicitly, or update to the new syntax supported by patches. See examples in the PR description of https:\/\/github.com\/kubernetes-sigs\/kustomize\/pull\/4911.<\/p>\n<p>https:\/\/github.com\/kubernetes-sigs\/kustomize\/issues\/4731: Remove a potential build-time side-effect in ConfigMapGenerator and SecretGenerator, which loaded values from the local environment under some circumstances, breaking kustomize build&#8217;s side-effect-free promise. While this behavior was never intended, we deprecated it and are announcing it as a breaking change since it existed for a long time. See also the Eschewed Features documentation.<\/p>\n<p>https:\/\/github.com\/kubernetes-sigs\/kustomize\/pull\/4985: If you previously included .git in an AWS or Azure URL, we will no longer automatically remove that suffix. You may need to add an extra \/ to replace the .git for the URL to properly resolve.<\/p>\n<p>https:\/\/github.com\/kubernetes-sigs\/kustomize\/pull\/4954: Drop support for using gh: as a host (e.g. gh:kubernetes-sigs\/kustomize). We were unable to find any usage of or basis for this and believe it may have been targeting a custom gitconfig shorthand syntax.<\/p>\n<p>[alpha: kubectl apply &#8211;prune &#8211;applyset] \u7279\u5b9a\u306e\u30ab\u30b9\u30bf\u30e0\u30ea\u30bd\u30fc\u30b9 (CR) \u3092 &#8220;ApplySet&#8221; \u306e\u89aa\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3057\u3066\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u7279\u5b9a\u306e CR \u3067\u3053\u308c\u3092\u6709\u52b9\u306b\u3059\u308b\u306b\u306f\u3001\u305d\u308c\u3092\u5b9a\u7fa9\u3059\u308b CustomResourceDefinition (CRD) \u306b applyset.kubernetes.io\/is-parent-type: true \u30e9\u30d9\u30eb\u3092\u9069\u7528\u3057\u307e\u3059\u3002(#116353, KnVerey) [sig\/cli]<\/p>\n<p>GitOps \u30c4\u30fc\u30eb\u306e Flux \u306f\u72ec\u81ea\u306e CR \u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u306b\u7ba1\u7406\u3059\u308b\u30ea\u30bd\u30fc\u30b9\u306e\u30ea\u30b9\u30c8\u3092\u6301\u3063\u3066\u3044\u308b\u306e\u3067\u3001\u305d\u3053\u304b\u3089\u306e\u79fb\u884c\u304c\u60f3\u5b9a\u3055\u308c\u305f\u5909\u66f4\u3067\u3059<\/p>\n<p>ApplySet \u6a5f\u80fd\u306b\u3064\u3044\u3066\u306f\u30da\u30fc\u30b8\u6700\u5f8c\u306b\u307e\u3068\u3081\u3066\u3044\u307e\u3059<\/p>\n<p>kubectl \u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u3067 HorizontalPodAutoscaler v2 \u3092\u4f7f\u3046\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f (#114886, a7i) [sig\/cli]<\/p>\n<h3>\u6587\u6863<\/h3>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u3053\u306e\u5909\u66f4\u306f\u4e0b\u8a18 CLI \u30b3\u30de\u30f3\u30c9\u306b\u5f71\u97ff\u3059\u308b: kubectl create rolebinding -h (#107124, ptux) [SIG CLI] [sig\/cli]<\/ul>\n<\/li>\n<\/ul>\n<p>kubectl create rolebinding \u306e\u30d8\u30eb\u30d7\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u6539\u5584\u3055\u308c\u305f\u3060\u3051<\/p>\n<h3>\u9519\u8bef\u6216\u56de\u5f52<\/h3>\n<p>dry-run \u3092\u4ed8\u3051\u305f\u969b\u306b kubectl scale \u30b3\u30de\u30f3\u30c9\u306b (dry run)\u3001(server dry run) \u306e\u30b5\u30d5\u30a3\u30c3\u30af\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f (#114252, ardaguclu) [sig\/cli,sig\/testing]<br \/>\n\u7d9a\u304f kubectl rollout restart \u30b3\u30de\u30f3\u30c9\u304c1\u79d2\u4ee5\u5185\u306b\u5b9f\u884c\u3055\u308c\u305f\u5834\u5408\u306e kubectl rollout restart \u306e\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5909\u66f4\u3057\u307e\u3057\u305f (#113040, ardaguclu) [sig\/cli]<\/p>\n<p>kubectl rollout restart \u30b3\u30de\u30f3\u30c9\u306f\u3001kubectl.kubernetes.io\/restartedAt annotation \u306b RFC3339 \u5f62\u5f0f\u3067\u5b9f\u884c\u6642\u9593\u3092\u5024\u3068\u3057\u3066\u30d1\u30c3\u30c1\u3059\u308b\u3053\u3068\u3067\u30ed\u30fc\u30eb\u30a2\u30a6\u30c8\u3092\u30c8\u30ea\u30ac\u3059\u308b\u4ed5\u7d44\u307f\u3068\u306a\u3063\u3066\u3044\u308b\u304c\u3001RFC3339 \u306f\u79d2\u5358\u4f4d\u307e\u3067\u3057\u304b\u6271\u3063\u3066\u3044\u306a\u3044\u305f\u3081\u30011\u79d2\u4ee5\u5185\u306b\u9023\u7d9a\u3057\u3066 kubectl rollout restart \u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u3082\u4e8c\u5ea6\u76ee\u306e\u5b9f\u884c\u306f\u540c\u3058\u5024\u3067\u30d1\u30c3\u30c1\u3059\u308b\u3053\u3068\u306b\u306a\u308a\u3001\u300c\u5909\u66f4\u306a\u3057\u300d\u3068\u3057\u3066\u7121\u8996\u3055\u308c\u3066\u3057\u307e\u3046\u3002\u4eba\u9593\u306f\u901a\u5e381\u79d2\u4ee5\u5185\u306b\u9023\u7d9a\u3057\u3066\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u306a\u3044\u306e\u3067\u554f\u984c\u304c\u306a\u3044\u304c\u3001\u81ea\u52d5\u5316\u306e\u305f\u3081\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u306f\u8d77\u304d\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002\u3053\u306e\u4fee\u6b63\u3067\u306f\u305d\u308c\u304c\u4fee\u6b63\u3055\u308c\u305f\u308f\u3051\u3067\u306f\u306a\u304f\u3001\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306b\u6b21\u306e\u6587\u7ae0\u3092\u8ffd\u52a0\u3057\u3066\u30c8\u30ea\u30ac\u3055\u308c\u306a\u304b\u3063\u305f\u3053\u3068\u306b\u6c17\u3065\u3051\u308b\u3088\u3046\u306b\u3059\u308b\u3068\u3044\u3046\u3082\u306e\u3002<\/p>\n<p>if restart has already been triggered within the past second, please wait before attempting to trigger another<\/p>\n<p>kubectl exec \u306b\u6e21\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306b\u8907\u6570\u306e\u30ea\u30bd\u30fc\u30b9\u304c\u542b\u307e\u308c\u308b\u5834\u5408\u3001\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092 cannot exec into multiple objects at a time \u306b\u5909\u66f4\u3057\u307e\u3057\u305f (#114249, ardaguclu) [sig\/cli,sig\/testing]<br \/>\nkubectl: kubectl diff \u306e pruning \u6642\u306b\u30ea\u30bd\u30fc\u30b9\u3092\u30d5\u30a3\u30eb\u30bf\u3059\u308b\u305f\u3081\u306e\u30e9\u30d9\u30eb\u30bb\u30ec\u30af\u30bf\u306e\u4f7f\u7528\u3092\u6709\u52b9\u306b\u3057\u307e\u3057\u305f (#114863, danlenar) [sig\/cli,sig\/testing]<\/p>\n<p>kubectl diff &#8211;prune \u3092\u5b9f\u884c\u3059\u308b\u306e\u306b -l (\u30e9\u30d9\u30eb\u30bb\u30ec\u30af\u30bf) \u3092\u6307\u5b9a\u3057\u3066\u3044\u3066\u3068\u3057\u3066\u3082 Prune \u306e\u51e6\u7406\u3067\u30e9\u30d9\u30eb\u30bb\u30ec\u30af\u30bf\u304c\u6e21\u3063\u3066\u304a\u3089\u305a\u7121\u8996\u3055\u308c\u3066\u3057\u307e\u3063\u3066\u3044\u305f\u306e\u3092\u4fee\u6b63\u3057\u305f\u3068\u3044\u3046\u3082\u306e<\/p>\n<p>deployments \u3092 describe \u3057\u305f\u3068\u304d\u306b OldReplicaSets \u306f\u307e\u3060\u5229\u7528\u53ef\u80fd\u306a replicasets \u3060\u3051\u3067\u306a\u304f deployment \u304c\u5236\u5fa1\u3059\u308b\u5168\u3066\u3092\u5e38\u306b\u8868\u793a\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f (#113083, llorllale) [SIG CLI] [sig\/cli]<\/p>\n<h3>\u5176\u4ed6\uff08\u6e05\u7406\u6216\u788e\u5757\uff09<\/h3>\n<p>\u6ca1\u6709\u4e0eSIG-CLI\u76f8\u5173\u7684\u4fe1\u606f\u3002<\/p>\n<h2>Alpha: ApplySet \u529f\u80fd<\/h2>\n<p>Chinese paraphrase: Alpha\uff1aApplySet \u529f\u80fd<\/p>\n<p>\u4f7f\u7528kubectl apply\u547d\u4ee4\u8fdb\u884cKubernetes\u8d44\u6e90\u7684\u58f0\u660e\u6027\u7ba1\u7406\u65f6\uff0c\u4e0d\u5fc5\u8981\u7684\u8d44\u6e90\u5220\u9664\u662f\u4e00\u4e2a\u95ee\u9898\u3002\u5373\u4f7f\u4ece\u6e05\u5355\u6587\u4ef6\u4e2d\u5220\u9664\u4e86\u4e0d\u518d\u9700\u8981\u7684\u8d44\u6e90\u5e76\u901a\u8fc7kubectl apply\u8fdb\u884c\u5e94\u7528\uff0c\u96c6\u7fa4\u4e2d\u521b\u5efa\u7684\u8d44\u6e90\u4e5f\u4e0d\u4f1a\u88ab\u5220\u9664\u3002\u4e3a\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0cKubernetes v1.5\u6dfb\u52a0\u4e86&#8211;prune\u6807\u5fd7\u3002\u8be5\u529f\u80fd\u662f\u81ea\u52a8\u4ece\u96c6\u7fa4\u4e2d\u5220\u9664\u4ee5\u524d\u5e94\u7528\u7684\u8d44\u6e90\uff0c\u524d\u63d0\u662f\u8fd9\u4e9b\u8d44\u6e90\u5df2\u4ece\u6e05\u5355\u4e2d\u5220\u9664\u3002\u7136\u800c\uff0c\u8be5\u529f\u80fd\u5b58\u5728\u67d0\u4e9b\u8d44\u6e90\u4ec5\u53d7\u652f\u6301\u6216\u7531\u4e8e\u65e0\u6cd5\u9884\u6d4b\u7684\u884c\u4e3a\u800c\u53ef\u80fd\u5bfc\u81f4\u610f\u5916\u5220\u9664\u8d44\u6e90\u7684\u95ee\u9898\u3002\u5bf9\u4e8e\u8fd9\u4e2a\u529f\u80fd\uff0c\u66f4\u5b89\u5168\u548c\u4f18\u79c0\u7684\u5b9e\u73b0\u662fApplySet\u3002ArgoCD\u548cFlux\u7b49GitOps\u5de5\u5177\u5df2\u7ecf\u5177\u6709\u7c7b\u4f3c\u529f\u80fd\uff0c\u4f46\u8fc1\u79fb\u5230\u8fd9\u4e9b\u5de5\u5177\u4e5f\u662f\u76ee\u6807\u4e4b\u4e00\u3002ApplySet\u529f\u80fd\u5728v1.27\u7248\u672c\u4e2d\u4ee5Alpha\u7ea7\u522b\u5b58\u5728\uff0c\u4f7f\u7528\u65f6\u9700\u8981\u660e\u786e\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\u3002\u57fa\u672c\u4e0a\uff0c\u5e94\u907f\u514d\u5728\u751f\u4ea7\u4e2d\u4f7f\u7528Alpha\u7ea7\u522b\u7684\u529f\u80fd\u3002<\/p>\n<p>\u5229\u7528 ApplySet \u529f\u80fd\u53ef\u4ee5\u901a\u8fc7\u6807\u51c6\u5316\u7684\u6807\u7b7e\u548c\u6ce8\u91ca\u6765\u6784\u5efa\u8d44\u6e90\u7ec4\u3002\u8fd9\u6837\u53ef\u4ee5\u51c6\u786e\u5730\u8bc6\u522b\u5c5e\u4e8e\u7ec4\u7684\u8d44\u6e90\u3002\u6b64\u5916\uff0c\u53ea\u4f7f\u7528\u5185\u5efa\u529f\u80fd\u5982\u6807\u7b7e\u7b49\uff0c\u65e0\u9700\u5b89\u88c5\u989d\u5916\u7684 CRD\u3002<\/p>\n<p>\u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u5c06\u5e94\u7528\u4e00\u4e2a Deployment \u548c\u4e00\u4e2a Service\u3002<\/p>\n<pre class=\"post-pre\"><code>$ kubectl version\r\nWARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.\r\nClient Version: version.Info{Major:\"1\", Minor:\"27\", GitVersion:\"v1.27.1\", GitCommit:\"4c9411232e10168d7b050c49a1b59f6df9d7ea4b\", GitTreeState:\"clean\", BuildDate:\"2023-04-14T13:21:19Z\", GoVersion:\"go1.20.3\", Compiler:\"gc\", Platform:\"linux\/amd64\"}\r\nKustomize Version: v5.0.1\r\nServer Version: version.Info{Major:\"1\", Minor:\"27\", GitVersion:\"v1.27.1\", GitCommit:\"4c9411232e10168d7b050c49a1b59f6df9d7ea4b\", GitTreeState:\"clean\", BuildDate:\"2023-04-19T20:53:25Z\", GoVersion:\"go1.20.3\", Compiler:\"gc\", Platform:\"linux\/amd64\"}\r\n\r\n$ KUBECTL_APPLYSET=true kubectl apply -f nginx.yaml --prune --applyset=applyset-nginx -n default\r\ndeployment.apps\/nginx created\r\nservice\/nginx created\r\n<\/code><\/pre>\n<p>\u6211\u6765\u786e\u8ba4\u4e00\u4e0b\u5df2\u521b\u5efa\u7684\u5bf9\u8c61\u3002<\/p>\n<pre class=\"post-pre\"><code>$ kubectl get secret,deploy,service --show-labels\r\nNAME                    TYPE     DATA   AGE   LABELS\r\nsecret\/applyset-nginx   Opaque   0      26s   applyset.kubernetes.io\/id=applyset-KJRZa9n3K5KqyLy4h8wiB2NM8RkbsMbZgRrYCrkBV_E-v1\r\n\r\nNAME                    READY   UP-TO-DATE   AVAILABLE   AGE   LABELS\r\ndeployment.apps\/nginx   1\/1     1            1           26s   app=nginx,applyset.kubernetes.io\/part-of=applyset-KJRZa9n3K5KqyLy4h8wiB2NM8RkbsMbZgRrYCrkBV_E-v1\r\n\r\nNAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE   LABELS\r\nservice\/kubernetes   ClusterIP   10.96.0.1       &lt;none&gt;        443\/TCP    34m   component=apiserver,provider=kubernetes\r\nservice\/nginx        ClusterIP   10.96.113.111   &lt;none&gt;        8080\/TCP   26s   app=nginx,applyset.kubernetes.io\/part-of=applyset-KJRZa9n3K5KqyLy4h8wiB2NM8RkbsMbZgRrYCrkBV_E-v1\r\n<\/code><\/pre>\n<p>applyset-nginx Secret\u7684applyset.kubernetes.io\/id=applyset-KJRZa9n3K5KqyLy4h8wiB2NM8RkbsMbZgRrYCrkBV_E-v1\u6807\u7b7e\u5df2\u88ab\u9644\u52a0\u3002Deployment\u548cService\u8d44\u6e90\u4e0a\u9644\u52a0\u4e86applyset.kubernetes.io\/part-of=applyset-KJRZa9n3K5KqyLy4h8wiB2NM8RkbsMbZgRrYCrkBV_E-v1\u6807\u7b7e\u3002\u6839\u636e\u540d\u4e3aapplyset.kubernetes.io\/part-of\u7684\u6807\u7b7e\uff0c\u53ef\u4ee5\u770b\u51fa\u6b64\u6b21\u5e94\u7528\u7684Deployment\u548cService\u4e0e\u7236\u8d44\u6e90\u76f8\u5173\u8054\u3002\u987a\u4fbf\u63d0\u4e00\u4e0b\uff0cID\u7684\u683c\u5f0f\u662fbase64(sha256(&#8230;))\u3002<\/p>\n<p>\u4ece\u6e05\u5355\u6587\u4ef6\u4e2d\u5220\u9664\u670d\u52a1\u8d44\u6e90\uff0c\u7136\u540e\u91cd\u65b0\u5e94\u7528\u4ee5\u786e\u8ba4\u662f\u5426\u6b63\u786e\u5220\u9664\u3002<\/p>\n<pre class=\"post-pre\"><code>$ cp nginx.yaml{,.bak}\r\n$ vim nginx.yaml\r\n$ diff -u nginx.yaml.bak nginx.yaml\r\n--- nginx.yaml.bak      2023-05-10 14:32:43.799310894 +0900\r\n+++ nginx.yaml  2023-05-10 14:32:50.051398622 +0900\r\n@@ -17,17 +17,3 @@\r\n       containers:\r\n       - image: nginxinc\/nginx-unprivileged\r\n         name: nginx-unprivileged\r\n----\r\n-apiVersion: v1\r\n-kind: Service\r\n-metadata:\r\n-  labels:\r\n-    app: nginx\r\n-  name: nginx\r\n-spec:\r\n-  ports:\r\n-  - port: 8080\r\n-    protocol: TCP\r\n-    targetPort: 8080\r\n-  selector:\r\n-    app: nginx\r\n\r\n$ KUBECTL_APPLYSET=true kubectl apply -f nginx.yaml --prune --applyset=applyset-nginx -n default\r\ndeployment.apps\/nginx unchanged\r\nservice\/nginx pruned\r\n$ kubectl get svc\r\nNAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE\r\nkubernetes   ClusterIP   10.96.0.1    &lt;none&gt;        443\/TCP   41m\r\n<\/code><\/pre>\n<p>\u901a\u8fc7service\/nginx pruned \u7684\u6d88\u606f\uff0c\u6211\u4eec\u53ef\u4ee5\u77e5\u9053\u5df2\u7ecf\u6210\u529f\u5220\u9664\u4e86\u3002<\/p>\n<p>\u867d\u7136\u4ee5\u4e0a\u529f\u80fd\u770b\u8d77\u6765\u5f88\u65b9\u4fbf\uff0c\u4f46\u4e5f\u5b58\u5728\u4e00\u4e9b\u95ee\u9898\u3002\u9996\u5148\uff0c\u4e0d\u63a8\u8350\u4f7f\u7528ApplySet\u6765\u7ba1\u7406\u8de8\u591a\u4e2a\u547d\u540d\u7a7a\u95f4\u7684\u8d44\u6e90\u3002\u57fa\u672c\u4e0a\uff0c\u5e94\u8be5\u5728\u521b\u5efa\u7236\u8d44\u6e90\u7684\u547d\u540d\u7a7a\u95f4\u4e2d\u5c06\u8d44\u6e90\u4f5c\u4e3a\u4e00\u4e2a\u7ec4\u8fdb\u884c\u7ba1\u7406\u3002\u867d\u7136\u89c4\u8303\u4e2d\u5305\u542b\u4e86\u8de8\u591a\u4e2a\u547d\u540d\u7a7a\u95f4\u6216\u7ba1\u7406\u96c6\u7fa4\u7ea7\u522b\u7684\u8d44\u6e90\u7684\u529f\u80fd\uff08\u5c1a\u672a\u786e\u8ba4\u662f\u5426\u5728v1.26\u4e2d\u5b9e\u65bd\uff0c\u81f3\u5c11\u4f3c\u4e4e\u4e0d\u80fd\u4f7f\u7528kubectl apply\u547d\u4ee4\uff09\u3002\u7531\u4e8e\u7b2c\u4e09\u65b9\u63d0\u4f9b\u7684\u6e05\u5355\u4e2d\u53ef\u80fd\u5305\u542bCRD\u6216\u8005\u8981\u6c42\u5728kube-system\u547d\u540d\u7a7a\u95f4\u4e2d\u521b\u5efa\u89d2\u8272\u8d44\u6e90\uff0c\u6240\u4ee5\u5728\u5b9e\u9645\u60c5\u51b5\u4e2d\u5f88\u96be\u5c06\u5176\u9650\u5b9a\u5728\u547d\u540d\u7a7a\u95f4\u5185\u3002<br \/>\n\u6b64\u5916\uff0c\u6267\u884ckubectl apply\u65f6\u9700\u8981\u660e\u786e\u6307\u5b9a\u7236\u8d44\u6e90\u3002\u8981\u67e5\u627e\u54ea\u4e2a\u662f\u7236\u8d44\u6e90\u5e76\u4e14\u5fc5\u987b\u9010\u4e2a\u6307\u5b9a\u662f\u5f88\u9ebb\u70e6\u7684\u3002\u4f46\u901a\u8fc7\u91cd\u65b0\u5ba1\u89c6\u7528\u6237\u4f53\u9a8c\uff0c\u53ef\u4ee5\u6539\u5584\u8fd9\u4e00\u70b9\uff0c\u5e76\u4e14\u5982\u679cGitOps\u5de5\u5177\u5728\u5185\u90e8\u4f7f\u7528\uff0c\u5219\u53ef\u80fd\u4e0d\u4f1a\u6210\u4e3a\u95ee\u9898\u3002\u6211\u8ba4\u4e3a\u5728\u751f\u4ea7\u73af\u5883\u4e2d\u4f7f\u7528\u67d0\u79cdGitOps\u5de5\u5177\uff0c\u5373\u4f7fkubectl apply\u547d\u4ee4\u7684ApplySet\u529f\u80fd\u4e0d\u591f\u5145\u5206\u4e5f\u4e0d\u4f1a\u6709\u95ee\u9898\u3002<\/p>\n<p>\u60a8\u53ef\u4ee5\u5728 ApplySet \u7684 Issue #3659\uff0c\u5373 &#8220;kubectl apply &#8211;prune redesign and graduation strategy&#8221; \u4e2d\u67e5\u9605\u6709\u5173 ApplySet \u529f\u80fd\u7684\u8be6\u7ec6\u4fe1\u606f\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u91cc\u603b\u7ed3\u4e86\u6765\u81ea Kubernetes 1.27 \u7684 CHANGELOG \u7684 SIG-CLI (kubectl) [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-36001","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kubernetes 1.27\u7248\u672c\u4e2d\u7684SIG-CLI\uff08kubectl\uff09\u7684\u53d8\u66f4\u5185\u5bb9 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27\u7248\u672c\u4e2d\u7684sig-cli\uff08kubectl\uff09\u7684\u53d8\u66f4\u5185\u5bb9\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kubernetes 1.27\u7248\u672c\u4e2d\u7684SIG-CLI\uff08kubectl\uff09\u7684\u53d8\u66f4\u5185\u5bb9\" \/>\n<meta property=\"og:description\" content=\"\u8fd9\u91cc\u603b\u7ed3\u4e86\u6765\u81ea Kubernetes 1.27 \u7684 CHANGELOG \u7684 SIG-CLI (kubectl) [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27\u7248\u672c\u4e2d\u7684sig-cli\uff08kubectl\uff09\u7684\u53d8\u66f4\u5185\u5bb9\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-12T14:43:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-30T06:51:40+00:00\" \/>\n<meta name=\"author\" content=\"\u65b0, \u97f5\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u65b0, \u97f5\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27%e7%89%88%e6%9c%ac%e4%b8%ad%e7%9a%84sig-cli%ef%bc%88kubectl%ef%bc%89%e7%9a%84%e5%8f%98%e6%9b%b4%e5%86%85%e5%ae%b9%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27%e7%89%88%e6%9c%ac%e4%b8%ad%e7%9a%84sig-cli%ef%bc%88kubectl%ef%bc%89%e7%9a%84%e5%8f%98%e6%9b%b4%e5%86%85%e5%ae%b9%e3%80%82\/\",\"name\":\"Kubernetes 1.27\u7248\u672c\u4e2d\u7684SIG-CLI\uff08kubectl\uff09\u7684\u53d8\u66f4\u5185\u5bb9 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-05-12T14:43:18+00:00\",\"dateModified\":\"2024-04-30T06:51:40+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27%e7%89%88%e6%9c%ac%e4%b8%ad%e7%9a%84sig-cli%ef%bc%88kubectl%ef%bc%89%e7%9a%84%e5%8f%98%e6%9b%b4%e5%86%85%e5%ae%b9%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27%e7%89%88%e6%9c%ac%e4%b8%ad%e7%9a%84sig-cli%ef%bc%88kubectl%ef%bc%89%e7%9a%84%e5%8f%98%e6%9b%b4%e5%86%85%e5%ae%b9%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27%e7%89%88%e6%9c%ac%e4%b8%ad%e7%9a%84sig-cli%ef%bc%88kubectl%ef%bc%89%e7%9a%84%e5%8f%98%e6%9b%b4%e5%86%85%e5%ae%b9%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kubernetes 1.27\u7248\u672c\u4e2d\u7684SIG-CLI\uff08kubectl\uff09\u7684\u53d8\u66f4\u5185\u5bb9\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\",\"name\":\"\u65b0, \u97f5\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"caption\":\"\u65b0, \u97f5\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27%e7%89%88%e6%9c%ac%e4%b8%ad%e7%9a%84sig-cli%ef%bc%88kubectl%ef%bc%89%e7%9a%84%e5%8f%98%e6%9b%b4%e5%86%85%e5%ae%b9%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Kubernetes 1.27\u7248\u672c\u4e2d\u7684SIG-CLI\uff08kubectl\uff09\u7684\u53d8\u66f4\u5185\u5bb9 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27\u7248\u672c\u4e2d\u7684sig-cli\uff08kubectl\uff09\u7684\u53d8\u66f4\u5185\u5bb9\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"Kubernetes 1.27\u7248\u672c\u4e2d\u7684SIG-CLI\uff08kubectl\uff09\u7684\u53d8\u66f4\u5185\u5bb9","og_description":"\u8fd9\u91cc\u603b\u7ed3\u4e86\u6765\u81ea Kubernetes 1.27 \u7684 CHANGELOG \u7684 SIG-CLI (kubectl) [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27\u7248\u672c\u4e2d\u7684sig-cli\uff08kubectl\uff09\u7684\u53d8\u66f4\u5185\u5bb9\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-05-12T14:43:18+00:00","article_modified_time":"2024-04-30T06:51:40+00:00","author":"\u65b0, \u97f5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u65b0, \u97f5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"5 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27%e7%89%88%e6%9c%ac%e4%b8%ad%e7%9a%84sig-cli%ef%bc%88kubectl%ef%bc%89%e7%9a%84%e5%8f%98%e6%9b%b4%e5%86%85%e5%ae%b9%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27%e7%89%88%e6%9c%ac%e4%b8%ad%e7%9a%84sig-cli%ef%bc%88kubectl%ef%bc%89%e7%9a%84%e5%8f%98%e6%9b%b4%e5%86%85%e5%ae%b9%e3%80%82\/","name":"Kubernetes 1.27\u7248\u672c\u4e2d\u7684SIG-CLI\uff08kubectl\uff09\u7684\u53d8\u66f4\u5185\u5bb9 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-05-12T14:43:18+00:00","dateModified":"2024-04-30T06:51:40+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27%e7%89%88%e6%9c%ac%e4%b8%ad%e7%9a%84sig-cli%ef%bc%88kubectl%ef%bc%89%e7%9a%84%e5%8f%98%e6%9b%b4%e5%86%85%e5%ae%b9%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27%e7%89%88%e6%9c%ac%e4%b8%ad%e7%9a%84sig-cli%ef%bc%88kubectl%ef%bc%89%e7%9a%84%e5%8f%98%e6%9b%b4%e5%86%85%e5%ae%b9%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27%e7%89%88%e6%9c%ac%e4%b8%ad%e7%9a%84sig-cli%ef%bc%88kubectl%ef%bc%89%e7%9a%84%e5%8f%98%e6%9b%b4%e5%86%85%e5%ae%b9%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"Kubernetes 1.27\u7248\u672c\u4e2d\u7684SIG-CLI\uff08kubectl\uff09\u7684\u53d8\u66f4\u5185\u5bb9"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9","name":"\u65b0, \u97f5","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","caption":"\u65b0, \u97f5"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/kubernetes-1-27%e7%89%88%e6%9c%ac%e4%b8%ad%e7%9a%84sig-cli%ef%bc%88kubectl%ef%bc%89%e7%9a%84%e5%8f%98%e6%9b%b4%e5%86%85%e5%ae%b9%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=36001"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36001\/revisions"}],"predecessor-version":[{"id":92566,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36001\/revisions\/92566"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=36001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=36001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=36001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}