{
    "componentChunkName": "component---src-templates-issues-tsx",
    "path": "/issues/308",
    "result": {"data":{"issuesJson":{"id":"93cdec1b-617f-54eb-a5cc-254904c1c32c","title":"kubeclipper/kubeclipper: KubeClipper 是一个轻量级的 Web 服务，为 Kubernetes 集群生命周期管理 提供友好的 Web 控制台 GUI、API 和 CLI 工具。","number":308,"bodyHTML":"<div align=\"center\" dir=\"auto\">\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\"><img src=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\" width=\"100%\" height=\"3\" data-animated-image=\"\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/eryajf/tu@main/img/image_20240420_214408.gif\" style=\"max-width: 100%; height: auto; max-height: 3px;\"></a><br><br></p>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th align=\"right\">Repos</th>\n<th align=\"left\"><a href=\"https://github.com/kubeclipper/kubeclipper\">kubeclipper/kubeclipper</a></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td align=\"right\"><strong>Views</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/b49e07faa7985ed2a5f8c109d111bb9278a31059f14b7171bea47db40b13b6c0/68747470733a2f2f76696577732e77686174696c656172656e65642e746f6461792f76696577732f6769746875622f6b756265636c69707065722f6b756265636c69707065722e737667\" alt=\"views\" data-canonical-src=\"https://views.whatilearened.today/views/github/kubeclipper/kubeclipper.svg\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>Stars</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/1a7ebb4fde991f2af15d6bb9ecf65b96baf5f3cbadceb80fee59babaeb5b1ad2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6b756265636c69707065722f6b756265636c69707065723f636f6c6f723d663266303864266c6f676f3d556e64657274616c65266c6f676f436f6c6f723d656234363330\" alt=\"stars\" data-canonical-src=\"https://img.shields.io/github/stars/kubeclipper/kubeclipper?color=f2f08d&amp;logo=Undertale&amp;logoColor=eb4630\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>Forks</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/99be90c4e8329d9017d0f9a7d71b9d6958e42d5c7953a75ff218f10b547c168c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f6b756265636c69707065722f6b756265636c69707065723f636f6c6f723d626138366562266c6f676f3d48616e647368616b65266c6f676f436f6c6f723d656136616136\" alt=\"forks\" data-canonical-src=\"https://img.shields.io/github/forks/kubeclipper/kubeclipper?color=ba86eb&amp;logo=Handshake&amp;logoColor=ea6aa6\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>License</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/935b647c05e240831003b890b29eb45436ebb818dcb72c74396685e84c77cfbb/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6b756265636c69707065722f6b756265636c69707065723f6c6f676f3d64617461253341696d616765253246706e672533426261736536342532436956424f5277304b47676f414141414e53556845556741414144414141414177434159414141425841766d48414141414358424957584d41414173544141414c457745416d70775941414144336b6c45515652346e4f335953557a5555426748384a726f57567255474a66456d3773584e63534446784d544c327069347348456778654e526f77586770455742445552522532424e414e4f4b4f4b36366f6f4b4a4742586545475263574163455646475152484677516d483525324630774861655748493944554455354c356b6e6568644f62377a66652532423139636e434a47495243516945596c514237594a4979474c38616f73756c565a36695246516a69474b6b7564576735614c6c704f70704e586e665071773555304459524a6d56786a4367464633424c755a476d416f5655694b4541726d583744375553677351706f72674761336748664b34483663754262435644334771683141352532424c6745253242467749656e514d306a6f446f66714c6f48564e7742796d384370546e416d327a51713073676478624964515a556c416b7150415a3664676a303541446f59526f6f66792532466f5869726f376b3551586a4c6f70677a4b69514e6c4c4461716f4967754577426a7a7150355066446a45394479495879493633464d547751464d43567271774e61763451666f52673538514625324266724d485172454b3844546f434d714e4179574e4866786d54526f4c4f726d5352566747744466714345715a4f4851727a6f34706243557341333431365169364551394b476a6345465267484f724f4b6e5536574162396247455459656b4b7843766a546167394534706a653534446b3551503862624d4859762532464333756541654a6b50304f4778422532424a70426e4172595238455951516e6f4e31414e4661426e5050356c385372736559514c303641646b30464a5938484f5761424d6c6541486a683068506f73497a6c6f3876304125324633345a694f6548726130714b52504d5653493774762532423932747725324676687855654252713456454c674d376642714b354770526d6f514c584e7075625475367a6f4e52706754386e5051627138347764253246494375767978694b4871694e41664933774d367549684271476b4c696977414f734b44714f68743749747239567938536a52424557667941627225324668523142667056514664484a42253246423268683778376a36517077435665655951326b72554235436c636a3641326d3067576a25324244306d4c34397a573563517943484c4e37726a6c6d6d6174457958582532464372547a412532466f51785a6b576c39474a5443566f25324279546a3837253242346769504b6376307149486f344156344430565a727251493334706e70524d36357875652532467a417265453425324654253246536f676c664542794d7369517441546c4c3352414a355948725378365a44665337307337754d486842705225324659423573305057366f455270316236253246667252684b3353444c35546965364f515548516c5133735644752532427a50636b397657453973747225324236496a533967486d5750616861444a25324277434b364e494242587348423948796b587378774470686c436d416476706c6162554a4e6e5a504239342532464e7436784f6538587a4562503257684d335741673147756236744825324233513150673337365239713475716c6e6f36676448476a444f5139306562303141484d3672596975554a314f713472344656756a35765239427a4d3957674e764f7977446869495951467667626366774166774d764863615067425041253246447948476a50624e394138616d6562636477416444354e6633373574787165774e5552656f797677424958594c645170576c6877465771745061435044334173467541535636717171496c62304a766b564331464c39576b4c55556c55574b337a585a4c46432532423125324642726f46746f364f7358497545594a5034447a7a5732594656316f4a614141414141456c46546b5375516d4343\" alt=\"license\" data-canonical-src=\"https://img.shields.io/github/license/kubeclipper/kubeclipper?logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD3klEQVR4nO3YSUzUUBgH8JroWVrUGJfEm7sXNcSDFxMTL2pi4sHEgxeNRowXgpEWBDURR%2BNANOKOK66ooKJGBXeEGRcWAcEVFGQRHFwQmH5%2F0wHaeWHI9DUDU5L5knehdOb7zfe%2B19cnCJGIRCQiEYlQB7YJIyGL8aosulVZ6iRFQjiGKkudWg5aLlpOppNXnfPqw5U0DYRJmVxjCgFF3BLuZGmAoVUiKEArmX7D7USgsQporgGa3gHfK4H6cuBbCVD3Gqh1A5%2BLgE%2BFwIenQM0joDofqLoHVNwBym8CpTnAm2zQq0sgdxbIdQZUlAkqPAZ6dgj05ADoYRoofy%2FoXiro7k5QXjLopgzKiQNlLDaqoIguEwBjzqP5PfDjE9DyIXyI63FMTwQFMCVrqwNav4QfoRg58QF%2BfrMHQrEK8DToCMqNAyWNHfxmTRoLOrmSRVgGtDfqCEqZOHQrzo4pbCUsA3416Qi6EQ9KGjcEFRgHOrOKnU6WAb9bGETYekKxCvjTag9E4pje54Dk5QP8bbMHYv%2FC3ueAeJkP0OGxB%2BJpBnArYR8EYQQnoN1ANFaBnPP5l8SrseYQL06Adk0FJY8HOWaBMleAHjh0hPosIzlo8v0A%2F34ZiOeHra0qKRPMVSI7tv%2B92tw%2FvhxUeBRq4VELgM7fBqK5GpRmoQLXNpubTu6zoNRpgT8nPQbq84wd%2FICuvyxiKHqiNAfI3wM6uIhBqGkLiiwAOsKDqOht7Itr9Vy8SjRBEWfyAbr%2FhR1BfpVQFdHJB%2FB2hh7x7j6QpwCVeeYQ2krUB5Clcj6A2m0gWj%2BD0mL49zW5cQyCHLN7rjlmmatEyXX%2FCrTzA%2FoQxZkWl9GJTCVo%2ByTj87%2B4giPKcv0qIHo4AV4D0VZrrQI34pnpRM65xue%2FzAreE4%2FT%2FSoglfEByMsiQtATlL3RAJ5YHrSx6ZDfS70s7uMHhBpR%2FYB5s0PW6oERp1b6%2FfrRhK3SDL5Tie6OQUHQlQ3sVDu%2BzPck9vWE9str%2B6IjS9gHmWPahaDJ%2BwCK6NIBBXsHB9HykXsxwDphlCmAdvplabUJNnZPB94%2FNt6xOe8XzEbP2WhM3WAg1Gub6tH%2B3Q1Pg376R9q4uqlno6gdHGjDOQ90eb01AHM6rYiuUJ1Oq4r4FVuj5vR9BzM9WgNvOywDhiIYQFvgbcfwAfwMvHcaPgBPA%2FDyHGjPbN9A8amebcdwAdD5Nf375txqewNUReoyvwBIXYLdQpWlhwFWqtPaCPD3AsFuASV6qqqIlb0JvkVC1FL9WkLUUlUWK3zXZLFC%2B1%2FBroFto6OsXIuEYJP4DzzW2YFV1oJaAAAAAElFTkSuQmCC\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>UpdatedAt</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/036bb29ce9ed1ecccff78f191d2ae17fe0a8f7f611b33e2145f9e7a0c89a2b18/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f6b756265636c69707065722f6b756265636c69707065723f646973706c61795f74696d657374616d703d636f6d6d6974746572266c6f676f3d64617461253341696d616765253246706e672533426261736536342532436956424f5277304b47676f414141414e5355684555674141414234414141416543415941414141374d4b3669414141414358424957584d41414173544141414c457745416d7077594141414648556c45515652346e4c5658375539615678776d3236646c582532466468627825324232253246516e626b7655627264554151674a4a496655444e574454546d4f76314651554661504a346b7573725630314a7431734e70637453327533626f745a746d786439744a5346536f714b71494635625944464c436f76436c656673747a4a387758524c445a4c7a6e6b634f343535376e3364332532466e655a3472454f515a74315771462532423858467234253242664f4c4565326a6f59307a776638546f795a50766a45676b4c592532426b306d6d72584f36644b696e787a476b30666a5430782532425279723055716e6359637a4d317263347451253242497270324c4758646f344e4334567657715453373277716c632532427231334f527269364b6458646e624f484c6c776c7a4a70524b6e3657342532424b36706f4f434e6e494166486a253246253242776168495a4234764b6e715a6630714a704e49716c2532467638545530634e6c3572627963337730516e54703379324c54614a374d314e617844723266526e315370504736476961323174664533345463614f617931694d55564f5146624659714957536f31573854694156616e43306576584f4542375770313448466232327a453566714c4f433545524c515769644e614e49347545636339693768634a6c644868324e57725135674464624f6c7061756d49754c62326174415144506e7a3062384e6257636d785656524a33486d7870536377777a4f4a6d4b44524765384c6c435a444c4739673754496e5631516c376462586256316533675430574b697243466f6d6b5079767758466c5a474a4f6a563625324253743634757564445a4f55354555636f782532464d455144567674364d62634e3237593341797a687633737061557242365a3971724a534f3139657a6a387032704c426b4a792532426343484a7857493567573574636652527a31645531394766476b6f7539505a4f34736d52396a4746777065783444793362766e6d4b79706f74625531335669646a71595a68726a343972764d457425324625324659714c7a396430304e6a57253246637a67796f394f35317a7336614e6c6f354644747530445a675146686c47584a30644241446f4e6864367576703657686f617967374e394c564748386d443462253246486e667455516f4e4734764c51306769784d716c5725324234714f6a744e48446733723166365969525347785279375576714c62395534716b716e78504f4e7661356c447048723125324279794b524e4b57425a793565644d554842326d3572792532422532424551772532427a6766347a6f39253246306f634e3357527a4c4277344a2532424a7950574372716d4967475974554f735744346f785a46516f50556a4770564871493425324661666b51504336665a5165654d31253242764c7549516e6a754257514444437363726d485039656f4e5041744271664f6e5875614b25324268364a45624772732532427076764d6d78654962683836336162565065597953456f39464a48704e4d464a59253242503563575a6b6667374f3174537759436553514c54593345385130392532464256504a556c78516a7368543142736343593032723955445542667643484236367063665041336c794165336e6772332532463437584467614a7a736c7937787741364e5a746c555550437541487161536a5549502532427375653842525741432532464e6651374a5a505a35397330476a3756747049537a34685125324243706658474d4b685a63764c70554b7866574d386f68766637702532464f446a4842666356463849736b383267314648796b63564645253242555a414158343761452532464d6c34504f3530506e75683025324678346e6d637957507364774468427836436d6b4c562532466746446a594b784f4a4f4674623077517949684c39527943774b33414f664947703159464542686e4d4a634c525745624b644b516f55366e63545a6b494544696341792532463831645675454d3552775066657934784f7830496b25324649324e6e466b692532425761664f6f464959466367595a43797864376543556a626334416d46363566742532466b4d686b336f25324235686337734d4a79716a4a45477659466151464972375930775077384246415925324236253242766d6b3377367a7a5275444d6d5a5652736668385274413075455453443775434254364459514e36697665553066706b594c6a453671725672744f78654e4b553954484c5a4a396b4255324a427342685635416976422532466f4b61514e4b675043427744596149665a4334616454684f71463457454e56694c4a77566f586f62664c424b56773637414f6154734c6336355461564b32317651344c613939654b6359673576627873624f627a5451394e37554b4467554f3177446a6944494942736868357a746733396e514d4c535a4248344f7a424f55444551586d323036643366634c67737762585141345068634b336e6873775531427a3877765130395248472532466f597933656a6677424e6d746f59714c4130586741414141424a52553545726b4a676767253344253344266c6162656c3d557064617465644174\" alt=\"last-commit\" data-canonical-src=\"https://img.shields.io/github/last-commit/kubeclipper/kubeclipper?display_timestamp=committer&amp;logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHUlEQVR4nLVX7U9aVxwm26dlX%2Fdhbx%2B2%2FQnbkvUbrdUAQgJJIfUDNWDTTmOv1FQUFaPJ4kusrV01Jt1sNpctS2u3botZtmxd9tJSFSoqKqIF5bYDFLCovClefstzJ8wXRLDZLznkcO4557n3d3%2FneZ4rEOQZt1WqF%2B8XFr4%2BfOLEe2joY0zwf8ToyZPvjEgkLY%2Bk0mmrXO6dKinxzGk0fjT0x%2BRyr0UqncYczM1rc4tQ%2BIrp2LGXdo4NC4VvWqTS72wqlc%2Br13ORri6KdXdnbOHLlwlzJpRKn6W4%2BK6poOCNnIAfHj%2F%2BwahIZB4vKnqZf0qJpNIql%2Fv8TU0cNl5rbyc3w0QnTp3y2LTaJ7M1NaxDr2fRn1SpPG6Gia21tfE34TcaOay1iMUVOQFbFYqIWSo1W8TiAVanC0evXOEB7Wp14HFb22zE5fqLOC5ERLQWidNaNI4uEcc9i7hcJldHh2NWrQ5gDdbOlpaumIuLb2atAQDPnz0b8NbWcmxVVRJ3HmxpScwwzOJmKDRGe8LlCZDLG9g7TInV1Ql7dbXbV1e3gT0WKirCFomkPyvwXFlZGJOjV6%2BSt64uudDZOU5EUcox%2FMEQDVvt6MbcN27Y3Ayzhv3spaUrB6Z9qrJSO19ezj8p2pLBkJy%2BcCHJxWI5gW5tcfRRz1dU19GfGkou9PZO4smR9jGFwpex4Dy3bvnmKypotbU13VidjqYZhrj49rvMEt%2F%2FYqLz9d00NjW%2Fczgyo9O51zs6aNlo5FDtu0DZgQFhlGXJ0dBADoNhd6uvp6Whoayg7N9LVGH8mD4b%2FHnftUQoNG4vLQ0gixMqlW%2B4qOjtNHDg3r1f6YiRSGxRy7UvqLb9U4qkqnxPONva5lDpHr1%2ByyKRNKWBZy5edMUHB2m5ry%2B%2BEQw%2Bzgf4zo9%2F0ocN3WRzLBw4J%2BJyPWCrqmIgGYtUOsWD4oxZFQoPUjGpVHqI4%2FafkQPC6fZQeeM1%2BvLuIQnjuBWQDDCscrmHP9eoNPAtBqfOnXuaK%2Bh6JEbGrs%2BpvvMmxeIbh863abVPeYySEo9FJHpNMFJY%2BP5cWZkfg7O1tSwYCeSQLTY3E8Q09%2FBVPJUlxQjshT1BscCY02r9UDUBfvCHB66pcfPA3lyAe3ngr3%2F47XDgaJzsly7xwA6NZtlUUPCuAHqaSjUIP%2Bsue8BRWAC%2FNfQ7JZPZ59s0Gj7VtpISz4hQ%2BCpfXGMKhZcvLpUKxfWM8ohvf7p%2FODjHBfcVF8Isk82g1FHykcVFE%2BUZAAX47aE%2FMl4PO50Pnuh0%2Fx4nmcyWPsdwDhBx6CmkLV%2FgFDjYKxOJOFtb0wQyIhL9RyCwK3AOfIGp1YFEBhnMJcLRWEbKdKQoU6ncTZkIEDicAy%2F81dVuEM5RwPfey4xOx0Ik%2FI2NnFki%2BWafOoFIYFcgYZCyxd7eCUjbc4AmF65ft%2FkMhk3o%2B5hc7sMJyqjJEGvYFaQFIr7Y0wPw8BFAY%2B6%2Bvmk3w6zzRuDMmZVRsfh8RtA0uETSD7uCBT6DYQN6iveU0fpkYLjE6qrVrtOxeNKU9THLZJ9kBU2JBsBhV5AivB%2FoKaQNKgPCBwDYaIfZC4adThOqF4WENViLJwVoXobfLBKVw67AOaTsLc65TaVK21vQ4La99eKcYg5vbxsbObzTQ9N7UKDgUO1wDjiDIIBshh5ztg39nQMLSZBH4OzBOUDEQXm206d3fcLgswbXQA4PhcK3nhswU1Bz8wvQ09RHG%2FoYy3ejfwBNmtoYqLA0XgAAAABJRU5ErkJggg%3D%3D&amp;label=UpdatedAt\" style=\"max-width: 100%;\"></a></td>\n</tr>\n<tr>\n<td align=\"right\"><strong>CreatedAt</strong></td>\n<td align=\"left\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/44b99d3b766f3bf7facb7e24e6027ce086af562e7aa3e026fdd4487952d512fc/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f637265617465642d61742f6b756265636c69707065722f6b756265636c69707065723f6c6f676f3d64617461253341696d616765253246706e672533426261736536342532436956424f5277304b47676f414141414e5355684555674141414234414141416543415941414141374d4b3669414141414358424957584d41414173544141414c457745416d7077594141414648556c45515652346e4c5658375539615678776d3236646c582532466468627825324232253246516e626b7655627264554151674a4a496655444e574454546d4f76314651554661504a346b7573725630314a7431734e70637453327533626f745a746d786439744a5346536f714b71494635625944464c436f76436c656673747a4a387758524c445a4c7a6e6b634f343535376e3364332532466e655a3472454f515a74315771462532423858467234253242664f4c4565326a6f59307a776638546f795a50766a45676b4c592532426b306d6d72584f36644b696e787a476b30666a5430782532425279723055716e6359637a4d317263347451253242497270324c4758646f344e4334567657715453373277716c632532427231334f527269364b6458646e624f484c6c776c7a4a70524b6e3657342532424b36706f4f434e6e494166486a253246253242776168495a4234764b6e715a6630714a704e49716c2532467638545530634e6c3572627963337730516e54703379324c54614a374d314e617844723266526e315370504736476961323174664533345463614f617931694d55564f5146624659714957536f31573854694156616e43306576584f4542375770313448466232327a453566714c4f433545524c515769644e614e49347545636339693768634a6c644868324e57725135674464624f6c7061756d49754c62326174415144506e7a3062384e6257636d785656524a33486d7870536377777a4f4a6d4b44524765384c6c435a444c4739673754496e5631516c376462586256316533675430574b697243466f6d6b5079767758466c5a474a4f6a563625324253743634757564445a4f55354555636f782532464d455144567674364d62634e3237593341797a687633737061557242365a3971724a534f3139657a6a387032704c426b4a792532426343484a7857493567573574636652527a31645531394766476b6f7539505a4f34736d52396a4746777065783444793362766e6d4b79706f74625531335669646a71595a68726a343972764d457425324625324659714c7a396430304e6a57253246637a67796f394f35317a7336614e6c6f354644747530445a675146686c47584a30644241446f4e6864367576703657686f617967374e394c564748386d443462253246486e667455516f4e4734764c51306769784d716c5725324234714f6a744e48446733723166365969525347785279375576714c62395534716b716e78504f4e7661356c447048723125324279794b524e4b57425a793565644d554842326d3572792532422532424551772532427a6766347a6f39253246306f634e3357527a4c4277344a2532424a7950574372716d4967475974554f735744346f785a46516f50556a4770564871493425324661666b51504336665a5165654d31253242764c7549516e6a754257514444437363726d485039656f4e5041744271664f6e5875614b25324268364a45624772732532427076764d6d78654962683836336162565065597953456f39464a48704e4d464a59253242503563575a6b6667374f3174537759436553514c54593345385130392532464256504a556c78516a7368543142736343593032723955445542667643484236367063665041336c794165336e6772332532463437584467614a7a736c7937787741364e5a746c555550437541487161536a5549502532427375653842525741432532464e6651374a5a505a35397330476a3756747049537a34685125324243706658474d4b685a63764c70554b7866574d386f68766637702532464f446a4842666356463849736b383267314648796b63564645253242555a414158343761452532464d6c34504f3530506e75683025324678346e6d637957507364774468427836436d6b4c562532466746446a594b784f4a4f4674623077517949684c39527943774b33414f664947703159464542686e4d4a634c525745624b644b516f55366e63545a6b494544696341792532463831645675454d3552775066657934784f7830496b25324649324e6e466b692532425761664f6f464959466367595a43797864376543556a626334416d46363566742532466b4d686b336f25324235686337734d4a79716a4a45477659466151464972375930775077384246415925324236253242766d6b3377367a7a5275444d6d5a5652736668385274413075455453443775434254364459514e36697665553066706b594c6a453671725672744f78654e4b553954484c5a4a396b4255324a427342685635416976422532466f4b61514e4b675043427744596149665a4334616454684f71463457454e56694c4a77566f586f62664c424b56773637414f6154734c6336355461564b32317651344c613939654b6359673576627873624f627a5451394e37554b4467554f3177446a6944494942736868357a746733396e514d4c535a4248344f7a424f55444551586d323036643366634c67737762585141345068634b336e6873775531427a3877765130395248472532466f597933656a6677424e6d746f59714c4130586741414141424a52553545726b4a676767253344253344266c6162656c3d437265617465644174\" alt=\"create-at\" data-canonical-src=\"https://img.shields.io/github/created-at/kubeclipper/kubeclipper?logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHUlEQVR4nLVX7U9aVxwm26dlX%2Fdhbx%2B2%2FQnbkvUbrdUAQgJJIfUDNWDTTmOv1FQUFaPJ4kusrV01Jt1sNpctS2u3botZtmxd9tJSFSoqKqIF5bYDFLCovClefstzJ8wXRLDZLznkcO4557n3d3%2FneZ4rEOQZt1WqF%2B8XFr4%2BfOLEe2joY0zwf8ToyZPvjEgkLY%2Bk0mmrXO6dKinxzGk0fjT0x%2BRyr0UqncYczM1rc4tQ%2BIrp2LGXdo4NC4VvWqTS72wqlc%2Br13ORri6KdXdnbOHLlwlzJpRKn6W4%2BK6poOCNnIAfHj%2F%2BwahIZB4vKnqZf0qJpNIql%2Fv8TU0cNl5rbyc3w0QnTp3y2LTaJ7M1NaxDr2fRn1SpPG6Gia21tfE34TcaOay1iMUVOQFbFYqIWSo1W8TiAVanC0evXOEB7Wp14HFb22zE5fqLOC5ERLQWidNaNI4uEcc9i7hcJldHh2NWrQ5gDdbOlpaumIuLb2atAQDPnz0b8NbWcmxVVRJ3HmxpScwwzOJmKDRGe8LlCZDLG9g7TInV1Ql7dbXbV1e3gT0WKirCFomkPyvwXFlZGJOjV6%2BSt64uudDZOU5EUcox%2FMEQDVvt6MbcN27Y3Ayzhv3spaUrB6Z9qrJSO19ezj8p2pLBkJy%2BcCHJxWI5gW5tcfRRz1dU19GfGkou9PZO4smR9jGFwpex4Dy3bvnmKypotbU13VidjqYZhrj49rvMEt%2F%2FYqLz9d00NjW%2Fczgyo9O51zs6aNlo5FDtu0DZgQFhlGXJ0dBADoNhd6uvp6Whoayg7N9LVGH8mD4b%2FHnftUQoNG4vLQ0gixMqlW%2B4qOjtNHDg3r1f6YiRSGxRy7UvqLb9U4qkqnxPONva5lDpHr1%2ByyKRNKWBZy5edMUHB2m5ry%2B%2BEQw%2Bzgf4zo9%2F0ocN3WRzLBw4J%2BJyPWCrqmIgGYtUOsWD4oxZFQoPUjGpVHqI4%2FafkQPC6fZQeeM1%2BvLuIQnjuBWQDDCscrmHP9eoNPAtBqfOnXuaK%2Bh6JEbGrs%2BpvvMmxeIbh863abVPeYySEo9FJHpNMFJY%2BP5cWZkfg7O1tSwYCeSQLTY3E8Q09%2FBVPJUlxQjshT1BscCY02r9UDUBfvCHB66pcfPA3lyAe3ngr3%2F47XDgaJzsly7xwA6NZtlUUPCuAHqaSjUIP%2Bsue8BRWAC%2FNfQ7JZPZ59s0Gj7VtpISz4hQ%2BCpfXGMKhZcvLpUKxfWM8ohvf7p%2FODjHBfcVF8Isk82g1FHykcVFE%2BUZAAX47aE%2FMl4PO50Pnuh0%2Fx4nmcyWPsdwDhBx6CmkLV%2FgFDjYKxOJOFtb0wQyIhL9RyCwK3AOfIGp1YFEBhnMJcLRWEbKdKQoU6ncTZkIEDicAy%2F81dVuEM5RwPfey4xOx0Ik%2FI2NnFki%2BWafOoFIYFcgYZCyxd7eCUjbc4AmF65ft%2FkMhk3o%2B5hc7sMJyqjJEGvYFaQFIr7Y0wPw8BFAY%2B6%2Bvmk3w6zzRuDMmZVRsfh8RtA0uETSD7uCBT6DYQN6iveU0fpkYLjE6qrVrtOxeNKU9THLZJ9kBU2JBsBhV5AivB%2FoKaQNKgPCBwDYaIfZC4adThOqF4WENViLJwVoXobfLBKVw67AOaTsLc65TaVK21vQ4La99eKcYg5vbxsbObzTQ9N7UKDgUO1wDjiDIIBshh5ztg39nQMLSZBH4OzBOUDEQXm206d3fcLgswbXQA4PhcK3nhswU1Bz8wvQ09RHG%2FoYy3ejfwBNmtoYqLA0XgAAAABJRU5ErkJggg%3D%3D&amp;label=CreatedAt\" style=\"max-width: 100%;\"></a></td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<a href=\"https://github.com/opsre/awesome-ops\">\n</a><p dir=\"auto\"><a href=\"https://github.com/opsre/awesome-ops\"><img src=\"https://camo.githubusercontent.com/b964a36ea4078c39f603d46a29436371c7541a2f26e0228d7b21b9d9805b43d3/68747470733a2f2f736f6369616c6966792e6769742e63692f6f707372652f617765736f6d652d6f70732f696d6167653f6465736372697074696f6e3d3126666f6e743d42697474657226666f726b733d31266973737565733d31266c616e67756167653d31266c6f676f3d6874747073253341253246253246617661746172732e67697468756275736572636f6e74656e742e636f6d25324675253246313838353638303230266e616d653d31266f776e65723d31267061747465726e3d436972637569742b426f6172642670756c6c733d31267374617267617a6572733d31267468656d653d4c69676874\" alt=\"\" data-canonical-src=\"https://socialify.git.ci/opsre/awesome-ops/image?description=1&amp;font=Bitter&amp;forks=1&amp;issues=1&amp;language=1&amp;logo=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F188568020&amp;name=1&amp;owner=1&amp;pattern=Circuit+Board&amp;pulls=1&amp;stargazers=1&amp;theme=Light\" style=\"max-width: 100%;\"></a></p>\n<a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\"><img src=\"https://camo.githubusercontent.com/a15b413168923d02e21292705ceaf86b92675f98e250c5c896a02ba7504a6eae/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f657279616a662f7475406d61696e2f696d672f696d6167655f32303234303432305f3231343430382e676966\" width=\"100%\" height=\"3\" data-animated-image=\"\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/eryajf/tu@main/img/image_20240420_214408.gif\" style=\"max-width: 100%; height: auto; max-height: 3px;\"></a>\n</div>\n<p align=\"center\" dir=\"auto\">\n<a href=\"https://kubeclipper.io/\" rel=\"nofollow\"><img src=\"docs/img/kubeclipper.gif\" alt=\"banner\" width=\"200px\" data-animated-image=\"\" style=\"max-width: 100%;\"></a>\n</p>\n<p align=\"center\" dir=\"auto\">\n<b>Manage kubernetes in the most light and convenient way</b>\n</p>\n\n<p align=\"center\" dir=\"auto\">\n  <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/61d29e1be639c6627e38ab4e5be9adf64cf2bc4a023f2af5fcf4d64e27bad9b7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2d5265706f5f5374617475735f3e2d3030303030303f7374796c653d666c61742d737175617265266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465\"><img alt=\"repo status\" src=\"https://camo.githubusercontent.com/61d29e1be639c6627e38ab4e5be9adf64cf2bc4a023f2af5fcf4d64e27bad9b7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2d5265706f5f5374617475735f3e2d3030303030303f7374796c653d666c61742d737175617265266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465\" data-canonical-src=\"https://img.shields.io/badge/-Repo_Status_&gt;-000000?style=flat-square&amp;logo=github&amp;logoColor=white\" style=\"max-width: 100%;\"></a>\n  <a href=\"https://codecov.io/gh/kubeclipper/kubeclipper\" rel=\"nofollow\"><img alt=\"coverage\" src=\"https://camo.githubusercontent.com/dbd6db281d0bd6946ff0c47e0259c858b7a79f55da594d8fbbe923e10e1cd767/68747470733a2f2f636f6465636f762e696f2f67682f6b756265636c69707065722f6b756265636c69707065722f6272616e63682f6d61737465722f67726170682f62616467652e737667\" data-canonical-src=\"https://codecov.io/gh/kubeclipper/kubeclipper/branch/master/graph/badge.svg\" style=\"max-width: 100%;\"></a>\n  <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/02447f3b68f4311f35500546e3ae8d7e5c7b86b420119ea01fecf8fad6d1ef6a/68747470733a2f2f676f7265706f7274636172642e636f6d2f62616467652f6769746875622e636f6d2f6b756265636c69707065722f6b756265636c6970706572\"><img alt=\"Go Report Card\" src=\"https://camo.githubusercontent.com/02447f3b68f4311f35500546e3ae8d7e5c7b86b420119ea01fecf8fad6d1ef6a/68747470733a2f2f676f7265706f7274636172642e636f6d2f62616467652f6769746875622e636f6d2f6b756265636c69707065722f6b756265636c6970706572\" data-canonical-src=\"https://goreportcard.com/badge/github.com/kubeclipper/kubeclipper\" style=\"max-width: 100%;\"></a>\n  <a href=\"https://www.codacy.com/gh/kubeclipper/kubeclipper/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=kubeclipper/kubeclipper&amp;utm_campaign=Badge_Grade\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/10049fa67caaa25acc167427d24ba0dbf934dcda8043150bcd80f95fea8c6652/68747470733a2f2f6170702e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f3664303737633330636233653465323639623839313338306332326435666330\" data-canonical-src=\"https://app.codacy.com/project/badge/Grade/6d077c30cb3e4e269b891380c22d5fc0\" style=\"max-width: 100%;\"></a>\n  <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/10507764c957f5ea83f06e8fba610237428cb4cc4945361c917e098b9733c04c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f6b756265636c69707065722f6b756265636c69707065723f7374796c653d666c61742d737175617265\"><img alt=\"last commit\" src=\"https://camo.githubusercontent.com/10507764c957f5ea83f06e8fba610237428cb4cc4945361c917e098b9733c04c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f6b756265636c69707065722f6b756265636c69707065723f7374796c653d666c61742d737175617265\" data-canonical-src=\"https://img.shields.io/github/last-commit/kubeclipper/kubeclipper?style=flat-square\" style=\"max-width: 100%;\"></a>\n  <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/2fdc24ce4a262d4287090e52aef8fe3ac9dedbb1913a0f8056bc06a362e60be6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6b756265636c69707065722f6b756265636c69707065723f7374796c653d666c61742d737175617265266c6162656c436f6c6f723d333433623431\"><img alt=\"Issues\" src=\"https://camo.githubusercontent.com/2fdc24ce4a262d4287090e52aef8fe3ac9dedbb1913a0f8056bc06a362e60be6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6b756265636c69707065722f6b756265636c69707065723f7374796c653d666c61742d737175617265266c6162656c436f6c6f723d333433623431\" data-canonical-src=\"https://img.shields.io/github/issues/kubeclipper/kubeclipper?style=flat-square&amp;labelColor=343b41\" style=\"max-width: 100%;\"></a>\n  <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/0e036baac50a10768c2d6975b2ed30fb862465d7e0f2ea6c8d12cb0a8fc13dd6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d70722f6b756265636c69707065722f6b756265636c69707065723f7374796c653d666c61742d737175617265266c6162656c436f6c6f723d333433623431\"><img alt=\"Pull Requests\" src=\"https://camo.githubusercontent.com/0e036baac50a10768c2d6975b2ed30fb862465d7e0f2ea6c8d12cb0a8fc13dd6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d70722f6b756265636c69707065722f6b756265636c69707065723f7374796c653d666c61742d737175617265266c6162656c436f6c6f723d333433623431\" data-canonical-src=\"https://img.shields.io/github/issues-pr/kubeclipper/kubeclipper?style=flat-square&amp;labelColor=343b41\" style=\"max-width: 100%;\"></a>\n  <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/46cd743b146e4b2df4ec0ce146b5d84b0c74c7279d8cbb9e562f52aba4d6805e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f6b756265636c69707065722f6b756265636c69707065723f7374796c653d666c61742d737175617265\"><img alt=\"contributors\" src=\"https://camo.githubusercontent.com/46cd743b146e4b2df4ec0ce146b5d84b0c74c7279d8cbb9e562f52aba4d6805e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f6b756265636c69707065722f6b756265636c69707065723f7374796c653d666c61742d737175617265\" data-canonical-src=\"https://img.shields.io/github/contributors/kubeclipper/kubeclipper?style=flat-square\" style=\"max-width: 100%;\"></a>\n  <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/f460ed150410f0ddbb222c38f0f0ce15613d5a0f3fda74e96f085e74d8063076/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4170616368655f322e302d626c75653f7374796c653d666c61742d737175617265\"><img alt=\"apache2.0\" src=\"https://camo.githubusercontent.com/f460ed150410f0ddbb222c38f0f0ce15613d5a0f3fda74e96f085e74d8063076/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4170616368655f322e302d626c75653f7374796c653d666c61742d737175617265\" data-canonical-src=\"https://img.shields.io/badge/License-Apache_2.0-blue?style=flat-square\" style=\"max-width: 100%;\"></a>\n  <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/d2bc46f452029a195972eaa76cd0586d4906cd6633863e0fe98ce4afa84cd168/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6b756265636c69707065722f6b756265636c69707065723f7374796c653d666c61742d737175617265266c6162656c436f6c6f723d333433623431\"><img alt=\"Stars\" src=\"https://camo.githubusercontent.com/d2bc46f452029a195972eaa76cd0586d4906cd6633863e0fe98ce4afa84cd168/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6b756265636c69707065722f6b756265636c69707065723f7374796c653d666c61742d737175617265266c6162656c436f6c6f723d333433623431\" data-canonical-src=\"https://img.shields.io/github/stars/kubeclipper/kubeclipper?style=flat-square&amp;labelColor=343b41\" style=\"max-width: 100%;\"></a>\n  <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/03bdfcc147c9a31bc89eecbf7b5f5cba1f9550444bde0836c2937adba63da3e2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f6b756265636c69707065722f6b756265636c69707065723f7374796c653d666c61742d737175617265266c6162656c436f6c6f723d333433623431\"><img alt=\"Forks\" src=\"https://camo.githubusercontent.com/03bdfcc147c9a31bc89eecbf7b5f5cba1f9550444bde0836c2937adba63da3e2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f6b756265636c69707065722f6b756265636c69707065723f7374796c653d666c61742d737175617265266c6162656c436f6c6f723d333433623431\" data-canonical-src=\"https://img.shields.io/github/forks/kubeclipper/kubeclipper?style=flat-square&amp;labelColor=343b41\" style=\"max-width: 100%;\"></a>\n</p>\n<p align=\"center\" dir=\"auto\">\n  <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/4d88b6db44d8ce6aeb9a3e656cc02569456cae32b22afc6334bc8704a5cdeedc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2d4769746875625f416374696f6e735f3e2d3030303030303f7374796c653d666c61742d737175617265266c6f676f3d6769746875622d616374696f6e73266c6f676f436f6c6f723d7768697465\"><img alt=\"github actions\" src=\"https://camo.githubusercontent.com/4d88b6db44d8ce6aeb9a3e656cc02569456cae32b22afc6334bc8704a5cdeedc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2d4769746875625f416374696f6e735f3e2d3030303030303f7374796c653d666c61742d737175617265266c6f676f3d6769746875622d616374696f6e73266c6f676f436f6c6f723d7768697465\" data-canonical-src=\"https://img.shields.io/badge/-Github_Actions_&gt;-000000?style=flat-square&amp;logo=github-actions&amp;logoColor=white\" style=\"max-width: 100%;\"></a>\n  <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/kubeclipper/kubeclipper/actions/workflows/go-test-coverage.yml/badge.svg\"><img alt=\"go-test-coverage\" src=\"https://github.com/kubeclipper/kubeclipper/actions/workflows/go-test-coverage.yml/badge.svg\" style=\"max-width: 100%;\"></a>\n  <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/kubeclipper/kubeclipper/actions/workflows/build-kc.yml/badge.svg\"><img alt=\"build-kc\" src=\"https://github.com/kubeclipper/kubeclipper/actions/workflows/build-kc.yml/badge.svg\" style=\"max-width: 100%;\"></a>\n  <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/kubeclipper/kubeclipper/actions/workflows/generate-kcctl-docs.yml/badge.svg\"><img alt=\"generate-kcctl-docs\" src=\"https://github.com/kubeclipper/kubeclipper/actions/workflows/generate-kcctl-docs.yml/badge.svg\" style=\"max-width: 100%;\"></a>\n</p>\n<hr>\n<h2 dir=\"auto\">What is KubeClipper</h2>\n<blockquote>\n<p dir=\"auto\">English | <a href=\"README_zh.md\">中文</a></p>\n</blockquote>\n<p dir=\"auto\"><a href=\"https://kubeclipper.io/\" rel=\"nofollow\">KubeClipper</a> is a lightweight web service that provides a friendly web console GUI, APIs, and a CLI tool for <strong>Kubernetes cluster lifecycle management</strong>.<br>\nKubeClipper provides flexible Kubernetes as a Service (KaaS), which allows users to rapidly deploy K8S clusters<br>\nanywhere(cloud, hypervisor, bare metal) and provides continuous lifecycle management capabilities<br>\n(installation, deleting, upgrading, backup and restoration, cluster scaling, remote access, plug-in management,<br>\napplication store).see <a href=\"https://github.com/kubeclipper/kubeclipper#features\">Feature List</a> for details.</p>\n<p dir=\"auto\"><strong>🎯 Project Goal</strong>：Manage Kubernetes in the most light and convenient way.</p>\n<h2 dir=\"auto\">Features</h2>\n<details>\n  <summary><b>☸️ Cluster Lifecycle Management</b></summary>\n  Supports deployment of Kubernetes on any infrastructure and provides comprehensive cluster lifecycle management.\n  <ul dir=\"auto\">\n  <li>Lifecycle Management: cluster creation, deletion, backup, restoration, upgrade, and node manipulation</li>\n  <li>Multiple Deployment Modes: online/offline deployment support</li>\n  <li>Multi-Architecture: x86/64 &amp; arm64 support</li>\n  <li>Cluster Import: registration and management of external clusters (non-Kubeclipper created)</li>\n  <li>...</li>\n  </ul>\n</details>\n<details>\n  <summary><b>🌐 Node Management</b></summary>\n  <ul dir=\"auto\">\n  <li>Automatic node registration</li>\n  <li>Node information collection</li>\n  <li>Node terminal</li>\n  <li>...</li>\n  </ul>\n</details>\n<details>\n  <summary><b>🚪 Identity and Access Management (IAM)</b></summary>\n  Provides a unified authentication and authorization system with fine-grained role-based access control.\n  <ul dir=\"auto\">\n  <li>RBAC-based user permission system</li>\n  <li>OIDC integration</li>\n  <li>...</li>\n  </ul>\n</details>\n<h2 dir=\"auto\">Roadmap &amp; Todo list</h2>\n<ul dir=\"auto\">\n<li>🚀 Cluster Installation Optimization\n<ul dir=\"auto\">\n<li>Use images to encapsulate installation package resources to reduce complexity. Reuse mature image technology</li>\n</ul>\n</li>\n<li>💻 Kubernetes Web Console\n<ul dir=\"auto\">\n<li>Workload resources &amp; monitoring presentation</li>\n<li>Tenant based cluster access control</li>\n</ul>\n</li>\n<li>📦 Application Store\n<ul dir=\"auto\">\n<li>Application lifecycle management</li>\n<li>Support web UI &amp; CLI interface</li>\n</ul>\n</li>\n<li>🧩 Common Application and Plugin Integrations\n<ul dir=\"auto\">\n<li>LB &amp; Ingress</li>\n<li>Monitoring</li>\n<li>Kubernetes Dashboard</li>\n<li>KubeEdge</li>\n</ul>\n</li>\n<li>🕸 Managed Clusters\n<ul dir=\"auto\">\n<li>Support KoK clusters.</li>\n</ul>\n</li>\n</ul>\n<h2 dir=\"auto\">Architecture</h2>\n<h3 dir=\"auto\">Core</h3>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"docs/img/kc-arch.png\"><img src=\"docs/img/kc-arch.png\" alt=\"kc-arch1\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\">Node</h3>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"docs/img/kc-arch2.png\"><img src=\"docs/img/kc-arch2.png\" alt=\"kc-arch2\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\">Network</h3>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"docs/img/kc-network.png\"><img src=\"docs/img/kc-network.png\" alt=\"kc-network\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Explore the architecture of Kubeclipper on <a href=\"https://kubeclipper.io/docs/overview/\" rel=\"nofollow\">kubeclipper.io</a>.</p>\n<h2 dir=\"auto\">Quick Start</h2>\n<p dir=\"auto\">For users who are new to KubeClipper and want to get started quickly, it is recommended to use the All-in-One installation mode, which can help you quickly deploy KubeClipper with zero configuration.</p>\n<h3 dir=\"auto\">Preparations</h3>\n<p dir=\"auto\">KubeClipper itself does not take up too many resources, but in order to run Kubernetes better in the future,  it is recommended that the hardware configuration should not be lower than the minimum requirements.</p>\n<p dir=\"auto\">You only need to prepare a host with reference to the following requirements for machine hardware and operating system.</p>\n<h4 dir=\"auto\">Hardware recommended configuration</h4>\n<ul dir=\"auto\">\n<li>Make sure your machine meets the minimum hardware requirements: CPU &gt;= 2 cores, RAM &gt;= 2GB.</li>\n<li>Operating System: CentOS 7.x / Ubuntu 18.04 / Ubuntu 20.04.</li>\n</ul>\n<h4 dir=\"auto\">Node requirements</h4>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">Nodes must be able to connect via <code class=\"notranslate\">SSH</code>.</p>\n</li>\n<li>\n<p dir=\"auto\">You can use the <code class=\"notranslate\">sudo</code> / <code class=\"notranslate\">curl</code> / <code class=\"notranslate\">wget</code> / <code class=\"notranslate\">tar</code> command on this node.</p>\n</li>\n</ul>\n<blockquote>\n<p dir=\"auto\">It is recommended that your operating system is in a clean state (no additional software is installed), otherwise, conflicts may occur.</p>\n</blockquote>\n<h3 dir=\"auto\">Deploy KubeClipper</h3>\n<h4 dir=\"auto\">Download kcctl</h4>\n<p dir=\"auto\">KubeClipper provides command line tools 🔧 kcctl to simplify operations.</p>\n<p dir=\"auto\">You can download the latest version of kcctl directly with the following command:</p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"# Install latest release\ncurl -sfL https://oss.kubeclipper.io/get-kubeclipper.sh | bash -\n# In China, you can add env &quot;KC_REGION=cn&quot;, we use registry.aliyuncs.com/google_containers instead of k8s.gcr.io\ncurl -sfL https://oss.kubeclipper.io/get-kubeclipper.sh | KC_REGION=cn bash -\n# The latest release version is downloaded by default. You can download the specified version. For example, specify the master development version to be installed\ncurl -sfL https://oss.kubeclipper.io/get-kubeclipper.sh | KC_REGION=cn KC_VERSION=master bash -\"><pre class=\"notranslate\"><span class=\"pl-c\"><span class=\"pl-c\">#</span> Install latest release</span>\ncurl -sfL https://oss.kubeclipper.io/get-kubeclipper.sh <span class=\"pl-k\">|</span> bash -\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> In China, you can add env \"KC_REGION=cn\", we use registry.aliyuncs.com/google_containers instead of k8s.gcr.io</span>\ncurl -sfL https://oss.kubeclipper.io/get-kubeclipper.sh <span class=\"pl-k\">|</span> KC_REGION=cn bash -\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> The latest release version is downloaded by default. You can download the specified version. For example, specify the master development version to be installed</span>\ncurl -sfL https://oss.kubeclipper.io/get-kubeclipper.sh <span class=\"pl-k\">|</span> KC_REGION=cn KC_VERSION=master bash -</pre></div>\n<blockquote>\n<p dir=\"auto\">It is highly recommended that you install the latest release to experience more features.<br>\nYou can also download the specified version on the <strong><a href=\"https://github.com/kubeclipper/kubeclipper/releases\">GitHub Release Page</a></strong>.</p>\n</blockquote>\n<p dir=\"auto\">Check if the installation is successful with the following command:</p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"kcctl version\"><pre class=\"notranslate\">kcctl version</pre></div>\n<h4 dir=\"auto\">Get Started with Installation</h4>\n<p dir=\"auto\">In this quick start tutorial, you only need to run  just one command for installation:</p>\n<p dir=\"auto\">If you want to install AIO mode</p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"# install default release\nkcctl deploy\n# you can use KC_VERSION to install the specified version, default is latest release\nKC_VERSION=master kcctl deploy\"><pre class=\"notranslate\"><span class=\"pl-c\"><span class=\"pl-c\">#</span> install default release</span>\nkcctl deploy\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> you can use KC_VERSION to install the specified version, default is latest release</span>\nKC_VERSION=master kcctl deploy</pre></div>\n<p dir=\"auto\">If you want to install multi node, Use <code class=\"notranslate\">kcctl deploy -h</code> for more information about a command</p>\n<p dir=\"auto\">After you runn this command, kcctl will check your installation environment and enter the installation process, if the conditions are met.</p>\n<p dir=\"auto\">After printing the KubeClipper banner, the installation is complete.</p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\" _   __      _          _____ _ _\n| | / /     | |        /  __ \\ (_)\n| |/ / _   _| |__   ___| /  \\/ |_ _ __  _ __   ___ _ __\n|    \\| | | | '_ \\ / _ \\ |   | | | '_ \\| '_ \\ / _ \\ '__|\n| |\\  \\ |_| | |_) |  __/ \\__/\\ | | |_) | |_) |  __/ |\n\\_| \\_/\\__,_|_.__/ \\___|\\____/_|_| .__/| .__/ \\___|_|\n                                 | |   | |\n                                 |_|   |_|\"><pre class=\"notranslate\"> _   __      _          _____ _ _\n<span class=\"pl-k\">|</span> <span class=\"pl-k\">|</span> / /     <span class=\"pl-k\">|</span> <span class=\"pl-k\">|</span>        /  __ <span class=\"pl-cce\">\\ </span>(_)\n<span class=\"pl-k\">|</span> <span class=\"pl-k\">|</span>/ / _   _<span class=\"pl-k\">|</span> <span class=\"pl-k\">|</span>__   ___<span class=\"pl-k\">|</span> /  <span class=\"pl-cce\">\\/</span> <span class=\"pl-k\">|</span>_ _ __  _ __   ___ _ __\n<span class=\"pl-k\">|</span>    <span class=\"pl-cce\">\\|</span> <span class=\"pl-k\">|</span> <span class=\"pl-k\">|</span> <span class=\"pl-k\">|</span> <span class=\"pl-s\"><span class=\"pl-pds\">'</span>_ \\ / _ \\ |   | | | <span class=\"pl-pds\">'</span></span>_ <span class=\"pl-cce\">\\|</span> <span class=\"pl-s\"><span class=\"pl-pds\">'</span>_ \\ / _ \\ <span class=\"pl-pds\">'</span></span>__<span class=\"pl-k\">|</span>\n<span class=\"pl-k\">|</span> <span class=\"pl-k\">|</span><span class=\"pl-cce\">\\ </span> <span class=\"pl-cce\">\\ </span><span class=\"pl-k\">|</span>_<span class=\"pl-k\">|</span> <span class=\"pl-k\">|</span> <span class=\"pl-k\">|</span>_) <span class=\"pl-k\">|</span>  __/ <span class=\"pl-cce\">\\_</span>_/<span class=\"pl-cce\">\\ </span><span class=\"pl-k\">|</span> <span class=\"pl-k\">|</span> <span class=\"pl-k\">|</span>_) <span class=\"pl-k\">|</span> <span class=\"pl-k\">|</span>_) <span class=\"pl-k\">|</span>  __/ <span class=\"pl-k\">|</span>\n<span class=\"pl-cce\">\\_</span><span class=\"pl-k\">|</span> <span class=\"pl-cce\">\\_</span>/<span class=\"pl-cce\">\\_</span>_,_<span class=\"pl-k\">|</span>_.__/ <span class=\"pl-cce\">\\_</span>__<span class=\"pl-k\">|</span><span class=\"pl-cce\">\\_</span>___/_<span class=\"pl-k\">|</span>_<span class=\"pl-k\">|</span> .__/<span class=\"pl-k\">|</span> .__/ <span class=\"pl-cce\">\\_</span>__<span class=\"pl-k\">|</span>_<span class=\"pl-k\">|</span>\n                                 <span class=\"pl-k\">|</span> <span class=\"pl-k\">|</span>   <span class=\"pl-k\">|</span> <span class=\"pl-k\">|</span>\n                                 <span class=\"pl-k\">|</span>_<span class=\"pl-k\">|</span>   <span class=\"pl-k\">|</span>_<span class=\"pl-k\">|</span></pre></div>\n<h3 dir=\"auto\">Login Console</h3>\n<p dir=\"auto\">When deployed successfully, you can open a browser and visit <code class=\"notranslate\">http://$IP</code> to enter the KubeClipper console.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"docs/img/console-login.png\"><img src=\"docs/img/console-login.png\" alt=\"\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">You can log in with the default account and password <code class=\"notranslate\">admin / Thinkbig1</code>.</p>\n<blockquote>\n<p dir=\"auto\">You may need to configure port forwarding rules and open ports in security groups for external users to access the console.</p>\n</blockquote>\n<h3 dir=\"auto\">Create a k8s cluster</h3>\n<p dir=\"auto\">When <code class=\"notranslate\">kubeclipper</code> is deployed successfully, you can use the <strong>kcctl</strong> <strong>tool</strong> or <strong>console</strong> to create a  k8s cluster. In the quick start tutorial, we use the kcctl tool to create.</p>\n<p dir=\"auto\">Then create a k8s cluster with the following command:</p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"NODE=$(kcctl get node -o yaml|grep ipv4DefaultIP:|sed 's/ipv4DefaultIP: //')\n\nkcctl create cluster --master $NODE --name demo --untaint-master\"><pre class=\"notranslate\">NODE=<span class=\"pl-s\"><span class=\"pl-pds\">$(</span>kcctl get node -o yaml<span class=\"pl-k\">|</span>grep ipv4DefaultIP:<span class=\"pl-k\">|</span>sed <span class=\"pl-s\"><span class=\"pl-pds\">'</span>s/ipv4DefaultIP: //<span class=\"pl-pds\">'</span></span><span class=\"pl-pds\">)</span></span>\n\nkcctl create cluster --master <span class=\"pl-smi\">$NODE</span> --name demo --untaint-master</pre></div>\n<p dir=\"auto\">The cluster creation will be completed in about 3 minutes, or you can use the following command to view the cluster status:</p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"kcctl get cluster -o yaml|grep status -A5\"><pre class=\"notranslate\">kcctl get cluster -o yaml<span class=\"pl-k\">|</span>grep status -A5</pre></div>\n<blockquote>\n<p dir=\"auto\">You can also enter the console to view real-time logs.</p>\n</blockquote>\n<p dir=\"auto\">Once the cluster enter  the <code class=\"notranslate\">Running</code> state , it means that the creation is complete. You can use <code class=\"notranslate\">kubectl get cs</code> command to view the cluster status.</p>\n<h2 dir=\"auto\">Development and Debugging</h2>\n<ol dir=\"auto\">\n<li>\n<p dir=\"auto\">fork repo and clone</p>\n</li>\n<li>\n<p dir=\"auto\">run etcd locally, usually use docker / podman to run etcd container</p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"export HostIP=&quot;Your-IP&quot;\ndocker run -d \\\n--net host \\\nk8s.gcr.io/etcd:3.5.0-0 etcd \\\n--advertise-client-urls http://${HostIP}:2379 \\\n--initial-advertise-peer-urls http://${HostIP}:2380 \\\n--initial-cluster=infra0=http://${HostIP}:2380 \\\n--listen-client-urls http://${HostIP}:2379,http://127.0.0.1:2379 \\\n--listen-metrics-urls http://127.0.0.1:2381 \\\n--listen-peer-urls http://${HostIP}:2380 \\\n--name infra0 \\\n--snapshot-count=10000 \\\n--data-dir=/var/lib/etcd\"><pre class=\"notranslate\"><span class=\"pl-k\">export</span> HostIP=<span class=\"pl-s\"><span class=\"pl-pds\">\"</span>Your-IP<span class=\"pl-pds\">\"</span></span>\ndocker run -d \\\n--net host \\\nk8s.gcr.io/etcd:3.5.0-0 etcd \\\n--advertise-client-urls http://<span class=\"pl-smi\">${HostIP}</span>:2379 \\\n--initial-advertise-peer-urls http://<span class=\"pl-smi\">${HostIP}</span>:2380 \\\n--initial-cluster=infra0=http://<span class=\"pl-smi\">${HostIP}</span>:2380 \\\n--listen-client-urls http://<span class=\"pl-smi\">${HostIP}</span>:2379,http://127.0.0.1:2379 \\\n--listen-metrics-urls http://127.0.0.1:2381 \\\n--listen-peer-urls http://<span class=\"pl-smi\">${HostIP}</span>:2380 \\\n--name infra0 \\\n--snapshot-count=10000 \\\n--data-dir=/var/lib/etcd</pre></div>\n</li>\n<li>\n<p dir=\"auto\">change <code class=\"notranslate\">kubeclipper-server.yaml</code> etcd.serverList to your locally etcd cluster</p>\n</li>\n<li>\n<p dir=\"auto\"><code class=\"notranslate\">make build</code></p>\n</li>\n<li>\n<p dir=\"auto\"><code class=\"notranslate\">./dist/kubeclipper-server serve</code></p>\n</li>\n</ol>\n<h2 dir=\"auto\">Contributing</h2>\n<p dir=\"auto\">Please follow <a href=\"https://github.com/kubeclipper/community\">Community</a> to join us.</p>\n<h2 dir=\"auto\">Star History</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/19dc78e00822e73c73f2523f6c8dc6e1afd929a900c566305a04cac80537ea70/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f7376673f7265706f733d6b756265636c69707065722f6b756265636c697070657226747970653d44617465\"><img src=\"https://camo.githubusercontent.com/19dc78e00822e73c73f2523f6c8dc6e1afd929a900c566305a04cac80537ea70/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f7376673f7265706f733d6b756265636c69707065722f6b756265636c697070657226747970653d44617465\" alt=\"Star History Chart\" data-canonical-src=\"https://api.star-history.com/svg?repos=kubeclipper/kubeclipper&amp;type=Date\" style=\"max-width: 100%;\"></a></p>","updatedAt":"2025-05-21T16:07:27Z","upvoteCount":null,"author":{"login":"eryajf","avatarUrl":"https://avatars.githubusercontent.com/u/33259379?u=e4a4090a38ac2473aaed4ef9945233636776c6c3&v=4","url":"https://github.com/eryajf"},"category":null,"labels":{"edges":[{"node":{"name":"更多","color":"25B472"}},{"node":{"name":"K8S-Cluster-Manage","color":"249bda"}},{"node":{"name":"kubeclipper","color":"a1c48a"}}]},"comments":{"edges":[]}}},"pageContext":{"number":308,"previous":{"title":"astefanutti/kubebox: K8s 终端版管理工具","number":307},"next":{"title":"hidetatz/kubecolor: 可以给 kubectl 命令行输出内容着色的一个工具","number":309}}},
    "staticQueryHashes": ["151096407","2861350382"]}