{ "version": "https://jsonfeed.org/version/1", "title": "Kubernetes", "description": "\u9002\u7528\u4e8e\u5927\u89c4\u6a21\u751f\u4ea7\u73af\u5883\u7684\u5bb9\u5668\u7f16\u6392\u7ba1\u7406\u5e73\u53f0\u3002", "home_page_url": "go/k8s", "feed_url": "feed/k8s.json", "icon": "https://cdn.v2ex.com/navatar/27ed/0fb9/1039_large.png?m=1601353687", "favicon": "https://cdn.v2ex.com/navatar/27ed/0fb9/1039_normal.png?m=1601353687", "items": [ { "author": { "url": "member/vegaoqiang", "name": "vegaoqiang", "avatar": "https://cdn.v2ex.com/gravatar/5f6a19e9e2871acbb6298a4078b13181?s=73&d=retro" }, "url": "t/1211822", "title": "\u57fa\u4e8e\u7ec8\u7aef TUI \u7684 k8s \u8fd0\u7ef4\u5de5\u5177", "id": "t/1211822", "date_published": "2026-05-11T03:21:02+00:00", "content_html": "

\u6700\u8fd1\u6298\u817e\u4e86\u4e00\u4e2a\u5c0f\u5de5\u5177\uff0c\u540d\u5b57\u53eb\uff1akop\ufffc

\n

\u5b83\u662f\u4e00\u4e2a\u8fd0\u884c\u5728\u7ec8\u7aef\u91cc\u7684 Kubernetes TUI \uff08 Terminal UI \uff09\u5de5\u5177\uff0c\u53ef\u4ee5\u7406\u89e3\u6210\u300c\u7ec8\u7aef\u7248 Kubernetes \u7ba1\u7406\u9762\u677f\u300d\u3002

\n

\"demo\"

\n

\u7075\u611f\u6700\u65e9\u6765\u81ea\u4e8e lens\ufffc\uff0c\u4f46\u5728\u5b9e\u9645\u4f7f\u7528\u8fc7\u7a0b\u4e2d\uff0c\u6211\u53d1\u73b0\u5f88\u591a\u573a\u666f\u4e0b\u6211\u60f3\u8981\u7684\u662f\uff1a

\n\n

\u4e8e\u662f\u5c31\u81ea\u5df1\u5f00\u59cb\u5199\u4e86 kop \u3002\u6574\u4f53\u98ce\u683c\u7c7b\u4f3c lens \uff0c\u4f46\u662f UI \u5728\u7ec8\u7aef\u4e2d\u5448\u73b0,\u53ef\u4f7f\u7528\u9f20\u6807\u70b9\u51fb\u64cd\u4f5c

\n

\u76ee\u524d\u5df2\u7ecf\u652f\u6301\u7684\u529f\u80fd

\n

\u8d44\u6e90\u7ba1\u7406

\n\n

kop \u5df2\u7ecf\u5b9e\u73b0\u4e86\u5927\u90e8\u5206\u548c lens \u76f8\u540c\u7684\u529f\u80fd

\n

\u4e3a\u4ec0\u4e48\u4e0d\u7528 Web UI \u548c\u684c\u9762\u5ba2\u6237\u7aef\uff1f

\n

kop \u4e3b\u8981\u89e3\u51b3\u5728\u6ca1\u6709\u684c\u9762\u73af\u5883\u548c\u79c1\u6709\u5316\u573a\u666f\u4e0b\u7684 k8s \u8fd0\u7ef4\u5de5\u4f5c\uff0cweb \u548c\u684c\u9762\u5ba2\u6237\u7aef\u5728\u67d0\u4e9b\u573a\u666f\u4e0b\u53ef\u80fd\u4e0d\u9002\u7528\u3002

\n

\u8fd9\u4e9b\u73af\u5883\u91cc\uff1a\nTerminal UI \u7684\u6548\u7387\u5176\u5b9e\u975e\u5e38\u9ad8\u3002\n\u5c24\u5176\u662f\uff1a

\n\n

\u9879\u76ee\u5730\u5740

\n

GitHub\uff1akop Github

\n

\u6587\u6863\uff1akop Docs

\n

\u5982\u679c\u4f60\u5e73\u65f6\u4e5f\u7ecf\u5e38\uff1a

\n\n

\u6b22\u8fce\u4f53\u9a8c\u4e00\u4e0b\uff0c\u76ee\u524d\u6b63\u5728\u6301\u7eed\u4f18\u5316\u4e2d\uff0c\u4e5f\u6b22\u8fce\u63d0\u5efa\u8bae\u3002 \ud83d\ude80

\n" }, { "author": { "url": "member/eryajf", "name": "eryajf", "avatar": "https://cdn.v2ex.com/avatar/1525/5ef3/558036_large.png?m=1752804093" }, "url": "t/1207069", "title": "\u8fd0\u7ef4 help \u8fd0\u7ef4\uff0c\u5f00\u6e90\u4e00\u4e2a\u684c\u9762\u7aef K8S \u591a\u96c6\u7fa4\u7ba1\u7406\u5de5\u5177: https://github.com/eryajf/kite-desktop", "id": "t/1207069", "date_published": "2026-04-20T01:29:10+00:00", "content_html": "

\u505a\u8fd0\u7ef4\u7684\u540c\u5b66\u5e94\u8be5\u90fd\u61c2\u90a3\u79cd\u611f\u53d7\uff1akubectl \u7684\u6572\u591a\u4e86\u96be\u53d7\uff0cWeb Dashboard \u5bc4\u5b58\u4e8e\u6d4f\u89c8\u5668\u4e5f\u6709\u5f88\u591a\u9650\u5236\u3002

\n

\u6240\u4ee5\u6211\u81ea\u5df1\u505a\u4e86\u4e2a\u684c\u9762\u7aef\u7684 K8S \u5de5\u5177\uff1aKite Desktop \uff0c\u57fa\u4e8e Wails v3 \uff08 Go + React \uff09\uff0c\u53ef\u4ee5\u6765\u770b\u770b\u662f\u5426\u5408\u4f60\u7684\u80c3\u53e3\u3002

\n

GitHub\uff1a https://github.com/eryajf/kite-desktop

\n

\u76ee\u524d v0.1.8 \uff0c\u534a\u4e2a\u6708\u5df2\u8fed\u4ee3 9 \u4e2a\u7248\u672c\uff0c\u6301\u7eed\u66f4\u65b0\u4e2d\u3002

\n

\u6838\u5fc3\u529f\u80fd\uff1a

\n\n

\"\"

\n

\u6b22\u8fce\u8bd5\u7528\uff0c\u6b22\u8fce Star \u2b50

\n" }, { "author": { "url": "member/5wunian", "name": "5wunian", "avatar": "https://cdn.v2ex.com/avatar/27e5/9fbb/389496_large.png?m=1775725864" }, "url": "t/1204655", "title": "\u57fa\u4e8e K8S \u5b9e\u73b0\u7684\u65e0\u9650\u6269\u5c55\u7684 tikrok v3 \u4f01\u4e1a\u7248", "id": "t/1204655", "date_published": "2026-04-09T08:19:28+00:00", "content_html": "

Tikrok 3.0

\n
\n

\u73b0\u4ee3\u5316\u5185\u7f51\u7a7f\u900f\u89e3\u51b3\u65b9\u6848 - \u7cbe\u7b80\u67b6\u6784\uff0c\u9ad8\u6027\u80fd\uff0c\u65e0\u9650\u6269\u5c55

\n
\n

\"Go\n\"License\"\n\"Architecture\"\n\"Protocol\"\n\"Scale\"

\n

\u9879\u76ee\u7b80\u4ecb

\n

Tikrok \u662f\u4e00\u4e2a\u4f01\u4e1a\u7ea7\u9ad8\u6027\u80fd\u5185\u7f51\u7a7f\u900f\u5e73\u53f0\uff0c\u91c7\u7528 \u5165\u53e3\u5206\u79bb + \u6570\u636e\u5e73\u9762\u65e0\u9650\u6269\u5c55 \u7684\u4e91\u539f\u751f\u67b6\u6784\u8bbe\u8ba1\u3002

\n

\u6838\u5fc3\u7279\u6027

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\u7279\u6027\u8bf4\u660e
\ud83d\ude80 \u65e0\u9650\u6269\u5c55tikrokd-proxy \u6570\u636e\u5e73\u9762\u53ef\u6c34\u5e73\u65e0\u9650\u6269\u5c55\uff0c\u652f\u6301 Kubernetes HPA \u81ea\u52a8\u6269\u7f29\u5bb9
\ud83c\udfd7\ufe0f \u7cbe\u7b80\u67b6\u6784\u4ec5\u56db\u4e2a\u6838\u5fc3\u7ec4\u4ef6\uff0c\u90e8\u7f72\u7b80\u5355\uff0c\u8fd0\u7ef4\u6210\u672c\u4f4e
\ud83d\udce1 \u591a\u534f\u8bae\u652f\u6301HTTP/HTTPS/TCP/UDP \u5168\u534f\u8bae\u652f\u6301\uff0c\u6ee1\u8db3\u5404\u79cd\u573a\u666f\u9700\u6c42
\ud83d\udd00 SMUX \u591a\u8def\u590d\u7528\u5355\u8fde\u63a5\u591a\u96a7\u9053\uff0c\u51cf\u5c11\u8d44\u6e90\u6d88\u8017\uff0c\u63d0\u5347\u8fde\u63a5\u6548\u7387
\u26a1 KCP \u4f20\u8f93\u57fa\u4e8e UDP \u7684\u9ad8\u53ef\u9760\u4f20\u8f93\u5c42\uff0c\u964d\u4f4e\u5ef6\u8fdf 30-50%
\ud83d\udd10 \u4f01\u4e1a\u7ea7\u5b89\u5168\u591a\u5c42\u6b21 Token \u8ba4\u8bc1\u3001\u4f1a\u8bdd\u5bc6\u94a5\u52a0\u5bc6\u3001\u8bbf\u95ee\u63a7\u5236\u3001\u5ba1\u8ba1\u65e5\u5fd7

\u4f01\u4e1a\u7ea7\u7279\u6027

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\u7279\u6027\u63cf\u8ff0
\ud83d\udc65 \u591a\u79df\u6237\u67b6\u6784\u7528\u6237\u6ce8\u518c\u3001\u767b\u5f55\u3001\u8ba2\u9605\u8ba1\u5212\u3001\u8d44\u6e90\u9694\u79bb\uff0c\u652f\u6301 SaaS \u6a21\u5f0f\u8fd0\u8425
\ud83c\udfab Token \u5206\u5c42\u7ba1\u7406\u96c6\u6210\u4ee4\u724c(ti_)\u3001\u7528\u6237\u4ee4\u724c(tu_)\u3001API Key \u4e09\u5c42\u8ba4\u8bc1\uff0c\u7cbe\u7ec6\u6743\u9650\u63a7\u5236
\ud83d\udcca \u6d41\u91cf\u7edf\u8ba1\u8ba1\u8d39\u5b9e\u65f6\u6d41\u91cf\u76d1\u63a7\u3001\u7528\u91cf\u7edf\u8ba1\u3001\u914d\u989d\u7ba1\u7406\uff0c\u652f\u6301\u6309\u91cf\u8ba1\u8d39\u6a21\u5f0f
\ud83d\udd04 \u9ad8\u53ef\u7528\u5bb9\u707e\u65e0\u72b6\u6001\u8bbe\u8ba1\u3001\u81ea\u52a8\u6545\u969c\u8f6c\u79fb\u3001\u8282\u70b9\u5065\u5eb7\u68c0\u67e5\u3001\u4f18\u96c5\u5173\u95ed\u673a\u5236
\ud83d\udcc8 \u76d1\u63a7\u53ef\u89c2\u6d4bPrometheus \u6307\u6807\u3001\u8282\u70b9\u72b6\u6001\u76d1\u63a7\u3001\u96a7\u9053\u751f\u547d\u5468\u671f\u8ffd\u8e2a
\ud83d\udee1\ufe0f \u8fde\u63a5\u5b89\u5168\u4fdd\u969cSMUX keepalive \u68c0\u6d4b\u3001\u8fde\u63a5\u8d85\u65f6\u6e05\u7406\u3001\u5e42\u7b49\u8d44\u6e90\u7ba1\u7406

\ud83d\udd12 \u5b89\u5168\u4f18\u52bf\uff1a\u53ef\u63a7\u7aef\u53e3\u66b4\u9732

\n
\n

\u521b\u59cb\u4eba\u8bf4\uff1a\u8bbe\u8ba1 Tikrok \u65f6\uff0c\u6211\u53cd\u590d\u601d\u8003\u4e00\u4e2a\u95ee\u9898\u2014\u2014\u7aef\u53e3\u66b4\u9732\u98ce\u9669\u662f\u5185\u7f51\u7a7f\u900f\u7684\u5bbf\u547d\u5417\uff1f

\n

\u8d39\u65af\u6c40\u683c\u6cd5\u5219\u544a\u8bc9\u6211\uff1a\u751f\u6d3b\u4e2d 10%\u7531\u4e8b\u4ef6\u7ec4\u6210\uff0c90%\u7531\u4f60\u7684\u53cd\u5e94\u51b3\u5b9a\u3002

\n

\u7aef\u53e3\u66b4\u9732\u98ce\u9669\u5ba2\u89c2\u5b58\u5728\uff0c\u8fd9\u662f\u90a3 10%\u3002\u4f46**\u5982\u4f55\u5e94\u5bf9\uff0c\u51b3\u5b9a\u4e86\u5b89\u5168\u7684 90%**\uff1a

\n\n

\u6211\u9009\u62e9\u4e3b\u52a8\u5e94\u5bf9\u3002\u5355\u7aef\u53e3\u67b6\u6784\u4e0d\u4ec5\u9501\u6b7b\u4e86\u653b\u51fb\u9762\uff0c\u8fd8\u610f\u5916\u6536\u83b7\u4e86\u767e\u4e07\u7ea7\u8fde\u63a5\u627f\u8f7d\u80fd\u529b\u2014\u2014\u56e0\u4e3a\u65e0\u72b6\u6001\u8bbe\u8ba1\u8ba9\u6bcf\u4e2a\u7aef\u53e3\u90fd\u80fd\u65e0\u9650\u6269\u5c55\u3002\u8fd9\u5c31\u662f\"\u6b63\u786e\u5e94\u5bf9\"\u7684\u8774\u8776\u6548\u5e94\u3002

\n
\n

\u4f20\u7edf\u5185\u7f51\u7a7f\u900f\u65b9\u6848\u9700\u8981\u5728\u9632\u706b\u5899\u5f00\u653e\u5927\u91cf\u7aef\u53e3\uff0c\u5e26\u6765\u4e25\u91cd\u5b89\u5168\u9690\u60a3\u3002Tikrok \u91c7\u7528\u5355\u7aef\u53e3\u7a7f\u900f\u67b6\u6784\uff1a

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\u5bf9\u6bd4\u9879\u4f20\u7edf\u65b9\u6848Tikrok \u65b9\u6848
\u9632\u706b\u5899\u7aef\u53e3\u6bcf\u4e2a\u96a7\u9053\u4e00\u4e2a\u516c\u7f51\u7aef\u53e3 (22, 8080, 3306...)\u4ec5\u5f00\u653e 2 \u4e2a\u7aef\u53e3 (8000/9000)
\u7aef\u53e3\u66b4\u9732\u98ce\u9669\u9ad8\u98ce\u9669 - \u591a\u7aef\u53e3\u591a\u653b\u51fb\u9762\u4f4e\u98ce\u9669 - \u5355\u5165\u53e3\u96c6\u4e2d\u7ba1\u63a7
\u9632\u706b\u5899\u89c4\u5219\u590d\u6742 - \u9700\u9891\u7e41\u66f4\u65b0\u89c4\u5219\u7b80\u5355 - \u56fa\u5b9a\u89c4\u5219\uff0c\u6c38\u4e0d\u53d8\u66f4
\u7aef\u53e3\u626b\u63cf\u66b4\u9732\u6613\u88ab\u53d1\u73b0 - \u591a\u7aef\u53e3\u63a2\u6d4b\u9690\u85cf\u6027\u597d - \u6700\u5c0f\u7aef\u53e3\u66b4\u9732
\u6d41\u91cf\u5ba1\u8ba1\u5206\u6563\u96be\u4ee5\u5ba1\u8ba1\u96c6\u4e2d\u5165\u53e3\uff0c\u7edf\u4e00\u5ba1\u8ba1

\u67b6\u6784\u4f18\u52bf\uff1a

\n
\u4f20\u7edf\u65b9\u6848 (\u5371\u9669)\uff1a\n\u9632\u706b\u5899\u5f00\u653e: 22, 8080, 3306, 5353, 6379... \u2190 \u591a\u7aef\u53e3\u66b4\u9732\n \u2502 \u2502 \u2502 \u2502 \u2502\n \u25bc \u25bc \u25bc \u25bc \u25bc\n SSH Web MySQL DNS Redis \u2190 \u6bcf\u4e2a\u670d\u52a1\u76f4\u63a5\u66b4\u9732\n\nTikrok \u65b9\u6848 (\u5b89\u5168)\uff1a\n\u9632\u706b\u5899\u5f00\u653e: \u4ec5 8000, 9000 \u2190 \u6700\u5c0f\u7aef\u53e3\u66b4\u9732\n \u2502 \u2502\n \u25bc \u25bc\n OpenResty tikrokd-proxy \u2190 \u7edf\u4e00\u5165\u53e3\uff0c\u96c6\u4e2d\u7ba1\u63a7\n \u2502 \u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n \u25bc\n \u7528\u6237\u670d\u52a1\u6c60 (SSH/Web/MySQL...) \u2190 \u670d\u52a1\u9690\u85cf\u5728\u5185\u7f51\n
\n" }, { "author": { "url": "member/LaLy", "name": "LaLy", "avatar": "https://cdn.v2ex.com/gravatar/ee129f22d190687b030c0496dde703d9?s=73&d=retro" }, "url": "t/1202721", "date_modified": "2026-04-01T02:40:38+00:00", "content_html": "

\u76ee\u524d\u4e1a\u52a1\u4e0a\u5b58\u5728\u5927\u91cf\u7684 crontab \u6bcf\u5206\u949f\u4efb\u52a1\u6267\u884c\uff0c\u73b0\u5728\u662f\u5355\u4e2a pod \u91cc\u9762\u8dd1\u4e86\u5f88\u591a\u4e2a\u540c\u7c7b\u578b\u4efb\u52a1\u7684\u5bb9\u5668\uff0c\u6700\u591a\u7684\u662f 10 \u4e2a\u4efb\u52a1\u5728\u540c\u4e00\u4e2a pod \u91cc\u9762\uff0c\u4efb\u52a1\u4e00\u8dd1\u8d77\u6765\uff0cCPU \u5c31\u544a\u8b66\u4e86\uff0c\u5df2\u7ecf\u505a\u4e86\u8d44\u6e90\u9650\u5236\uff0c\u4f46\u8fd8\u662f\u6491\u4e0d\u4f4f 10 \u4e2a\u4e00\u8d77\u8dd1\u8d77\u6765\u3002

\n

\u5f53\u524d\u60f3\u5230\u7684\u529e\u6cd5\u662f\uff0c\u4e00\u4e2a\u4efb\u52a1\u4e00\u4e2a pod,\u8fd9\u6837\u62c6\u5206\u51fa\u6765\uff0c\u5927\u6982\u4f1a\u6709\u4e00\u767e\u591a\u4e2a pod,\u611f\u89c9\u8d44\u6e90\u4e5f\u662f\u5360\u7528\u6bd4\u8f83\u591a\u7684\u3002\u8fd8\u6709\u4e00\u4e2a\u949f\u65b9\u6cd5\u5c31\u662f\u4e00\u4e2a pod \u5bb9\u5668\u91cc\u9762\u8dd1\u591a\u6761\u4efb\u52a1\uff0c\u987a\u5e8f\u6267\u884c\uff0c\u5982\u679c\u8fd9\u6837\uff0c\u5176\u4e2d\u4e00\u4e2a\u4efb\u52a1\u6709\u95ee\u9898\u5c31\u5168\u6302\u4e86\u3002

\n

\u60f3\u8bf7\u6559\u4e0b\u5927\u4f6c\u4eec\uff0c\u8fd8\u6709\u4ec0\u4e48\u66f4\u597d\u7684\u89e3\u51b3\u529e\u6cd5\u5417

\n", "date_published": "2026-04-01T02:36:21+00:00", "title": "\u600e\u4e48\u4f18\u5316\u96c6\u7fa4\u4e0a\u5927\u91cf crontab \u6267\u884c\u95ee\u9898", "id": "t/1202721" }, { "author": { "url": "member/chturing184", "name": "chturing184", "avatar": "https://cdn.v2ex.com/avatar/2240/36a7/118839_large.png?m=1777520785" }, "url": "t/1201968", "title": "K8s Admin\uff1a\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u7684\u591a\u96c6\u7fa4 Kubernetes \u7ba1\u7406\u5e73\u53f0", "id": "t/1201968", "date_published": "2026-03-29T04:46:29+00:00", "content_html": "

K8s Admin\uff1a\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u7684\u591a\u96c6\u7fa4 Kubernetes \u7ba1\u7406\u5e73\u53f0

\n

\u80cc\u666f\uff1a\u6211\u4eec\u4e3a\u4ec0\u4e48\u8fd8\u9700\u8981\u4e00\u4e2a K8s \u7ba1\u7406\u5e73\u53f0\uff1f

\n

2025 \u5e74 8 \u6708 1 \u65e5\uff0c\u56fd\u5185\u6700\u77e5\u540d\u7684 Kubernetes \u7ba1\u7406\u5e73\u53f0 KubeSphere \u7a81\u7136\u5ba3\u5e03\u95ed\u6e90\u3002\u5b98\u65b9\u5220\u9664\u4e86 Docker \u955c\u50cf\u3001\u4e0b\u67b6\u4e86\u5b89\u88c5\u6587\u6863\u3001\u5173\u95ed\u4e86\u4e0b\u8f7d\u94fe\u63a5\uff0c\u751a\u81f3\u9501\u5b9a\u4e86 GitHub \u8ba8\u8bba\u533a\u2014\u2014\u6ca1\u6709\u4efb\u4f55\u8fc7\u6e21\u671f\u3002\u5927\u91cf\u5728\u751f\u4ea7\u73af\u5883\u4e2d\u4f7f\u7528 KubeSphere \u7684\u4f01\u4e1a\u4e00\u591c\u4e4b\u95f4\u88ab\"\u629b\u5f03\"\uff0c\u6838\u5fc3\u6210\u5458\u5f53\u5929\u79bb\u804c\uff0c\u793e\u533a\u79f0\u4e4b\u4e3a\"\u4fe1\u4efb\u584c\u65b9\"\u3002

\n

\u53e6\u4e00\u8fb9\uff0cRancher \u867d\u7136\u4ecd\u5728\u7ef4\u62a4\uff0c\u4f46\u957f\u671f\u5b58\u5728\u7684\u75db\u70b9\u8ba9\u5f88\u591a\u56e2\u961f\u671b\u800c\u5374\u6b65\uff1a

\n\n

KubeSphere \u95ed\u6e90\u3001Rancher \u8fc7\u91cd\u2014\u2014\u5bf9\u4e8e\u53ea\u9700\u8981\u4e00\u4e2a\u7b80\u5355\u597d\u7528\u7684\u591a\u96c6\u7fa4\u7ba1\u7406\u754c\u9762\u7684\u56e2\u961f\u6765\u8bf4\uff0c\u9009\u62e9\u5e76\u4e0d\u591a\u3002\u8fd9\u5c31\u662f\u6211\u505a K8s Admin \u7684\u539f\u56e0\u3002

\n

K8s Admin \u662f\u4ec0\u4e48

\n

K8s Admin \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u591a\u96c6\u7fa4 Kubernetes \u7ba1\u7406\u5e73\u53f0\uff0c\u57fa\u4e8e Next.js 16 \u548c React 19 \u6784\u5efa\u3002\u5b83\u7684\u8bbe\u8ba1\u7406\u5ff5\u662f\u591f\u7528\u5c31\u597d\u2014\u2014\u4e0d\u505a\u5e73\u53f0\u7684\u5e73\u53f0\uff0c\u53ea\u505a\u4e00\u4e2a\u8ba9\u4f60\u80fd\u5feb\u901f\u7ba1\u7406\u591a\u4e2a K8s \u96c6\u7fa4\u7684 Web \u5de5\u5177\u3002

\n

GitHub \u5730\u5740\uff1ahttps://github.com/twwch/next-k8s-admin

\n

\"Dashboard

\n

\u6838\u5fc3\u529f\u80fd

\n

1. \u591a\u96c6\u7fa4\u7ba1\u7406

\n

\u652f\u6301\u901a\u8fc7 Kubeconfig \u3001ServiceAccount Token \u3001EKS Token \u4e09\u79cd\u65b9\u5f0f\u63a5\u5165\u96c6\u7fa4\uff0c\u4e00\u4e2a\u754c\u9762\u7ba1\u7406\u6240\u6709\u96c6\u7fa4\u3002

\n

\"\u96c6\u7fa4\u7ba1\u7406\"

\n

2. \u5b8c\u6574\u7684\u8d44\u6e90\u7ba1\u7406

\n

\u8986\u76d6\u65e5\u5e38\u8fd0\u7ef4\u6240\u9700\u7684\u5168\u90e8 K8s \u8d44\u6e90\uff1aDeployment \u3001StatefulSet \u3001DaemonSet \u3001Job \u3001Pod \u3001Service \u3001Ingress \u3001ConfigMap \u3001Secret \u3001PVC \u3001StorageClass \u3001Namespace \u3002

\n

\u652f\u6301\u5728\u7ebf YAML \u7f16\u8f91\uff0c\u6240\u89c1\u5373\u6240\u5f97\u3002

\n\n\n\n\n\n\n\n\n\n
\"Deployments\"\"Services\"
DeploymentsServices
\n

\"\u8d44\u6e90

\n

3. Pod \u7ec8\u7aef & \u5b9e\u65f6\u65e5\u5fd7

\n

\u57fa\u4e8e WebSocket + xterm.js \u5b9e\u73b0\u7684 Pod \u7ec8\u7aef\uff0c\u76f4\u63a5\u5728\u6d4f\u89c8\u5668\u91cc\u8fdb\u5165\u5bb9\u5668 Shell \u3002\u5b9e\u65f6\u65e5\u5fd7\u6d41\u5f0f\u67e5\u770b\uff0c\u4e0d\u7528\u518d\u5207\u5230\u547d\u4ee4\u884c\u6572 kubectl logs -f\u3002

\n\n\n\n\n\n\n\n\n\n
\"Pod\"\u5b9e\u65f6\u65e5\u5fd7\"
Pod \u7ec8\u7aef\u5b9e\u65f6\u65e5\u5fd7
\n

4. RBAC \u6743\u9650\u63a7\u5236

\n

\u5185\u7f6e super-admin \u3001cluster-admin \u3001developer \u3001viewer \u56db\u4e2a\u89d2\u8272\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u89d2\u8272\u3002\u6743\u9650\u7c92\u5ea6\u7ec6\u5230\u96c6\u7fa4 + \u547d\u540d\u7a7a\u95f4 + \u8d44\u6e90\u7c7b\u578b + \u64cd\u4f5c\u7c7b\u578b\uff0c\u9002\u5408\u591a\u4eba\u534f\u4f5c\u573a\u666f\u3002

\n\n\n\n\n\n\n\n\n\n
\"\u7528\u6237\u7ba1\u7406\"\"\u89d2\u8272\u521b\u5efa\"
\u7528\u6237\u7ba1\u7406\u89d2\u8272\u521b\u5efa
\n

5. \u5e94\u7528\u53d1\u5e03 & \u98de\u4e66\u901a\u77e5

\n

\u652f\u6301\u5e94\u7528\u53d1\u5e03\u8bb0\u5f55\u8ffd\u8e2a\u548c\u56de\u6eda\u3002\u90e8\u7f72\u65f6\u81ea\u52a8\u901a\u8fc7\u98de\u4e66 Webhook \u53d1\u9001\u901a\u77e5\u5361\u7247\uff0c\u65b9\u4fbf\u56e2\u961f\u534f\u4f5c\u3002

\n\n\n\n\n\n\n\n\n\n
\"\u53d1\u5e03\u8bb0\u5f55\"\"\u98de\u4e66\u901a\u77e5\"
\u53d1\u5e03\u8bb0\u5f55\u98de\u4e66\u901a\u77e5\u5361\u7247
\n

6. \u5ba1\u8ba1\u65e5\u5fd7

\n

\u6240\u6709\u64cd\u4f5c\u7559\u75d5\uff0c\u8bb0\u5f55\u64cd\u4f5c\u4eba\u3001IP \u3001\u65f6\u95f4\u3001\u52a8\u4f5c\uff0c\u6ee1\u8db3\u5b89\u5168\u5ba1\u8ba1\u9700\u6c42\u3002

\n

\"\u5ba1\u8ba1\u65e5\u5fd7\"

\n

\u6280\u672f\u6808

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\u7c7b\u522b\u6280\u672f
\u524d\u7aefNext.js 16 \u3001React 19 \u3001Ant Design 5 \u3001Tailwind CSS 4
\u540e\u7aefNext.js API Routes \u3001WebSocket Server \u3001Drizzle ORM
\u6570\u636e\u5e93PostgreSQL
\u8ba4\u8bc1JWT \u3001\u90ae\u7bb1\u9a8c\u8bc1\u7801

\u5feb\u901f\u4f53\u9a8c

\n
git clone https://github.com/twwch/k8s-admin.git\ncd k8s-admin\ncp .env.example .env\n# \u7f16\u8f91 .env \uff0c\u914d\u7f6e DATABASE_URL \u548c ENCRYPTION_KEY\ndocker compose up -d\n
\n

\u9996\u6b21\u542f\u52a8\u81ea\u52a8\u5efa\u5e93\u3001\u8fc1\u79fb\u3001\u521b\u5efa\u7ba1\u7406\u5458\u8d26\u53f7\uff08\u5bc6\u7801\u5728\u63a7\u5236\u53f0\u8f93\u51fa\uff09\u3002\u4e5f\u652f\u6301 npm run dev \u672c\u5730\u5f00\u53d1\u3002

\n

\u548c\u5176\u4ed6\u65b9\u6848\u7684\u5bf9\u6bd4

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
K8s AdminKubeSphereRancher
\u5f00\u6e90\u534f\u8baeApache 2.0\u5df2\u95ed\u6e90Apache 2.0
\u90e8\u7f72\u590d\u6742\u5ea6\u4e00\u4e2a\u5bb9\u5668 + PostgreSQL\u4f9d\u8d56 K8s \u96c6\u7fa4\u90e8\u7f72\u9700\u8981\u72ec\u7acb\u96c6\u7fa4
\u8d44\u6e90\u5360\u7528\u6781\u4f4e\uff08~100MB \uff09\u8f83\u9ad8\u9ad8\uff08\u5efa\u8bae 4C8G+\uff09
\u591a\u96c6\u7fa4\u7ba1\u7406\u2705\u2705\u2705
RBAC\u2705\u2705\u2705
Pod \u7ec8\u7aef\u2705\u2705\u2705
\u4e0a\u624b\u96be\u5ea6\u4f4e\u4e2d\u9ad8

\u603b\u7ed3

\n

K8s Admin \u4e0d\u6253\u7b97\u505a\u4e00\u4e2a\u5927\u800c\u5168\u7684\u5e73\u53f0\uff0c\u5b83\u89e3\u51b3\u7684\u662f\u4e00\u4e2a\u5177\u4f53\u7684\u95ee\u9898\uff1a\u7528\u6700\u5c0f\u7684\u6210\u672c\uff0c\u8ba9\u56e2\u961f\u80fd\u901a\u8fc7 Web \u754c\u9762\u7ba1\u7406\u591a\u4e2a Kubernetes \u96c6\u7fa4\u3002

\n

\u5982\u679c\u4f60\u7684\u56e2\u961f\u6b63\u5728\u5bfb\u627e KubeSphere \u7684\u66ff\u4ee3\u65b9\u6848\uff0c\u6216\u8005\u89c9\u5f97 Rancher \u592a\u91cd\uff0c\u4e0d\u59a8\u8bd5\u8bd5\u3002

\n\n" }, { "author": { "url": "member/soleils", "name": "soleils", "avatar": "https://cdn.v2ex.com/gravatar/6b20eecbba98f121270fa56f0886b2f4?s=73&d=retro" }, "url": "t/1200412", "title": "K8S \u7f51\u5173\u6c42\u52a9, \u517c\u5bb9\u8001 HTTP \u534f\u8bae\u548c\u8001 TLS \u7248\u672c", "id": "t/1200412", "date_published": "2026-03-23T06:47:59+00:00", "content_html": "\u5ba2\u6237\u5927\u591a\u6570\u662f\u94f6\u884c\u7684, \u67d0\u4e9b\u7528\u7684\u8bf7\u6c42\u5e93\u90fd\u5f88\u8001

\u6700\u8fd1\u6211\u4eec\u8fc1\u79fb\u4e91\u8d44\u6e90, \u5728\u65b0 K8S \u91cc\u7528\u4e86 envoy-gateway 1.6.5, \u95ee Gemini \u8bf4\u53ef\u4ee5\u901a\u8fc7\u8bbe\u7f6e:
tls:
minVersion: \"1.0\"
maxVersion: \"1.3\"
\u6765\u517c\u5bb9 TLS1.0, http \u8bbe\u7f6e\u4e86 http10: {}\u6765\u517c\u5bb9, \u6211\u672c\u5730\u7528 curl \u6d4b\u8bd5\u4e5f\u6ca1\u95ee\u9898(\u540e\u6765\u53d1\u73b0\u6ca1\u7528).

\u4e0a\u7ebf\u540e\u5c11\u6570\u94f6\u884c\u5ba2\u6237\u62a5\u9519: \u8981\u4e0d\u7136\u662f 426, \u8981\u4e0d\u7136\u662f SSL \u63e1\u624b\u6709\u95ee\u9898. \u73b0\u5728\u6211\u86cb\u75bc\u7684\u8981\u6b7b, \u4e0d\u80fd\u56e0\u4e3a\u5c11\u90e8\u5206\u5ba2\u6237\u53c8\u5207\u56de\u8001\u4e91, \u4f46\u7ebf\u4e0a\u60f3\u6362 treafik \u53c8\u6765\u4e0d\u53ca\u4e86, \u73b0\u5728\u600e\u4e48\u529e

(\u8fd8\u662f\u5e94\u8be5\u656c\u754f\u751f\u4ea7\u73af\u5883)" }, { "author": { "url": "member/Debug1998", "name": "Debug1998", "avatar": "https://cdn.v2ex.com/gravatar/cd9d5a9c7fa363a942093f3138bcae8b?s=73&d=retro" }, "url": "t/1198395", "title": "\u521d\u5b66 k8s\uff0c\u5982\u4f55\u89e3\u51b3\u7f51\u7edc\u4e0b\u8f7d\u6162\u7684\u95ee\u9898\uff1f", "id": "t/1198395", "date_published": "2026-03-15T07:03:47+00:00", "content_html": "

\u76ee\u524d\u5c0f\u5f1f\u4e3b\u8981\u662f\u901a\u8fc7 ssh \u5230 ubuntu \u7269\u7406\u673a\u4e0a\uff0c\u6709\u7ffb\u5899\u8bbe\u5907\uff0c\u5728 ubuntu \u4e0a\u4e0b\u8f7d\u4e86 flcalsh,\u4f46\u662f\u4e0b\u8f7d k8s \u7684\u94fe\u63a5\u5c31\u5f88\u6162\uff0c\u6ca1\u8d70\u4ee3\u7406\u3002\n\u5982\uff1acurl -LO \"https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert\"\n\u4e0b\u8f7d\u5c31\u5f88\u6162\u3002

\n" }, { "author": { "url": "member/korone", "name": "korone", "avatar": "https://cdn.v2ex.com/gravatar/3591a1561453a29280cd026341df621e?s=73&d=retro" }, "url": "t/1194960", "title": "\u5728\u963f\u91cc\u4e91\u4e0a\u642d\u5efa K8S \u7684\u6700\u4f73\u5b9e\u8df5\u662f\u4ec0\u4e48\uff1f", "id": "t/1194960", "date_published": "2026-03-01T04:01:01+00:00", "content_html": "

\u4e4b\u524d\u53ea\u7528 k3s \u5728 ECS \u4e0a\u642d\u8fc7\uff0c\u73b0\u5728\u95ee AI \uff0c\u4ed6\u63a8\u8350\u6211\u7528\u963f\u91cc\u4e91\u7684 ACK \uff0c\u7528 ACK \u5b66\u4e60\u6210\u672c\u4f1a\u5f88\u9ad8\u5417\uff1f\u8fd9\u4ea7\u54c1\u6709\u6ca1\u6709\u5f88\u591a\u5751\u3002

\n" }, { "author": { "url": "member/c0nstantien", "name": "c0nstantien", "avatar": "https://cdn.v2ex.com/avatar/95e3/37c4/549405_large.png?m=1758532367" }, "url": "t/1186255", "title": "[\u6c42\u52a9] sealos \u79c1\u6709\u5316\u90e8\u7f72\u5931\u8d25", "id": "t/1186255", "date_published": "2026-01-16T07:51:33+00:00", "content_html": "

sealos \u79c1\u6709\u5316\u90e8\u7f72\u5931\u8d25

\n

\u4f7f\u7528 sealos \u5b98\u7f51\u7684 install_v2.sh \u811a\u672c\u90e8\u7f72\uff0c\u5728\u5b89\u88c5 k8s \u96c6\u7fa4\u65f6\u62a5\u9519\uff0c\u6709\u4eba\u9047\u5230\u8fd9\u79cd\u60c5\u51b5\u561b

\n

\u6267\u884c\u65e5\u5fd7\u8fc7\u7a0b\u4e2d\u51fa\u73b0\u7684 warn \u65e5\u5fd7\uff0c\u6211\u5224\u65ad\u5e94\u8be5\u662f\u5b89\u88c5\u5931\u8d25\u7684\u539f\u56e0

\n
2026-01-16T14:59:36 info trying default http mode to sync images to hosts [172.16.254.32:22]\n2026-01-16T14:59:36 warn failed to copy image 127.0.0.1:32931/coredns/coredns:v1.10.1: trying to reuse blob sha256:25b7032c281a433b92d09930f3a03c0f7382c27eb69ae7f35addf2e3853dbba7 at destination: pinging container registry 172.16.254.32:5050: received unexpected HTTP status: 502 Bad Gateway\n2026-01-16T14:59:36 warn failed to copy image 127.0.0.1:32931/coredns/coredns:v1.10.1: trying to reuse blob sha256:25b7032c281a433b92d09930f3a03c0f7382c27eb69ae7f35addf2e3853dbba7 at destination: pinging container registry 172.16.254.32:5050: received unexpected HTTP status: 502 Bad Gateway\n2026-01-16T14:59:36 warn failed to copy image 127.0.0.1:32931/etcd:3.5.15-0: trying to reuse blob sha256:f531499c6b730fc55a63e5ade55ce2c849bbf03f894248e3a2092689e3749312 at destination: pinging container registry 172.16.254.32:5050: received unexpected HTTP status: 502 Bad Gateway\n2026-01-16T14:59:36 warn failed to copy image 127.0.0.1:32931/etcd:3.5.15-0: trying to reuse blob sha256:f531499c6b730fc55a63e5ade55ce2c849bbf03f894248e3a2092689e3749312 at destination: pinging container registry 172.16.254.32:5050: received unexpected HTTP status: 502 Bad Gateway\n2026-01-16T14:59:36 warn failed to copy image 127.0.0.1:32931/kube-apiserver:v1.28.15: trying to reuse blob sha256:0674a6f58b64d0431620993268b1a1b0ef8618ee3cffd96d4662c2759ec43894 at destination: pinging container registry 172.16.254.32:5050: received unexpected HTTP status: 502 Bad Gateway\n2026-01-16T14:59:36 warn failed to copy image 127.0.0.1:32931/kube-apiserver:v1.28.15: trying to reuse blob sha256:0674a6f58b64d0431620993268b1a1b0ef8618ee3cffd96d4662c2759ec43894 at destination: pinging container registry 172.16.254.32:5050: received unexpected HTTP status: 502 Bad Gateway\n
\n
2026-01-16T14:59:48 info start to pull images: sealos.hub:5000/kube-apiserver:v1.28.15, sealos.hub:5000/kube-controller-manager:v1.28.15, sealos.hub:5000/kube-scheduler:v1.28.15, sealos.hub:5000/kube-proxy:v1.28.15, sealos.hub:5000/pause:3.9, sealos.hub:5000/etcd:3.5.15-0, sealos.hub:5000/coredns/coredns:v1.10.1\nE0116 14:59:48.968711 128637 remote_image.go:180] \"PullImage from image service failed\" err=\"rpc error: code = NotFound desc = failed to pull and unpack image \\\"sealos.hub:5000/kube-apiserver:v1.28.15\\\": failed to resolve reference \\\"sealos.hub:5000/kube-apiserver:v1.28.15\\\": sealos.hub:5000/kube-apiserver:v1.28.15: not found\" image=\"sealos.hub:5000/kube-apiserver:v1.28.15\"\nFATA[0000] pulling image: rpc error: code = NotFound desc = failed to pull and unpack image \"sealos.hub:5000/kube-apiserver:v1.28.15\": failed to resolve reference \"sealos.hub:5000/kube-apiserver:v1.28.15\": sealos.hub:5000/kube-apiserver:v1.28.15: not found \n2026-01-16T14:59:48 error Applied to cluster error: failed to init masters: pull image sealos.hub:5000/kube-apiserver:v1.28.15 failed, error: exit status 1\nError: failed to init masters: pull image sealos.hub:5000/kube-apiserver:v1.28.15 failed, error: exit status 1\n
\n

\u5176\u4e2d\u6267\u884c\u7684\u547d\u4ee4\u662f

\n
sealos run ghcr.io/labring/sealos/kubernetes:v1.28.15 --env KUBEADM_POD_SUBNET=100.64.0.0/10 --env KUBEADM_SERVICE_SUBNET=10.96.0.0/22 --env KUBEADM_MAX_PODS=120 --env KUBEADM_SERVICE_RANGE= --env criData=/var/lib/containerd --env registryPassword=passw0rd --pk=/root/.ssh/id_rsa --passwd=\n
\n" }, { "author": { "url": "member/shenzheke", "name": "shenzheke", "avatar": "https://cdn.v2ex.com/gravatar/7aab823a4d7a5c23b941a4d8ef42774a?s=73&d=retro" }, "url": "t/1186037", "title": "K8s etcd \u6062\u590d", "id": "t/1186037", "date_published": "2026-01-15T14:18:03+00:00", "content_html": "

k8s \u96c6\u7fa4 1.29.8 3master \u8282\u70b9\uff0c\u56e0\u4e3a\u4e0d\u7559\u795e\u6267\u884c\u4e86\u5f71\u54cd IP \u5730\u5740\u7684\u547d\u4ee4\uff0c\u5bfc\u81f4\u63a7\u5236\u9762\u96ea\u5d29\u3002\u5229\u7528\u5176\u4e2d\u4e00\u4e2a\u8282\u70b9\u5168\u65b0\u91cd\u5efa\u96c6\u7fa4\uff0c\u80fd\u5426\u7528\u5df2\u6709\u7684 etcd \u6570\u636e\u5e93\u8fd8\u539f\u4e4b\u524d\u7684\u8d44\u6e90 pod deployment \u7b49\u7b49\u3002

\n" }, { "author": { "url": "member/zhoudaiyu", "name": "zhoudaiyu", "avatar": "https://cdn.v2ex.com/avatar/b75f/9ee0/163414_large.png?m=1682659533" }, "url": "t/1185776", "title": "\u5927\u5bb6\u5728\u751f\u4ea7\u73af\u5883\u4f7f\u7528 Redis on K8s \u7684\u65b9\u6848\u662f\u4ec0\u4e48\uff1f", "id": "t/1185776", "date_published": "2026-01-15T01:06:26+00:00", "content_html": "\u6211\u4eec\u7684\u9700\u6c42\u662f\u8981\u7528 redis-cluster \uff0c\u800c\u4e14\u4e0d\u80fd\u5207\u6362 valkey \u6216\u8005 dragonflydb \uff0c\u79c1\u6709\u4e91\u90e8\u7f72\u3002\u76ee\u524d\u8c03\u7814\u4e86 OT-CONTAINER-KIT \u7684 redis-operator \u548c bitnami \u7684 redis-cluster \uff0c\u4f46\u662f\u4e24\u8005\u90fd\u6709\u5751\uff0c\u524d\u8005 issue \u4e0a\u770b\u6269\u5bb9\u6709\u4e9b\u95ee\u9898\uff0c\u540e\u8005\u4e3b\u8981\u662f\u4e0d\u5728 github \u4e0a\u516c\u5f00\u7ef4\u62a4\u9879\u76ee\u4e86\u3002\u5927\u5bb6\u6709\u4ec0\u4e48\u5efa\u8bae\uff0c\u8fd8\u6709\u73b0\u5728\u4f7f\u7528\u7684\u65b9\u6848\u662f\u5565\uff1f" }, { "author": { "url": "member/lianglin999", "name": "lianglin999", "avatar": "https://cdn.v2ex.com/gravatar/c946fa5e3c88eda4210c0a1ad5310fb9?s=73&d=retro" }, "url": "t/1184386", "title": "Claude Code Skill + K8S \u5b89\u5168\u5ba1\u8ba1\u6709\u6ca1\u6709\u641e\u5934?", "id": "t/1184386", "date_published": "2026-01-10T01:36:25+00:00", "content_html": "

Claude Code Skill \u8bdd\u9898\u8fd9\u4e48\u706b\uff0c\u6211\u4e5f\u6765\u51d1\u4e2a\u70ed\u5ea6 \ud83d\ude80

\n

\u5f00\u53d1\u4e86\u4e00\u4e2a kube-audit-kit.

\n

\ud83d\udee1\ufe0f \u5b83\u80fd\u505a\u4ec0\u4e48\uff1a

\n\n

\ud83c\udfaf \u89e3\u51b3\u4ec0\u4e48\u75db\u70b9\uff1a

\n\n

\u6b22\u8fce\u8bd5\u7528\uff0cStar \u652f\u6301 \u2b50\ufe0f

\n

https://github.com/crazygit/kube-audit-kit

\n" }, { "author": { "url": "member/jciba5n4y6u", "name": "jciba5n4y6u", "avatar": "https://cdn.v2ex.com/avatar/a85d/a099/159657_large.png?m=1767776359" }, "url": "t/1183808", "title": "\u6361\u4e86\u70b9\u5783\u573e\uff0c\u6253\u7b97\u5728\u5bb6\u91cc\u73a9 K3S\uff0c\u6c42\u521b\u610f", "id": "t/1183808", "date_published": "2026-01-07T09:07:24+00:00", "content_html": "

\u628a\u5bb6\u91cc\u7684\u65e7\u5185\u5b58\u3001\u786c\u76d8\u6574\u7406\u4e86\u4e0b\uff0c\u5165\u4e86\u4e00\u4e2a\u5bcc\u58eb\u901a\u7684 Q558 \uff0c\u987a\u4fbf\u51c6\u5907\u628a\u7fa4\u6656\u5f00\u4e2a NFS \u505a\u540e\u53f0\uff0c\u6298\u817e\u4e00\u4e0b\uff0c\u73a9\u73a9 CI/CD \uff0c\u7f51\u7edc\u865a\u62df\u5316\uff0c\u6d41\u91cf\u5ba1\u8ba1\uff0c\u65c1\u8def\u7531\uff0c\u81ea\u52a8\u7b7e\u5230\uff0c\u89c6\u9891\u7f16\u8f91\uff0c\u4e2a\u4eba\u90ae\u4ef6\u5907\u4efd\u5f52\u6863\u5565\u7684\u3002\u4e89\u53d6\u80fd\u505a\u5230\u6570\u636e\u548c\u4e1a\u52a1\u903b\u8f91\u5206\u79bb\uff0c\u5b9e\u73b0\u91cd\u8981\u6570\u636e\u843d\u5728\u7fa4\u6656\uff0c\u52a0\u5bc6\u540e\u5907\u4efd\u5230\u4e91\u7aef\u3002

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\u7f16\u53f7\u8bbe\u5907\u5185\u5b58\u5b58\u50a8\u67b6\u6784
1J19004 GB64 GB SSDx86
2i3-710032 GB512 GB SSDx86
3i3-9100T32 GB500 GB SSDx86
4Raspberry Pi 48 GBSD / USBARM64
5Raspberry Pi 48 GBSD / USBARM64

\n

\u51c6\u5907\u6162\u6162\u6298\u817e\u7740\u73a9\u4e86\uff0c\u5927\u5bb6\u6709\u5565\u597d\u73a9\u7684\u60f3\u6cd5\u5417\uff1f

\n

\u7528 chatGPT \u5f00\u59cb\u6298\u817e\u4e86\uff0c\u4ed6\u8bf4\u8fd9\u4e9b\u51d1\u5408\u53ef\u4ee5\u73a9\u4e86\u3002\u6211\u672c\u6765\u60f3\u5185\u5b58\u591a\u70b9\uff0c\u4f46\u73b0\u5728\u592a\u8d35\u4e86\uff0c\u51d1\u5408\u7740\u4e86\u3002\u786c\u4ef6\u96c6\u9f50\u4e86\uff0c\u8f6f\u4ef6\u57fa\u7840\u73af\u5883\u8fd8\u6ca1\u642d\u8d77\u6765\u3002\u6709\u5565\u5751\u6216\u8005\u597d\u73a9\u7684\u70b9\uff0c\u6b22\u8fce\u6307\u70b9\u3002

\n" }, { "author": { "url": "member/fx", "name": "fx", "avatar": "https://cdn.v2ex.com/avatar/44c2/821d/32939_large.png?m=1758687863" }, "url": "t/1178294", "title": "istio \u7684 ambient \u6a21\u5f0f\u73b0\u5728\u6210\u719f\u4e86\u5417\uff1f", "id": "t/1178294", "date_published": "2025-12-11T07:48:40+00:00", "content_html": "" }, { "author": { "url": "member/Qetesh", "name": "Qetesh", "avatar": "https://cdn.v2ex.com/avatar/f54f/b95e/82402_large.png?m=1724140089" }, "url": "t/1177138", "title": "\u8f7b\u91cf\u7684 K8s \u955c\u50cf\u81ea\u52a8\u66f4\u65b0\u5de5\u5177\uff1a kube-watchtower", "id": "t/1177138", "date_published": "2025-12-05T07:10:48+00:00", "content_html": "

\u4f7f\u7528 K8s \u540e\uff0c\u4e00\u76f4\u60f3\u627e\u4e2a\u7c7b\u4f3c Watchtower \u7b80\u5355\u7684\u5bb9\u5668\u81ea\u52a8\u66f4\u65b0\u5de5\u5177

\n

\u770b\u4e86 Argo CD Image Updater \u3001Renovate \u548c Keel \u7b49\u5de5\u5177\uff0c\u53d1\u73b0\u5b83\u4eec\u5bf9\u4e8e Homelab \u6216\u4e2d\u5c0f\u73af\u5883\u6765\u8bf4\u90fd\u592a\u91cd\u4e86

\n

\u5c31\u81ea\u5df1\u5199\u4e86\u4e00\u4e2a\uff0ckube-watchtower

\n

\u6838\u5fc3\u903b\u8f91

\n

\u4e0d\u505a\u590d\u6742\u7684\u72b6\u6001\u7ba1\u7406\uff0c\u4fdd\u6301\u6781\u7b80\u548c\u539f\u751f

\n\n

\u7279\u6027

\n\n

Github: https://github.com/Qetesh/kube-watchtower

\n

\u4ee3\u7801\u5b8c\u5168\u5f00\u6e90\uff0c\u5982\u679c\u89c9\u5f97\u597d\u7528\uff0c\u6c42\u4e2a Star \u2b50\ufe0f\uff0c\u4e5f\u6b22\u8fce\u63d0 Issue \u6216 PR \u4ea4\u6d41\uff5e

\n" }, { "author": { "url": "member/emmmmmmmmmmmm", "name": "emmmmmmmmmmmm", "avatar": "https://cdn.v2ex.com/gravatar/06ebca5242e4063bb28e6eab9a509906?s=73&d=retro" }, "url": "t/1174386", "title": "openwrt + pve (pve \u4e0a\u90e8\u7f72 k8s) \u80fd\u591f\u5b9e\u73b0 \u5c06 op \u4e0a\u7684 ipv6-pd \u52a8\u6001\u7684\u5206\u914d\u5230 k8s svc \u4e0a\u5417\uff1f\u5f53 ra \u901a\u544a\u5230\u8fbe\u65f6\u80fd\u591f\u81ea\u52a8\u66f4\u65b0\u7684\u7a0b\u5ea6\u3002", "id": "t/1174386", "date_published": "2025-11-22T08:12:20+00:00", "content_html": "

\u4e4b\u524d\u60f3\u8fd9\u4e48\u5b9e\u73b0\uff0c\u4f46\u662f\u597d\u50cf\u6ca1\u65b9\u6848\uff0c\u65f6\u9694 1 \uff0c2 \u5e74\uff0c\u60f3\u8d77\u6765\u5c31\u7ee7\u7eed\u95ee\u95ee\u3002\u5f53\u65f6\u8003\u8651\u8fc7\u8fd9\u79cd\u65b9\u6848\uff0c\u770b\u5230 cni \u597d\u50cf\u4e0d\u652f\u6301\uff0cmetallb \u4e5f\u4e0d\u652f\u6301\u3002\u5c31\u653e\u5f03\u4e86\u3002\u73b0\u5728\u8fd8\u662f\u4f7f\u7528\u7684 lxc + docker , \u81f3\u5c11\u6ca1\u6709 ip \u95ee\u9898\uff0c\u5916\u7f51\u80fd\u591f\u8bbf\u95ee\u3002\u5982\u679c k8s \u4e5f\u652f\u6301\u8fd9\u79cd\u6a21\u5f0f\uff0c\u5c31\u53ef\u4ee5\u5168\u9762\u4f7f\u7528 k8s \u6765\u7ba1\u7406\u5bb9\u5668\u4e86\u3002

\n" }, { "author": { "url": "member/Branlice", "name": "Branlice", "avatar": "https://cdn.v2ex.com/gravatar/997a2197b7a701b3c0a4dba3a8032847?s=73&d=retro" }, "url": "t/1171459", "title": "\u6709\u4e00\u4e9b Golang/k8s \u57fa\u7840\uff0c\u60f3\u8f6c\u884c\u505a \u4e91\u539f\u751f\u5f00\u53d1 \u6211\u8fd8\u9700\u8981\u5b66\u4ec0\u4e48\uff1f", "id": "t/1171459", "date_published": "2025-11-09T00:21:30+00:00", "content_html": "\u6211\u73b0\u5728\u6709\u4e00\u4e9b Golang \u548c K8s \u76f8\u5173\u7684\u57fa\u7840\uff08\u81f3\u5c11\u53ef\u4ee5\u81ea\u5df1\u628a\u641e\u4e2a\u4e2d\u578b\u5fae\u670d\u52a1\u9879\u76ee/\u6bd4\u5982 kratos \uff0c\u5728 k8s \u73af\u5883\u4e0b\u90e8\u7f72\u8fd0\u884c/\u5904\u7406\u6d41\u91cf\u3001HPA \u3001\u53ef\u89c2\u6d4b\u7b49\u4e1c\u897f\uff09\u3002

\u73b0\u5728\u5bf9 \u4e91\u539f\u751f\u5f00\u53d1 \u8fd9\u4e2a\u9886\u57df\u6bd4\u8f83\u611f\u5174\u8da3\u3002
\u60f3\u95ee\u4e0b\u5982\u679c\u8f6c\u884c\u505a\u804c\u4e1a\uff0c\u9664\u4e86\u73b0\u6709\u7684\u77e5\u8bc6\u6280\u80fd\u3001\u6700\u597d\u8fd8\u9700\u8981\u51c6\u5907/\u5b66\u4e60\u54ea\u4e9b\u4e1c\u897f\uff1f" }, { "author": { "url": "member/sakurawzt", "name": "sakurawzt", "avatar": "https://cdn.v2ex.com/gravatar/0be8224f07591453aa9ca0afdac1d0c1?s=73&d=retro" }, "url": "t/1169418", "date_modified": "2025-10-30T06:39:16+00:00", "content_html": "

\u5bb6\u91cc\u7ec4\u4e86\u53f0\u5de5\u63a7\u673a\u53ef\u4ee5\u7528 esxi \u5212\u5206\u51fa\u6765\u51e0\u4e2a\u865a\u62df\u673a\uff0c\u60f3\u642d\u5efa k8s \u5b66\u4e60\u5b66\u4e60\uff0c\u6545\u6c42\u4e00\u4efd\u9ad8\u53ef\u7528\u7684\u642d\u5efa\u6559\u7a0b

\n", "date_published": "2025-10-30T06:36:34+00:00", "title": "\u6c42\u4efd\u642d\u5efa\u9ad8\u53ef\u7528 k8s \u7684\u6559\u7a0b", "id": "t/1169418" }, { "author": { "url": "member/Gct012", "name": "Gct012", "avatar": "https://cdn.v2ex.com/gravatar/43b32dc0cd63148ec3f822e90f60a076?s=73&d=retro" }, "url": "t/1160596", "title": "\u6709\u4ec0\u4e48\u53ef\u4ee5\u5feb\u901f\u9a8c\u8bc1\u5e94\u7528\u90e8\u7f72 K8S \u7684\u529e\u6cd5\u4e48\uff1f", "id": "t/1160596", "date_published": "2025-09-19T12:07:25+00:00", "content_html": "

\u516c\u53f8\u6709\u4e2a Java \u5e94\u7528\uff08 Springboot \uff09\u9700\u8981\u90e8\u7f72\u5728\u5ba2\u6237\u7684 K8S \u96c6\u7fa4\u4e2d\u3002\u5ba2\u6237\u4e0d\u63d0\u4f9b\u6d4b\u8bd5\u73af\u5883\uff0c\u9700\u8981\u672c\u5730\u6d4b\u8bd5\uff0c\u8bf7\u95ee\u4e0b\u6709\u4ec0\u4e48\u6700\u7b80\u5355\u7684\u8def\u5f84\u6765\u9a8c\u8bc1\u628a\u5e94\u7528\u4ece\u6253\u5305\u5230\u90e8\u7f72\u5230 K8S \u96c6\u7fa4\u4e2d\uff08\u5bf9 K8S \u4e86\u89e3\u5f88\u5c11\uff0c\u4e4b\u524d\u6700\u591a\u7528\u8fc7 docker \u90e8\u7f72...\uff09\u3002\n\u662f\u76f4\u63a5\u7528\u963f\u91cc\u4e91\u8fd8\u662f\u7528\u670d\u52a1\u5668\u90e8\u7f72\u4e00\u5957 K8S \u96c6\u7fa4\uff1f\u6211\u770b\u4e86\u4e0b\u963f\u91cc\u4e91\u53d1\u73b0\u6709 ACS \u548c ACK \u4e24\u4e2a\uff0c\u4e5f\u4e0d\u77e5\u9053\u6709\u4ec0\u4e48\u533a\u522b...

\n" }, { "author": { "url": "member/chen0520", "name": "chen0520", "avatar": "https://cdn.v2ex.com/gravatar/74604c3787ac4138d717040a1ba5d64a?s=73&d=retro" }, "url": "t/1160438", "date_modified": "2025-09-19T03:19:19+00:00", "content_html": "

\u76ee\u524d\u5728\u56f4\u7ed5 code-server \u8fdb\u884c\u5f00\u53d1\uff0c\u73b0\u5728\u78b0\u5230\u4e86\u542f\u7528\u4e86\u5185\u90e8\u670d\u52a1\uff0c\u4f46\u662f\u53ea\u80fd\u901a\u8fc7 curl \u8fdb\u884c\u6d4b\u8bd5\uff0c\u6216\u8005\u8bf4\u6211\u5e0c\u671b\u4ece\u6211\u8fd9\u4e2a code-server \u8bbf\u95ee\u53e6\u4e00\u4e2a code-server \u5f00\u7684\u670d\u52a1\uff0c\u6b64\u65f6\u4e5f\u53ea\u80fd curl \u3002\u60f3\u4e86\u4e00\u4e2a\u65b9\u6848\uff0c\u6bcf\u5f00\u4e00\u4e2a\u670d\u52a1\uff0c\u5c31\u5bf9\u5916\u5f00\u653e\u8fd9\u4e2a\u7aef\u53e3\u7684 ingress \uff0c\u4f46\u64cd\u4f5c\u8d77\u6765\u592a\u9ebb\u70e6\u4e86\u3002\u6211\u60f3\u76f4\u63a5\u901a\u8fc7\u4e00\u4e2a\u5185\u90e8\u670d\u52a1\uff0c\u8fd9\u4e2a pod \u5bf9\u5916\u5f00\u653e\u4e00\u4e2a\u9875\u9762\uff0c\u7136\u540e\u6211\u5728\u8fd9\u4e2a\u9875\u9762\u91cc\u9762\u8f93\u5165\u4e00\u4e2a\u5185\u90e8 cluster \u7684 ip \u6216\u8005\u5185\u90e8\u57df\u540d\uff0c\u5c31\u53ef\u4ee5\u8bbf\u95ee k8s \u5185\u90e8\u7684\u6240\u6709\u670d\u52a1.\u6709\u7c7b\u4f3c\u7684\u5b9e\u73b0\u65b9\u6848\u5417\uff1f

\n", "date_published": "2025-09-19T03:14:47+00:00", "title": "\u6709\u6ca1\u6709\u529e\u6cd5\u5b9e\u73b0\u4e00\u4e2a\u5bf9\u5916\u670d\u52a1\u5c31\u53ef\u4ee5\u8bbf\u95ee k8s \u96c6\u7fa4\u5185\u7684\u6240\u6709\u670d\u52a1\uff1f", "id": "t/1160438" }, { "author": { "url": "member/dhq", "name": "dhq", "avatar": "https://cdn.v2ex.com/gravatar/b0933d91b3f6acc1cc4fb8fe172e1c1d?s=73&d=retro" }, "url": "t/1160280", "title": "k8s ingress \u8f6c\u53d1\u4f1a\u628a encode \u540e\u7684 uri \u8fd8\u539f\u6210\u8f6c\u4e49\u524d\u7684\u5b57\u7b26\u4e32", "id": "t/1160280", "date_published": "2025-09-18T09:30:46+00:00", "content_html": "

\u6211\u6709\u4e00\u4e2a ingress \u8f6c\u53d1\u7684\u914d\u7f6e\uff0c\u5c31\u662f\u628a\u5339\u914d/dhq \u524d\u7f00\u7684\u8bf7\u6c42\uff0c\u8f6c\u53d1\u5230\u540e\u7aef\u670d\u52a1\uff0c\n\u8bbf\u95ee /dhq/api/v1/%40aa

\n

ingress \u8f6c\u53d1\u65f6\u4f1a\u76f4\u63a5 \u628a\u5b83\u8fd8\u539f\u6210 /api/v1/@aa

\n

\u4f46\u6211\u5c31\u662f\u4e0d\u60f3\u7ed9\u4ed6\u8fd8\u539f\uff0c\u5927\u4f6c\u4eec\uff0c\u6709\u5565\u7ecf\u9a8c\u5efa\u8bae\u4e48\uff0c\u76ee\u524d\u8bd5\u4e86\u51e0\u4e2a ai \u7ed9\u7684\u7b54\u6848\u90fd\u4e0d\u594f\u6548

\n
apiVersion: networking.k8s.io/v1\nkind: Ingress\nmetadata:\n annotations:\n nginx.ingress.kubernetes.io/proxy-body-size: 200m\n nginx.ingress.kubernetes.io/proxy-next-upstream-timeout: \"60\"\n nginx.ingress.kubernetes.io/proxy-read-timeout: \"360\"\n nginx.ingress.kubernetes.io/rewrite-target: /$2\n nginx.ingress.kubernetes.io/configuration-snippet: |\n proxy_set_header Accept-Encoding \"\";\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header X-Forwarded-Proto $scheme;\n nginx.ingress.kubernetes.io/use-regex: \"true\"\n nginx.ingress.kubernetes.io/ssl-redirect: \"false\"\n nginx.ingress.kubernetes.io/enable-rewrite-log: \"true\"\n name: dhq-ingress\n namespace: monitor\nspec:\n ingressClassName: idataexplorer\n rules:\n - http:\n paths:\n - backend:\n service:\n name: dhq-service\n port:\n number: 80\n path: /dhq(/|$)(.*)\n pathType: ImplementationSpecific\n
\n" }, { "author": { "url": "member/fitme", "name": "fitme", "avatar": "https://cdn.v2ex.com/avatar/a5eb/968c/583955_large.png?m=1755681700" }, "url": "t/1158514", "title": "k8s \u4e0b nfs-provisioner \u8fc1\u79fb", "id": "t/1158514", "date_published": "2025-09-11T03:58:35+00:00", "content_html": "

\u8bf7\u6559\u5404\u4f4d\u5927\u4f6c\uff0c \u6211\u5728\u672c\u5730\u73af\u5883\u6709\u4e00\u4e2a k8s \u96c6\u7fa4\uff0c\u9700\u8981\u66f4\u6362 nfs-server \uff0c\u5982\u4f55\u5b8c\u6210 pv/pvc \u8fc1\u79fb\uff1f

\n" }, { "author": { "url": "member/zerphyr", "name": "zerphyr", "avatar": "https://cdn.v2ex.com/gravatar/f02a09d3b37470c36430b6faabc4d080?s=73&d=retro" }, "url": "t/1156365", "title": "K8S \u4e2d\u7684 POD\uff0c\u5982\u4f55\u5b89\u5168\u7684\u6267\u884c docker build\uff1f", "id": "t/1156365", "date_published": "2025-09-01T09:25:55+00:00", "content_html": "

\u95ee\u9898

\n

\u670d\u52a1\u8fd0\u884c\u73af\u5883\u662f k8s \uff0c\u5982\u679c\u8981\u6267\u884c docker \u547d\u4ee4\uff0c\u4e3b\u8981\u662f\u5b89\u5168\u95ee\u9898\uff0c\u5982\u4f55\u907f\u514d\u5bb9\u5668\u9003\u9038\uff1f

\n

AI \u63d0\u4f9b\u4e86\u4e24\u79cd\u89e3\u51b3\u65b9\u6848

\n
    \n
  1. \u6302\u8f7d\u4e3b\u673a sock \u4f7f\u7528 dind \u6267\u884c docker \u547d\u4ee4
  2. \n
  3. \u4f7f\u7528 buildx/buildkit \uff0c\u7ef4\u62a4\u4e00\u4e2a\u4e13\u95e8\u6267\u884c docker \u547d\u4ee4\u7684\u96c6\u7fa4\u63d0\u4f9b docker \u80fd\u529b
  4. \n
\n

\u60f3\u95ee\u4e0b\u5927\u5bb6\u6709\u6ca1\u6709\u9047\u5230\u7c7b\u4f3c\u7684\u95ee\u9898\uff0c\u5982\u4f55\u89e3\u51b3\u7684\uff1f

\n" }, { "author": { "url": "member/hwdq0012", "name": "hwdq0012", "avatar": "https://cdn.v2ex.com/gravatar/c08b1e13beb2581c7464f4e5817fbb92?s=73&d=retro" }, "url": "t/1154130", "title": "k8s \u7684\u4e00\u4e9b\u95ee\u9898", "id": "t/1154130", "date_published": "2025-08-22T01:36:41+00:00", "content_html": "

2020 \u5e74\u5de6\u53f3 .net core webapp \u662f\u53ef\u4ee5\u5f88\u7b80\u5355\u7684\u5728 ide \u91cc\u751f\u6210 helm \u90e8\u7f72\u5230 k8s \u96c6\u7fa4\u7684
\n\u4f46\u597d\u50cf\u5f53\u65f6 go opreator \u793e\u533a\u6bd4\u8f83\u6d3b\u8dc3
\n\u540e\u6765\u627e\u4e86\u4e00\u6bb5 devops \uff0c\u8de8\u5ea6\u592a\u5927\uff0c\u611f\u89c9\u65e0\u671b\u540e\u4e5f\u5c31\u6ca1\u600e\u4e48\u5173\u6ce8 kubernetes \u4e86

\n

\u6700\u8fd1\u5b9e\u8df5\u4e86 react native + c++ \u7684\u8de8\u5e73\u53f0\u7f16\u7a0b
\n\u5199\u4e86\u4e00\u4e2a ios \u548c android \u4e0a\u7684\u626b\u96f7\u6e38\u620f\uff0cwin/mac/embeded linux/ios/android \u90fd\u5165\u95e8\u4e86
\n\u5c31\u5dee\u9e3f\u8499\u4e86 \uff0c\u53c8\u6709\u70b9\u300a\u8bc6\u76c8\u865a\u4e4b\u6709\u6570\u300b\u7684\u611f\u89c9
\n\u60f3\u518d\u642d\u4e2a Kubernetes \u9ad8\u53ef\u7528\u96c6\u7fa4 \u73a9\u4e00\u73a9\uff0c\u770b\u80fd\u4e0d\u80fd\u505a\u4e2a\u804a\u5929\u8f6f\u4ef6

\n

\u521a\u624d\u770b\u6709\u4eba\u5728\u5176\u4ed6\u5e16\u5b50\u7684\u8bc4\u8bba\u533a\u8bb2\u63d0\u5230 helm
\n\u601d\u7ef4\u53d1\u6563\u4e86\u4e00\u4e0b\uff0c \u60f3\u770b\u770b\u6709\u6ca1\u6709\u5fc5\u8981\u5b66\u4e00\u5b66 go, \u6bd5\u7adf operator \u662f go \u6a21\u677f

\n

c++/rust/go \u90fd\u80fd\u5f00\u53d1\u9ad8\u5e76\u53d1\u670d\u52a1\uff0c\u5404\u6709\u957f\u77ed\uff0c\u524d\u8005\u6709\u57fa\u7840\uff0c\u540e\u9762\u4e24 0 \u57fa\u7840\uff0c\u4f55\u5f53\u53d6\u820d\uff1f

\n" }, { "author": { "url": "member/COW", "name": "COW", "avatar": "https://cdn.v2ex.com/avatar/14d4/90b6/472231_large.png?m=1758256641" }, "url": "t/1151247", "title": "\u6709\u4eba\u7528\u8fc7 victoria metrics stack \u5417\uff1f", "id": "t/1151247", "date_published": "2025-08-09T10:37:41+00:00", "content_html": "

\u4e00\u76f4\u7528\u7684\u662f\u4f20\u7edf\u7684 prometheus stack \uff0c\u6709\u70b9\u91cd\uff0c\u6700\u8fd1\u60f3\u8c03\u7814\u4e0b\u6210\u672c\u66f4\u4f4e\u7684\u65b9\u6848\uff0c\u76ee\u524d\u8fd8\u4e0d\u77e5\u9053\u8fc1\u79fb\u96be\u5ea6\u5927\u4e0d\u5927\uff0c\u6709\u6ca1\u6709\u5927\u4f6c\u5206\u4eab\u70b9\u7ecf\u9a8c\u3002

\n" }, { "author": { "url": "member/linxuan716", "name": "linxuan716", "avatar": "https://cdn.v2ex.com/gravatar/22bc71cc30e15cc3954c0c725d63b20b?s=73&d=retro" }, "url": "t/1149491", "title": "django \u5e94\u7528\u91cc\u9762\u7684\u811a\u672c\u600e\u4e48\u5728 k8s \u5e73\u53f0\u542f\u52a8\u66f4\u5408\u9002\uff1f", "id": "t/1149491", "date_published": "2025-08-02T09:17:44+00:00", "content_html": "

\u8fd9\u4e9b\u811a\u672c\u4f9d\u8d56\u4e8e django \u73af\u5883\uff0c\u5927\u6982\u6709 3 \u7c7b\n1 \u3001\u5076\u5c14\u9700\u8981\u6267\u884c\u4e00\u6b21\u7684\u811a\u672c\n2 \u3001\u5b9a\u65f6\u6267\u884c\u7684\u811a\u672c\n3 \u3001\u76d1\u542c redis \u6307\u5b9a\u952e\u7684\u811a\u672c\n\u8fd9\u4e09\u7c7b\u811a\u672c\u52a0\u5728\u4e00\u5757\u5927\u6982\u6709 100 \u591a\u4e2a\uff0c\u5982\u679c\u6bcf\u4e2a\u811a\u672c\u90fd\u6253\u6210\u4e00\u4e2a\u955c\u50cf\uff0c\u89c9\u5f97\u592a\u91cd\uff0c\u53ea\u662f\u955c\u50cf\u6587\u4ef6\u5c31\u8981\u5360\u7528\u5f88\u591a\u7684\u5b58\u50a8\u7a7a\u95f4\uff0c\u6709\u6ca1\u6709\u66f4\u52a0\u5408\u9002\u7684\u65b9\u5f0f\uff1f\u5927\u5bb6\u7ed9\u63d0\u4f9b\u4e0b

\n" }, { "author": { "url": "member/deloved", "name": "deloved", "avatar": "https://cdn.v2ex.com/avatar/e08a/9fdc/261688_large.png?m=1762912740" }, "url": "t/1149242", "title": "kubesphere \u76f4\u63a5\u95ed\u6e90\u4e0b\u7ebf \u600e\u4e48\u770b\uff1f", "id": "t/1149242", "date_published": "2025-08-01T03:33:30+00:00", "content_html": "

https://github.com/kubesphere/kubesphere/issues/6550\n\u4e4b\u524d\u5728\u5bf9 k8s \u96c6\u7fa4\u7ba1\u63a7\u4e0a\u8fd8\u5bf9\u5b83\u505a\u8fc7\u9009\u578b\uff0c\u53ea\u80fd\u8bf4\u8fd8\u597d\u6ca1\u9009\u5b83\u00b7\u00b7\u00b7\u00b7\u00b7\u00b7\u00b7\u6709\u80f8\u5f1f\u5728\u7528\u7684\u4e48\uff1f

\n" }, { "author": { "url": "member/cxhello", "name": "cxhello", "avatar": "https://cdn.v2ex.com/avatar/a0f8/5a7f/651579_large.png?m=1769489720" }, "url": "t/1149182", "title": "IDEA \u672c\u5730\u8c03\u8bd5 Spring Cloud \u9879\u76ee\uff0c\u5982\u4f55\u8c03\u7528 k8s \u96c6\u7fa4\u91cc\u7684 svc ip", "id": "t/1149182", "date_published": "2025-08-01T01:55:13+00:00", "content_html": "
    \n
  1. Telepresence
  2. \n
  3. KT-Connect
  4. \n
\n

\u573a\u666f\uff1a\u672c\u5730 A \u670d\u52a1\u8c03\u7528 k8s \u96c6\u7fa4\u4e0a\u7684 B \u670d\u52a1

\n

\u6211\u4eec\u6d4b\u8bd5\u73af\u5883\u662f\u4e00\u4e2a k8s \u96c6\u7fa4\uff0c\u7136\u540e\u76ee\u524d\u91c7\u7528\u7684 KT-Connect \u7684\u65b9\u6848\u3002\u60f3\u7528 Telepresence \u4f46\u662f\u9700\u8981 namespaces \u7684\u6743\u9650\uff0c\u6211\u4eec\u8fd0\u7ef4\u53ea\u7ed9\u5f00\u5230 deployment \u8fd9\u4e00\u5c42\u6743\u9650\u3002\u770b\u770b V \u53cb\u4eec\u4e00\u822c\u90fd\u7528\u7684\u4ec0\u4e48\u65b9\u6848\uff1f

\n" }, { "author": { "url": "member/i4t", "name": "i4t", "avatar": "https://cdn.v2ex.com/avatar/f8bd/b0ad/540731_large.png?m=1718849082" }, "url": "t/1147786", "title": "\u6709\u6ca1\u6709 k8s + ingress +frp \u8fd9\u79cd\u65b9\u6848", "id": "t/1147786", "date_published": "2025-07-25T16:44:59+00:00", "content_html": "

\u573a\u666f: QQ \u4e91\u6709\u4e00\u53f0\u670d\u52a1\u5668\uff0c\u76ee\u524d\u56de\u5bb6\u8bbf\u95ee\u5bb9\u5668\u5185\u7684\u65b9\u6848\u4e3a nginx -->frps -->frpc -->nodeport -->svc -->pod\n\u76ee\u524d\u5b58\u5728\u7f3a\u70b9:

\n

\u6bcf\u6b21\u90fd\u8981\u624b\u52a8\u4fee\u6539 svc \u66b4\u9732\n\u6bcf\u6b21\u90fd\u9700\u8981\u624b\u52a8\u65b0\u589e frpc \u914d\u7f6e\u6587\u4ef6\n\u6bcf\u6b21\u90fd\u9700\u8981\u624b\u52a8\u6dfb\u52a0\u516c\u7f51 Nginx

\n

\u60f3\u6cd5\nFRPS\u2013> FRPC \u2192 Ingress \u2192 svc \u2192 Pod

\n

\u6211\u5728\u60f3\u80fd\u5426\u901a\u8fc7\u521b\u5efa Ingress \u81ea\u52a8 watch \u914d\u7f6e\u6587\u4ef6\u7136\u540e\u91cd\u5199\u7ed9 frpc \u81ea\u52a8\u91cd\u542f\u670d\u52a1\uff0c\u5916\u7f51\u8bbf\u95ee\u7ed1\u5b9a

\n

\u8fd9\u79cd\u65b9\u6848\u6709\u5927\u4f6c\u8003\u8651\u5b9e\u73b0\u5417\uff1f

\n" }, { "author": { "url": "member/COW", "name": "COW", "avatar": "https://cdn.v2ex.com/avatar/14d4/90b6/472231_large.png?m=1758256641" }, "url": "t/1147439", "title": "Gitops \u4e2d\u6d89\u53ca\u654f\u611f\u4fe1\u606f\u63a8\u8350\u7528\u4ec0\u4e48\u5de5\u5177\u5462\uff1f", "id": "t/1147439", "date_published": "2025-07-24T09:11:24+00:00", "content_html": "

\u76ee\u524d\u662f\u901a\u8fc7 kustomize + helm template values-{env} \u5b9e\u73b0\u7684 CD \uff0c\u6211\u6700\u5f00\u59cb\u60f3\u7684\u662f\uff0c\u76f4\u63a5\u5c06\u654f\u611f\u4fe1\u606f\u5199\u5165 helm values \u91cc\uff0c\u89e3\u5bc6\u8fd8\u662f\u5728\u96c6\u7fa4\u89e3\u5bc6\uff0c\u4f46\u8fd9\u6837\u4f3c\u4e4e\u8fdd\u53cd\u4e86\u540e\u6e32\u67d3\u7684\u539f\u5219\u3002\n\u73b0\u5728\u654f\u611f\u4fe1\u606f\u4f7f\u7528 sealed-secret \u52a0\u5bc6\uff0c\u4f46\u662f\u6211\u603b\u662f\u9700\u8981\u67e5\u770b helm chart \u4e2d\u5177\u4f53 template \u4ee3\u7801\u5b9e\u73b0\uff0c\u518d\u53bb\u62c6\u89e3\u51fa\u5177\u4f53\u8981\u5f15\u7528\u7684 Secret \u8d44\u6e90\uff0c\u6709\u6ca1\u6709\u7b80\u5355\u7684\u529e\u6cd5\u53bb\u62c6\u89e3\u5462\uff1f\u6bd4\u5982 helm values \u4e2d\u6709\u4e00\u4e2a admin.password \u654f\u611f\u4fe1\u606f\uff0c\u6211\u9700\u8981\u67e5\u770b template \u5185\u90e8\u5b9e\u73b0\uff0c\u6784\u5efa\u51fa\u7c7b\u4f3c\u4e0b\u9762\u8fd9\u79cd Secret \u3002

\n
# Source: argo-cd/templates/argocd-configs/argocd-secret.yaml\napiVersion: v1\nkind: Secret\nmetadata:\n name: argocd-secret\n namespace: argocd\ntype: Opaque\ndata:\n admin.password: 'xxx'\n admin.passwordMtime: 'xxx'\n
\n

\u4f46\u662f\uff0chelm chart \u4e2d\u901a\u5e38\u4f1a\u52a8\u6001\u6ce8\u5165\u6807\u7b7e\u3001\u6ce8\u89e3\uff0c\u5355\u72ec\u53bb\u67e5\u770b\u6807\u7b7e\u3001\u6ce8\u89e3\u7684\u5b9e\u73b0\u903b\u8f91\u53bb\u8fdb\u884c\u6784\u5efa\u611f\u89c9\u4f3c\u4e4e\u66f4\u9ebb\u70e6\u4e86\uff0c\u5982\u679c\u76f4\u63a5\u53bb\u6389\u6807\u7b7e\u3001\u6ce8\u89e3\uff0c\u5b8c\u5168\u81ea\u5df1\u751f\u6210 secret \uff0c\u4f3c\u4e4e\u53c8\u4f9d\u8d56 chart \u672c\u8eab\u7684\u8d28\u91cf\uff08\u62c5\u5fc3\u6709\u4f9d\u8d56\u5173\u7cfb\uff09\uff0c\u5404\u4f4d\u6709\u6ca1\u6709\u597d\u7684\u65b9\u6848\u3002

\n" }, { "author": { "url": "member/linxuan716", "name": "linxuan716", "avatar": "https://cdn.v2ex.com/gravatar/22bc71cc30e15cc3954c0c725d63b20b?s=73&d=retro" }, "url": "t/1147021", "title": "\u4f60\u8ba4\u4e3a\u4ec0\u4e48\u89c4\u6a21\u7684\u516c\u53f8\u9002\u5408\u4f7f\u7528 k8s?", "id": "t/1147021", "date_published": "2025-07-23T00:52:30+00:00", "content_html": "

k8s \u8fd0\u7ef4\u5e73\u53f0\u73b0\u5728\u5df2\u7ecf\u5f88\u6d41\u884c\u4e86\uff0c\u4f46\u4e5f\u6709\u8bf4\u8ba4\u4e3a\u53ea\u6709\u5927\u516c\u53f8\u624d\u80fd\u4f7f\u7528\uff0c\u5c0f\u516c\u53f8\u4f7f\u7528\u53cd\u800c\u9ebb\u70e6\uff0c\u4f60\u8ba4\u4e3a\u5462\uff1f

\n" }, { "author": { "url": "member/zhoudaiyu", "name": "zhoudaiyu", "avatar": "https://cdn.v2ex.com/avatar/b75f/9ee0/163414_large.png?m=1682659533" }, "url": "t/1144673", "title": "\u8bf7\u95ee\u5927\u5bb6\u6240\u5728\u516c\u53f8\u7684 k8s \u96c6\u7fa4 cni \u548c cri \u9009\u578b\u662f\u4ec0\u4e48\uff1f", "id": "t/1144673", "date_published": "2025-07-11T15:02:30+00:00", "content_html": "\u6211\u4eec\u751f\u4ea7\u96c6\u7fa4\u90fd\u662f Calico+containerd \uff0c\u56fe\u4e2a\u6210\u719f\u7a33\u5b9a\uff0c\u7528\u7684\u4eba\u591a\u3002\u4f46\u662f\u540e\u7eed\u60f3\u628a cni \u6362\u6210 kube-ovn \uff0c\u60f3\u7528\u4ed6\u7684\u591a\u96c6\u7fa4\u4e92\u901a\u3001\u56fa\u5b9a ip \u7b49\u7279\u6709\u529f\u80fd\uff0c\u5c31\u662f\u4e0d\u77e5\u9053\u7a33\u5b9a\u4e0d\u7a33\u5b9a\u3002\u4e5f\u5728\u770b cillium \uff0c\u4ed6\u4e5f\u652f\u6301\u96c6\u7fa4\u4e92\u901a\u3002\u5404\u4f4d\u7684\u516c\u53f8\u7528\u7684\u90fd\u662f\u4ec0\u4e48\u5462\uff1f\u636e\u6211\u4e86\u89e3 containerd \u57fa\u672c\u5df2\u7ecf\u662f cri \u7b2c\u4e00\u9009\u62e9\u4e86\uff0c\u4f46 cni \u5c31\u4e94\u82b1\u516b\u95e8\u4e86" }, { "author": { "url": "member/eephee", "name": "eephee", "avatar": "https://cdn.v2ex.com/avatar/a967/a383/539657_large.png?m=1719558879" }, "url": "t/1144242", "date_modified": "2025-07-10T05:44:46+00:00", "content_html": "

\u540c\u4e8b\u5728\u4e00\u53f0\u7528 VmWare \u521b\u5efa\u7684\u865a\u62df\u673a\uff08x86_64\uff09\u4e0a\u9762\uff0c\u5b89\u88c5\u4e86 Debian 12 \uff0c\u5728\u5176\u4e0a\u5b89\u88c5\u4e86 k3s 1.28.15

\n

\u968f\u540e\u5728\u8fd9\u4e2a k3s \u4e0a\u9762\u90e8\u7f72\u4e86\u4e00\u4e9b\u670d\u52a1\u6bd4\u5982 minio, docker registry \u4e4b\u7c7b\u7684\uff0c\u90fd\u662f\u6b63\u5e38\u542f\u52a8\u8fd0\u884c\u7684\u3002\u4f46\u662f\u90e8\u7f72 milvus \u65f6\u8001\u662f\u8d77\u4e0d\u6765\uff0c\u62a5\u9519

\n
/tini: error while loading shared libraries: /lib/x86_64-linux-gnu/libc.so.6: invalid ELF header milvus\n
\n

\u6211\u968f\u540e\u5c1d\u8bd5\u4f7f\u7528 ctr \u521b\u5efa\u5bb9\u5668\u8fdb\u5165 shell \u73af\u5883\uff0c\u4e5f\u662f\u4e0d\u884c

\n
k3s ctr run --rm -t --platform linux/amd64 docker.io/milvusdb/milvus:v2.4.5 milvus /bin/bash\n
\n

\u8fd8\u662f\u4e00\u6837\u7684\u62a5\u9519\u3002

\n

\u6211\u4e00\u5f00\u59cb\u6000\u7591\u662f\u6211\u4eec\u62c9\u53d6\u7684\u955c\u50cf\u6709\u95ee\u9898\uff0c\u6000\u7591\u662f\u7528\u4e86 arm \u67b6\u6784\u7684\u955c\u50cf\uff0c\u4f46\u662f\u968f\u540e\u6211\u4f7f\u7528 crictl inspeci \u67e5\u770b\u4e86\u955c\u50cf\u786e\u5b9e\u662f\u662f linux/amd64 \u7684\uff0c\u53e6\u5916\u6211\u770b\u4e86\u4e0b milvus \u7684 Dockerfile \u770b\u7740\u4e5f\u4e2d\u89c4\u4e2d\u89c4\uff0c\u76ee\u524d\u8fd8\u6ca1\u627e\u51fa\u539f\u56e0\uff0c\u4e5f\u4e0d\u77e5\u9053\u5982\u4f55\u5165\u624b\u6392\u67e5\u3002

\n

\u968f\u540e\u6211\u5728\u8fd9\u53f0\u865a\u62df\u673a\u4e0a\u9762\u5b89\u88c5\u4e86 docker \u5e76\u521b\u5efa\u5bb9\u5668\uff0c\u662f\u53ef\u4ee5\u6210\u529f\u542f\u52a8\u7684\uff0c\u770b\u8d77\u6765\u95ee\u9898\u53ef\u80fd\u5728 k3s \u7528\u7684 containerd \u8fd9\u91cc\uff0c\u4f46\u662f\u4e0d\u77e5\u9053\u8be5\u4ece\u54ea\u91cc\u6392\u67e5\u4e86\u3002

\n

\u9644\uff1a\u8be5\u865a\u62df\u673a CPU \u60c5\u51b5

\n
root@debian1:~/ccdinstaller# lscpu\nArchitecture: x86_64\n CPU op-mode(s): 32-bit, 64-bit\n Address sizes: 45 bits physical, 48 bits virtual\n Byte Order: Little Endian\nCPU(s): 16\n On-line CPU(s) list: 0-15\nVendor ID: GenuineIntel\n BIOS Vendor ID: GenuineIntel\n Model name: 11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz\n BIOS Model name: 11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz CPU @ 2.5GHz\n BIOS CPU family: 2\n CPU family: 6\n Model: 167\n Thread(s) per core: 1\n Core(s) per socket: 16\n Socket(s): 1\n Stepping: 1\n BogoMIPS: 4991.99\n Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopolo\n gy tsc_reliable nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hyperviso\n r lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt avx5\n 12cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat avx512vbmi umip avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid md_cle\n ar flush_l1d arch_capabilities\nVirtualization features:\n Hypervisor vendor: VMware\n Virtualization type: full\nCaches (sum of all):\n L1d: 768 KiB (16 instances)\n L1i: 512 KiB (16 instances)\n L2: 8 MiB (16 instances)\n L3: 16 MiB (1 instance)\nNUMA:\n NUMA node(s): 1\n NUMA node0 CPU(s): 0-15\nVulnerabilities:\n Gather data sampling: Unknown: Dependent on hypervisor status\n Itlb multihit: Not affected\n L1tf: Not affected\n Mds: Not affected\n Meltdown: Not affected\n Mmio stale data: Mitigation; Clear CPU buffers; SMT Host state unknown\n Retbleed: Mitigation; IBRS\n Spec rstack overflow: Not affected\n Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl\n Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization\n Spectre v2: Mitigation; IBRS, IBPB conditional, STIBP disabled, RSB filling, PBRSB-eIBRS Not affected\n Srbds: Not affected\n Tsx async abort: Not affected\n
\n", "date_published": "2025-07-10T05:44:21+00:00", "title": "\u6c42\u5927\u795e\u6307\u70b9\u5728 k3s \u4e0a\u9762\u542f\u52a8\u5bb9\u5668\u62a5\u9519 libc.so.6: invalid ELF header milvus \u5e94\u8be5\u600e\u4e48\u5165\u624b\u6392\u67e5", "id": "t/1144242" }, { "author": { "url": "member/Zzdex", "name": "Zzdex", "avatar": "https://cdn.v2ex.com/avatar/d4fb/73cf/315827_large.png?m=1775801419" }, "url": "t/1141249", "title": "\u641e\u4e86\u4e00\u4e2a kubernetes dashboard", "id": "t/1141249", "date_published": "2025-06-26T08:30:02+00:00", "content_html": "

\u5acc\u539f\u751f\u592a\u4e11\uff0c\u5acc KubeSphere \u592a\u91cd\u3002

\n

\u4e8e\u662f\u5c31\u6709\u4e86\u8fd9\u4e2a

\n

https://github.com/zxh326/kite

\n

\"Dashboard

\n" }, { "author": { "url": "member/bli22ard", "name": "bli22ard", "avatar": "https://cdn.v2ex.com/gravatar/cc3f4c3d52ea7317ccbaa6710d5f8ca1?s=73&d=retro" }, "url": "t/1140891", "title": "gitlab runner in k8s \u6784\u5efa\u955c\u50cf\u7684\u6700\u4f73\u5b9e\u6218\u662f\u4ec0\u4e48", "id": "t/1140891", "date_published": "2025-06-25T04:02:00+00:00", "content_html": "

\u6211\u4f7f\u7528 gitlab runner in k8s

\n

kaniko

\n

\u4e00\u76f4\u7528\u8fd9\u4e2a\uff0c\u4e0d\u8fc7\u6700\u8fd1\u53d1\u73b0\u548c gitlab runner \u65b0\u7248\u672c\u517c\u5bb9\u6709\u95ee\u9898\uff0c\u51fa\u73b0

\n
kaniko should only be run inside of a container, run with the --force flag if you are sure you want to continue\n
\n

\u7136\u540e\u53d1\u73b0 kaniko \u5df2\u7ecf\u4e0d\u7ef4\u62a4\u4e86\u3002

\n

docker in docker

\n

\u8fd9\u4e2a\u5fc5\u987b\u8981\u5f00\u542f\u7279\u6743\u6a21\u5f0f\u5bb9\u5668\uff0c\u9700\u8981\u542f\u52a8\u5b88\u62a4\u8fdb\u7a0b

\n

\u53e6\u5916

\n

buildah \u3001podman \u6ca1\u6d4b\u8bd5\uff0c \u4e0d\u77e5\u9053\u662f\u5426\u9002\u5408 CI \u573a\u666f\u4f7f\u7528\u3002

\n

\u95ee\u9898

\n

\u54ea\u4e2a\u5728 gitlab runner in k8s \u597d\u7528

\n" }, { "author": { "url": "member/xyzlucky", "name": "xyzlucky", "avatar": "https://cdn.v2ex.com/gravatar/f335cb421152a3f0fecf817bb1b5a8dc?s=73&d=retro" }, "url": "t/1139196", "date_modified": "2025-06-17T08:12:49+00:00", "content_html": "

\u5728\u4e91\u8ba1\u7b97\u884c\u4e1a\u505a\u4ea7\u54c1\uff0c\u76ee\u524d\u5728\u63a2\u7d22\u65b0\u65b9\u5411\uff0c\u5bf9\u5bb9\u5668\u548c k8s \u6bd4\u8f83\u6709\u5174\u8da3\uff0c\u81ea\u5df1\u8ddf\u7740\u4e00\u4e9b\u6559\u7a0b\u3001\u4e66\u7c4d\u8fdb\u884c\u4e86\u6bd4\u8f83\u57fa\u7840\u7684\u5b9e\u8df5\uff0c\u81ea\u5df1\u642d\u4e86\u4e00\u5957\u6bd4\u8f83\u5c0f\u7684\u96c6\u7fa4\uff0c\u4f46\u662f\u73b0\u5728\u6211\u6ca1\u6709\u66f4\u591a\u53ef\u4ee5\u4f7f\u7528\u7684\u573a\u666f\uff0c\u6240\u4ee5\u603b\u611f\u89c9\u8fd8\u6709\u5f88\u5927\u5f88\u5927\u7684\u504f\u5dee\uff0c\u548c\u7406\u89e3\u4e0a\u7684\u80a4\u6d45\u3002

\n

\u771f\u8bda\u8bf7\u6559\uff0c\u6211\u5e94\u8be5\u6709\u4ec0\u4e48\u66f4\u597d\u7684\u65b9\u5f0f\u53ef\u4ee5\u6df1\u5165\u4e00\u4e9b\u4e9b\u4e86\u89e3\u3001\u5b66\u4e60 k8s \u76f8\u5173\u3002\u4f8b\u5982\u53ef\u4ee5\u7528\u6765\u63a2\u7d22\u7684\u573a\u666f\u6216\u8005\u8bf8\u5982\u6b64\u7c7b\u7684\u3002

\n", "date_published": "2025-06-17T08:09:47+00:00", "title": "\u8ba4\u771f\u8bf7\u6559\u6709\u4ec0\u4e48\u597d\u7684\u65b9\u5f0f\u53ef\u4ee5\u6df1\u5165\u4e86\u89e3\u5b66\u4e60 k8s", "id": "t/1139196" }, { "author": { "url": "member/Vraw5", "name": "Vraw5", "avatar": "https://cdn.v2ex.com/gravatar/30365489c43a99273063d13056bd340a?s=73&d=retro" }, "url": "t/1139075", "title": "\u5404\u4f4d\u662f\u5982\u4f55\u5728 k8s \u4e2d\u505a\u955c\u50cf\u6784\u5efa\u7684\uff1f", "id": "t/1139075", "date_published": "2025-06-17T02:21:27+00:00", "content_html": "\u96c6\u7fa4\u91cc\u6709\u4e24\u53f0\u673a\u5668\u7528\u4f5c jenkins kubernetes agent \u505a CICD \uff0c\u4ee5\u524d k8s \u5728 1.24 \u4ee5\u4e0b\u65f6\u4e3b\u673a\u4f7f\u7528 docker engine \uff0c\u6211\u53ef\u4ee5\u901a\u8fc7\u6302\u8f7d docker.sock \u76f4\u63a5\u4f7f\u7528\u4e3b\u673a\u7684 docker \u505a\u955c\u50cf\uff0c\u540e\u6765 k8s \u5347\u7ea7\u540e\u4f7f\u7528 kaniko \u6784\u5efa\u955c\u50cf\uff0c\u6628\u5929\u770b kaniko \u7684 github \u5df2\u7ecf\u5728\u4e24\u5468\u524d\u5f52\u6863\u4e86\uff0c\u60f3\u6362\u6389\u5b83\uff0c\u6709\u6ca1\u6709 kaniko \u7684\u66ff\u4ee3\u54c1\u3002" }, { "author": { "url": "member/ryan4yin", "name": "ryan4yin", "avatar": "https://cdn.v2ex.com/gravatar/2362ce7bdf2845a92240cc2f6609e001?s=73&d=retro" }, "url": "t/1138853", "title": "KubeCon China 2025 \u89c1\u95fb", "id": "t/1138853", "date_published": "2025-06-16T05:13:39+00:00", "content_html": "

\u65b0\u9c9c\u51fa\u7089\u7684 KubeCon China 2025 \u89c1\u95fb\uff0c\u7f57\u5217\u4e86\u4e00\u4e9b\u6211\u89c9\u5f97\u4e0d\u9519\u7684 Talks \u5e76\u9644\u4e0a\u51e0\u53e5\u4e2a\u4eba\u611f\u60f3\uff0c\u6b22\u8fce\u8bc4\u8bba\u533a\u4ea4\u6d41\uff5e

\n

https://thiscute.world/posts/kubecon-china-2025/

\n" }, { "author": { "url": "member/sxszzhrrt", "name": "sxszzhrrt", "avatar": "https://cdn.v2ex.com/gravatar/23b764920ac763862cdf62a69d6e94cd?s=73&d=retro" }, "url": "t/1138496", "title": "\u5355\u673a\u80fd\u4e0d\u80fd\u7528\u6765\u5b66\u4e60 K8S", "id": "t/1138496", "date_published": "2025-06-13T13:42:26+00:00", "content_html": "RT \uff0c\u4e2a\u4eba\u5355\u673a\u80fd\u4e0d\u80fd\u7528\u6765\u5b66\u4e60 K8S \uff0c\u4e00\u5b9a\u8981\u591a\u53f0\u670d\u52a1\u5668\u6784\u4ef6\u673a\u7fa4\u5417\uff1f\u60f3\u4ece\u5c1d\u8bd5\u73a9\u73a9 SealOS \u5f00\u59cb\uff0c\u4e0d\u77e5\u9053\u5355\u673a\u80fd\u4e0d\u80fd\u7528\uff1f" }, { "author": { "url": "member/cxhello", "name": "cxhello", "avatar": "https://cdn.v2ex.com/avatar/a0f8/5a7f/651579_large.png?m=1769489720" }, "url": "t/1138350", "title": "k8s \u4f7f\u7528\u8c03\u7814", "id": "t/1138350", "date_published": "2025-06-13T03:18:26+00:00", "content_html": "

\u5404\u4f4d V \u53cb\u4eec\uff0c\u4f60\u4eec\u73b0\u5728\u516c\u53f8\u6216\u8005\u4e2a\u4eba\u90fd\u5728\u7528\u54ea\u4e9b\u4e91\u5382\u5546\u7684 k8s \u670d\u52a1\uff0c\u8fd8\u662f\u81ea\u5efa\uff1f

\n\n" }, { "author": { "url": "member/xueyuehua", "name": "xueyuehua", "avatar": "https://cdn.v2ex.com/avatar/7a7e/fad5/370211_large.png?m=1752723593" }, "url": "t/1134239", "title": "\u8bf7\u95ee\u73b0\u5728\u5927\u4f6c\u4eec\u516c\u53f8\u90fd\u662f\u7528\u7684\u4ec0\u4e48 k8s \u53ef\u89c6\u5316\u5de5\u5177", "id": "t/1134239", "date_published": "2025-05-25T16:47:47+00:00", "content_html": "

\u6700\u8fd1\u53c8\u5f00\u59cb\u5b66 k8s \u4e86\uff0c\u8fd8\u662f\u770b\u7684\u5c1a\u7845\u8c37\u7684\uff0c\u89c6\u9891\u6709\u70b9\u65e7\uff0c\u597d\u50cf\u4e3b\u63a8 KubeSphere \uff1b

\n

\u5176\u5b9e\u4e0a\u5bb6\u516c\u53f8\u4e5f\u6709\u7528\u5230 k8s \uff0c\u7528\u7684\u5b98\u65b9\u7684 dashboard \uff0c\u4e0d\u77e5\u9053\u73b0\u5728\u4e3b\u6d41\u7684\u7528\u54ea\u4e2a\u591a\u70b9\uff1b

\n

\u8fd8\u6709\u5982\u679c\u60f3\u5b8c\u6574\u6253\u901a dev-ops \uff0c\u53c8\u5e94\u8be5\u7528\u90a3\u4e00\u5957\u6bd4\u8f83\u597d\uff0c\u5404\u6d41\u7a0b\u5206\u522b\u7528\u4ec0\u4e48\u6bd4\u8f83\u8212\u670d\uff1f

\n" }, { "author": { "url": "member/samzong", "name": "samzong", "avatar": "https://cdn.v2ex.com/avatar/e710/a166/234316_large.png?m=1763995836" }, "url": "t/1134227", "date_modified": "2025-05-25T14:45:10+00:00", "content_html": "

\u5bf9\u4e8e\u7ec8\u7aef\u515a\u662f\u53cb\u597d\u7684\uff0c\u5f53 SSH \u4e3b\u673a\u548c K8s \u7684 kubeconfig \u592a\u591a\u4e4b\u540e\uff0c\u5728\u901a\u8fc7\u6587\u672c\u7f16\u8f91\u7684\u65b9\u5f0f\u4e0d\u662f\u5f88\u65b9\u4fbf\u3002\n\u7279\u522b\u662f kubeconfig \u8fd8\u4f1a\u6709\u5408\u5e76\u51fa\u9519\u7684\u98ce\u9669\u3002

\n

\u6240\u4ee5\u5f04\u4e86\u4e00\u4e2a ConfigForge \uff0c\u4e3b\u8981\u529f\u80fd\u5c31\u662f\u63d0\u4f9b\u754c\u9762\u5316\u914d\u7f6e\u7ba1\u7406\uff0c\u652f\u6301\u4e00\u4e9b\u5907\u4efd\u7684\u529f\u80fd\uff0c\u964d\u4f4e\u51fa\u9519\u3002

\n

\u4e5f\u4f53\u9a8c\u4e86\u4e0b Vibe Coding \u7684\u4e50\u8da3\u3002

\n

https://github.com/samzong/ConfigForge

\n

\u7136\u540e\u6709\u4e00\u4e2a cf \u7684\u547d\u4ee4\uff0c\u53ef\u4ee5\u5feb\u901f\u7684\u67e5\u770b ssh \u4e3b\u673a\uff0c\u548c kubeconfig \uff0c\u652f\u6301\u5feb\u901f\u8fde\u63a5\u548c\u5207\u6362\u3002

\n
(base) x in ~ \u03bb cf k l\nAvailable Kubernetes configurations:\n* 1. card4090-1year-kubeconfig.yaml (active)\n 2. new-config-5-16-25,_13-18.yaml\n\nUse 'cf k set <number>' or 'cf k set <filename>' to switch configuration\nUse 'cf k current' to show current active configuration\n(base) x in ~ \u03bb cf k set 2\nSelected configuration 2: new-config-5-16-25,_13-18.yaml\nSuccessfully switched active Kubernetes configuration to 'new-config-5-16-25,_13-18.yaml'\n(base) x in ~ \u03bb cf l\nAvailable SSH hosts:\n 1. *\n 2. blog\n 3. sf\n 4. 45.70\n 5. 10.6.14.200\n 6. dev-156\n 7. dev-157\n 8. dev-155\n\nUse 'cf c <number>' or 'cf c <hostname>' to connect\nUse 'cf s <number>' or 'cf s <hostname>' to show details\n(base) x in ~ \u03bb cf c 2\nConnecting to 2. blog...\nLast login: Sun May 25 22:42:40 2025 from 121.233.138.88\n\nWelcome to Alibaba Cloud Elastic Compute Service !\n\n\u279c ~\n
\n", "date_published": "2025-05-25T14:44:18+00:00", "title": "[\u5f00\u6e90\u81ea\u8350] \u641e\u4e86\u4e00\u4e2a SSH \u548c K8s \u8fde\u63a5\u4fe1\u606f\u7684\u7ba1\u7406\u5c0f\u5de5\u5177\uff08\u4ec5\u9650 Mac\uff09", "id": "t/1134227" }, { "author": { "url": "member/cillian", "name": "cillian", "avatar": "https://cdn.v2ex.com/avatar/a56a/c42e/648543_large.png?m=1747392873" }, "url": "t/1132301", "date_modified": "2025-05-16T11:00:24+00:00", "content_html": "

\u54c8\u55bd\uff0cV2EX \u7684\u5c0f\u4f19\u4f34\u4eec\uff01

\n

\u6700\u8fd1\u6211\u5f00\u6e90\u4e86\u4e00\u4e2a\u65b0\u9879\u76ee\u2014\u2014CILIKUBE \uff0c\u4e00\u4e2a\u4e13\u4e3a\u65b0\u624b\u8bbe\u8ba1\u7684 Kubernetes \u8d44\u6e90\u7ba1\u7406\u5e73\u53f0\uff01\u5b83\u662f\u7528 Vue3 + TypeScript + Go (Gin) \u6253\u9020\uff0c\u76ee\u6807\u662f\u201c\u5c0f\u800c\u7f8e\u201d\uff0c\u8ba9 K8s \u7ba1\u7406\u66f4\u7b80\u5355\uff0c\u4ee3\u7801\u5b66\u4e60\u66f4\u53cb\u597d\uff01 \u4e00\u5468\u5185\u5df2\u7ecf\u6536\u5230\u4e0d\u5c11 SRE \u3001\u4e91\u539f\u751f\u7231\u597d\u8005\u548c\u5168\u6808\u5f00\u53d1\u8005\u7684\u53cd\u9988\uff0c\u4eca\u5929\u60f3\u9080\u8bf7 V2EX \u7684\u5927\u5bb6\u6765\u4f53\u9a8c\u3001\u5410\u69fd\u548c\u8d21\u732e\uff01

\n

CILIKUBE \u662f\u4ec0\u4e48\nCILIKUBE \u662f\u4e00\u4e2a\u5f00\u6e90\u7684 K8s \u8d44\u6e90\u7ba1\u7406\u5e73\u53f0\uff0c\u6838\u5fc3\u7279\u70b9\uff1a\n\u7b80\u5355\u76f4\u89c2\uff1a\u4f18\u96c5\u7684 UI \uff0c\u8f7b\u677e\u7ba1\u7406 K8s \u8d44\u6e90\uff08\u589e\u5220\u6539\u67e5\uff09

\n

\u5b66\u4e60\u53cb\u597d\uff1a\u4ee3\u7801\u6e05\u6670\uff0c\u57fa\u4e8e Vue3 \u548c Go \uff0c\u9002\u5408\u5b66\u4e60\u5168\u6808\u5f00\u53d1\u6216 K8s \u4e8c\u6b21\u5f00\u53d1

\n

\u6613\u4e8e\u6269\u5c55\uff1a\u652f\u6301\u81ea\u5b9a\u4e49\u529f\u80fd\uff0c\u6ee1\u8db3\u4f60\u7684\u4e2a\u6027\u5316\u9700\u6c42

\n

\u4e3a\u4ec0\u4e48\u505a\u8fd9\u4e2a\uff1f\nCILIKUBE \u6e90\u4e8e\u6211\u5b66\u4e60 Vue3 \u3001Go \u548c K8s \u7684\u5b9e\u8df5\uff0c\u5b66\u4e60\u8fc7\u7a0b\u4e2d\u5f97\u5230\u4e86\u793e\u533a\u5c0f\u4f19\u4f34\u7684\u5e2e\u52a9\uff0c\u8fd9\u4e0d\u5c31\u60f3\u7740\u6253\u9020\u4e00\u4e2a\u201c\u65b0\u624b\u53cb\u597d\u201d\u7684\u5f00\u6e90\u9879\u76ee\u3002

\n

\u9879\u76ee\u5730\u5740

\n

\u540e\u7aef\uff1agithub.com/ciliverse/cilikube

\n

\u524d\u7aef\uff1agithub.com/cilliantech/cilikube-web

\n

\u6587\u6863\uff1acilikube.cillian.website

\n

\u60f3\u542c\u542c V2EX \u5927\u4f6c\u7684\u610f\u89c1\uff01

\n

\u5bf9\u5c0f\u767d\u5f00\u53d1 K8s \u7ba1\u7406\u5de5\u5177\u6709\u4ec0\u4e48\u671f\u5f85\uff1f

\n

\u6b22\u8fce\u4f53\u9a8c CILIKUBE \uff0c\u70b9\u4e2a Star \uff0c\u4e00\u8d77\u6253\u9020\u4e00\u4e2a\u65b0\u624b\u53cb\u597d\u7684 K8s \u7ba1\u7406\u5de5\u5177\uff01\u671f\u5f85\u5927\u5bb6\u7684\u53cd\u9988\u548c\u8d21\u732e\uff01

\n", "date_published": "2025-05-16T10:57:55+00:00", "title": "\u5f00\u6e90\u5c0f\u767d\uff0c\u6700\u8fd1\u5f00\u6e90\u4e86\u4e2a\u7ec3\u624b\u65b0\u9879\u76ee CILIKUBE\uff0c\u6b22\u8fce\u5927\u4f6c\u4eec Star\uff01", "id": "t/1132301" }, { "author": { "url": "member/justyy", "name": "justyy", "avatar": "https://cdn.v2ex.com/avatar/b225/9514/96983_large.png?m=1702503985" }, "url": "t/1129252", "title": "\u518d\u4e5f\u4e0d\u7528\u8bb0 k8s \u7684\u547d\u4ee4\u4e86", "id": "t/1129252", "date_published": "2025-04-30T20:00:28+00:00", "content_html": "

https://github.com/GoogleCloudPlatform/kubectl-ai

\n" }, { "author": { "url": "member/052678", "name": "052678", "avatar": "https://cdn.v2ex.com/gravatar/01cd3a263b09f8753ef8a56ad1602cd1?s=73&d=retro" }, "url": "t/1128954", "title": "\u6551\u6551\u6211~~\uff0c k8s \u7684 containerd \u7684\u955c\u50cf\u52a0\u901f\u8fd8\u6709\u90a3\u4e9b\u529e\u6cd5\u53ef\u4ee5\u7528\u5440", "id": "t/1128954", "date_published": "2025-04-29T10:04:35+00:00", "content_html": "

\u914d\u7f6e\u4ee5\u4e0b\u65b9\u5f0f\u5931\u8d25~~

\n
 [plugins.\"io.containerd.grpc.v1.cri\".registry]\n [plugins.\"io.containerd.grpc.v1.cri\".registry.mirrors]\n [plugins.\"io.containerd.grpc.v1.cri\".registry.mirrors.\"docker.io\"]\n endpoint = [\"https://bqr1dr1n.mirror.aliyuncs.com\"]\n [plugins.\"io.containerd.grpc.v1.cri\".registry.mirrors.\"k8s.gcr.io\"]\n endpoint = [\"https://registry.aliyuncs.com/k8sxio\"]\n
\n" }, { "author": { "url": "member/guoguobaba", "name": "guoguobaba", "avatar": "https://cdn.v2ex.com/avatar/48a4/7fbb/307012_large.png?m=1742526918" }, "url": "t/1128054", "title": "\u6628\u5929 rancher \u7ed9\u6211\u6316\u4e86\u4e00\u4e2a\u5927\u5751", "id": "t/1128054", "date_published": "2025-04-25T08:07:05+00:00", "content_html": "

\u4e0b\u73ed\u540e\uff0c\u7ed9\u751f\u4ea7\u7cfb\u7edf\u6dfb\u52a0\u4e00\u4e2a\u8282\u70b9\uff0c\u5c31\u7528\u53c2\u7167\u6587\u6863\uff0c\u7528\u7f51\u7ad9\u4e0a\u7684\u811a\u672c\u7ed9\u6dfb\u52a0\u4e86

\n
curl -sfL https://rancher-mirror.rancher.cn/rke2/install.sh | INSTALL_RKE2_MIRROR=cn sh -\n
\n

\u7ed3\u679c\u7cfb\u7edf\u5d29\u4e86\uff0c\u7f51\u7edc\u5168\u90e8\u4e0d\u80fd\u8bbf\u95ee\u4e86\u3002

\n

\u6392\u67e5\u53d1\u73b0\uff0c\u4ed6\u628a\u6211\u7684 calico \u76f8\u5173\u7684\u90fd\u5220\u4e86\uff0c\u51c6\u5907\u6dfb\u52a0 canal \u7f51\u7edc\uff0c\u6211\u64e6\uff0c\u6211\u8d76\u7d27\u5220\u4e86\u8fd9\u4e2a\u8282\u70b9\uff0c\u4fee\u590d\u751f\u4ea7\u7cfb\u7edf\uff0ccalico-system \u7684 namespace \u4e5f\u88ab\u5220\u4e86\uff0c\u7f51\u7edc\u7cfb\u7edf\u5168\u90e8\u5d29\u6e83\uff0c\u6211\u5f53\u65f6\u4e00\u5934\u731b\u6c57\uff0c\u53e3\u4e2d\u95ee\u5019\u4e86\u4ed6\u5bb6\u5404\u79cd\u3002

\n

\u7f51\u8def\u4e0d\u884c\uff0clonghorn \u4e5f\u5f00\u59cb\u5361\uff0c\u7136\u540e\u7cfb\u7edf\u56e0\u4e3a nfs \u5361\u6b7b\u5f88\u591a\u547d\u4ee4\u4e5f\u5f00\u59cb\u3002

\n

\u5148\u5c06\u6240\u6709 deploy replicas \u8bbe\u4e3a 0 \uff0c \u5f3a\u5236 umount nfs \uff0ckubectl \u5f00\u59cb\u80fd\u6b63\u5e38\u64cd\u4f5c\u4e86\u3002

\n

\u5728 gpt \u7684\u5e2e\u52a9\u4e0b\uff0c\u5c1d\u8bd5\u4e86\u5404\u79cd\u65b9\u6848\uff0c\u540e\u6765\u53d1\u73b0\uff0c\u5220\u9664 helmchart \uff0c\u91cd\u542f rke2 \u8ba9\u5b83\u91cd\u5efa calico \u7f51\u7edc

\n
kubectl delete helmchart rke2-calico -n kube-system && kubectl delete helmchart rke2-calico-crd -n kube-system && systemctl restart rke2-server\n
\n

\u91cd\u5efa\u8fc7\u7a0b\u4e2d\u4e5f\u9047\u5230\u597d\u591a\u5751\uff0c\u6298\u817e\u5230\u665a\u4e0a 3\uff1a00 \u624d\u641e\u5b9a\u3002

\n

\u590d\u76d8\u53d1\u73b0\u662f\u6dfb\u52a0\u7684 rke2 \u7248\u672c\u5f88\u65b0\uff0c\u5728/var/lib/rancher/rke2/server/manifests\u63d0\u4f9b\u4e86 rke2-canal.yaml\uff0c\u800c\u4e0d\u662f calico \u76f8\u5173\u914d\u7f6e\uff0c\u5bfc\u81f4 rke2 \u81ea\u52a8\u53d6\u5220\u9664 calico \u76f8\u5173\u7f51\u7edc\uff0c\u5b89\u88c5 canal \u7f51\u7edc\u3002

\n

\u771f\u662f\u4e2a\u6559\u8bad\u3002

\n" }, { "author": { "url": "member/vczyh", "name": "vczyh", "avatar": "https://cdn.v2ex.com/avatar/3e9f/06fd/469815_large.png?m=1745658512" }, "url": "t/1127811", "title": "\u4e0d\u61c2\u5c31\u95ee\uff1a kubeadm \u80fd\u5426\u7528\u4e8e\u751f\u4ea7\uff1f\u548c kubespray \u533a\u522b\u662f\u4ec0\u4e48\uff1f", "id": "t/1127811", "date_published": "2025-04-24T08:01:45+00:00", "content_html": "

\u6253\u7b97\u90e8\u7f72 k8s \uff0c\u73b0\u5728\u7591\u60d1\u4f7f\u7528\u9759\u6001 Pod \u8fd8\u662f systemd \uff0c\u4f7f\u7528 kubeadm \u8fd8\u662f kubespray \u3002

\n" }, { "author": { "url": "member/iblessyou", "name": "iblessyou", "avatar": "https://cdn.v2ex.com/avatar/e02b/ae05/274403_large.png?m=1745314268" }, "url": "t/1127350", "title": "\u65b0\u4eba\u7ec3\u624b\u8bf7\u6559", "id": "t/1127350", "date_published": "2025-04-22T09:32:42+00:00", "content_html": "\u7167\u7740\u8fd9\u4e2a\uff08 https://segmentfault.com/a/1190000043201145 \uff09\u90e8\u7f72 K8S \uff0c\u524d\u9762\u90fd\u6ca1\u95ee\u9898\uff0c\u5728\u7b2c 2.1.4 \u914d\u7f6e\u7f51\u7edc\u63d2\u4ef6
\u91cc\uff0c\u4e0b\u9762\u8fd9\u4e00\u6b65\u65f6\uff0c\u5f00\u59cb\u4e0d\u4e00\u6837\uff0c\u663e\u793a noready \uff0c\u662f\u600e\u4e48\u56de\u4e8b\u5462\uff1f

# \u67e5\u770b Master \u8282\u70b9\u72b6\u6001\uff0c\u6b64\u65f6\u8282\u70b9\u4f1a\u63d0\u793a Ready \uff0cMaster \u8282\u70b9\u5b89\u88c5\u5b8c\u6210
kubectl get nodes

\u6362\u4e86\u4ed6\u7684 yml \u4e5f\u4e0d\u884c\u3002

\u6216\u8005\u6c42\u4e2a\u50bb\u74dc\u5f0f\u6559\u7a0b" }, { "author": { "url": "member/COW", "name": "COW", "avatar": "https://cdn.v2ex.com/avatar/14d4/90b6/472231_large.png?m=1758256641" }, "url": "t/1127035", "title": "\u5927\u5bb6\u516c\u53f8\u7684\u57fa\u7840\u670d\u52a1\u6709\u54ea\u4e9b\u662f\u4e8c\u8fdb\u5236\u5305\u65b9\u5f0f\u90e8\u7f72\u5728\u670d\u52a1\u5668\u4e0a\u7684\uff1f", "id": "t/1127035", "date_published": "2025-04-21T08:18:22+00:00", "content_html": "

\u6bd4\u5982 IAM \u3001dns \u3001jenkins \u3001git server \u3001mq \u3001database \u5404\u79cd\uff0c\u6709\u6ca1\u6709 all in k8s \u7684\uff1f

\n" }, { "author": { "url": "member/taohua1c", "name": "taohua1c", "avatar": "https://cdn.v2ex.com/avatar/b26d/3c01/727814_large.png?m=1769482314" }, "url": "t/1122627", "title": "\u60f3\u5b66\u4e60 K8S\uff0c\u8bf7\u95ee\u5927\u4f6c\u4eec\u5e94\u8be5\u600e\u4e48\u5165\u95e8\u5462\uff1f", "id": "t/1122627", "date_published": "2025-04-01T09:04:45+00:00", "content_html": "

\u4f5c\u4e3a\u4e00\u4e2a\u8fd0\u7ef4\u4eba\u5458\uff0c\u76ee\u524d\u60f3\u5b66\u4e60 K8S \u76f8\u5173\u7684\u5185\u5bb9\u548c\u77e5\u8bc6\uff08\u672c\u4eba\u65b0\u624b\uff09\uff0c\u60f3\u95ee\u95ee\u5927\u4f6c\u4eec\u662f\u4e70\u8bfe\u5462\u8fd8\u662f\u600e\u4e48\u5b66\u4e60\uff1f\u5982\u679c\u8981\u4e70\u8bfe\u54ea\u91cc\u6bd4\u8f83\u9760\u8c31\uff08\u4e2a\u4eba\u503e\u5411\u4e8e\u89c6\u9891\u8bfe\u7a0b\uff09\uff1b

\n" } ] } ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86