{
    "componentChunkName": "component---src-templates-issues-tsx",
    "path": "/issues/336",
    "result": {"data":{"issuesJson":{"id":"b1a90730-1b7a-5f5d-834d-9ba4dfbea6c3","title":"kubetail-org/kubetail: 一个通用的 Kubernetes 日志仪表板，可以暴漏在浏览器当中查看。","number":336,"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/kubetail-org/kubetail\">kubetail-org/kubetail</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/75e88647adb71b7bafa14bb922109f8d6892442ce90bc0583e843764af02d801/68747470733a2f2f76696577732e77686174696c656172656e65642e746f6461792f76696577732f6769746875622f6b7562657461696c2d6f72672f6b7562657461696c2e737667\" alt=\"views\" data-canonical-src=\"https://views.whatilearened.today/views/github/kubetail-org/kubetail.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/3c504f0ec7b39ce1ce5a427d62b954901ff782bb88f1befebf8cb92c2c1c4094/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6b7562657461696c2d6f72672f6b7562657461696c3f636f6c6f723d663266303864266c6f676f3d556e64657274616c65266c6f676f436f6c6f723d656234363330\" alt=\"stars\" data-canonical-src=\"https://img.shields.io/github/stars/kubetail-org/kubetail?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/44216d93294e8328228027c9cc3e9c222f73cfbcd3a4a82cbc90501770639794/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f6b7562657461696c2d6f72672f6b7562657461696c3f636f6c6f723d626138366562266c6f676f3d48616e647368616b65266c6f676f436f6c6f723d656136616136\" alt=\"forks\" data-canonical-src=\"https://img.shields.io/github/forks/kubetail-org/kubetail?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/42889a571a71d7ede76b9875830ccc118f8e07adb2b0d4b46a6ca9a0ca728f44/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6b7562657461696c2d6f72672f6b7562657461696c3f6c6f676f3d64617461253341696d616765253246706e672533426261736536342532436956424f5277304b47676f414141414e53556845556741414144414141414177434159414141425841766d48414141414358424957584d41414173544141414c457745416d70775941414144336b6c45515652346e4f335953557a5555426748384a726f57567255474a66456d3773584e63534446784d544c327069347348456778654e526f77586770455742445552522532424e414e4f4b4f4b36366f6f4b4a4742586545475263574163455646475152484677516d483525324630774861655748493944554455354c356b6e6568644f62377a66652532423139636e434a47495243516945596c514237594a4979474c38616f73756c565a36695246516a69474b6b7564576735614c6c704f70704e586e665071773555304459524a6d56786a4367464633424c755a476d416f5655694b4541726d583744375553677351706f72674761336748664b34483663754262435644334771683141352532424c6745253242467749656e514d306a6f446f66714c6f48564e7742796d384370546e416d327a51713073676478624964515a556c416b7150415a3664676a303541446f59526f6f66792532466f5869726f376b3551586a4c6f70677a4b69514e6c4c4461716f4967754577426a7a7150355066446a45394479495879493633464d547751464d43567271774e61763451666f52673538514625324266724d485172454b3844546f434d714e4179574e4866786d54526f4c4f726d5352566747744466714345715a4f4851727a6f34706243557341333431365169364551394b476a6345465267484f724f4b6e5536574162396247455459656b4b7843766a546167394534706a653534446b3551503862624d4859762532464333756541654a6b50304f4778422532424a70426e4172595238455951516e6f4e31414e4661426e5050356c385372736559514c303641646b30464a5938484f5761424d6c6541486a683068506f73497a6c6f3876304125324633345a694f6548726130714b52504d5653493774762532423932747725324676687855654252713456454c674d376642714b354770526d6f514c584e7075625475367a6f4e52706754386e5051627138347764253246494375767978694b4871694e41664933774d367549684271476b4c696977414f734b44714f68743749747239567938536a52424557667941627225324668523142667056514664484a42253246423268683778376a36517077435665655951326b72554235436c636a3641326d3067576a25324244306d4c34397a573563517943484c4e37726a6c6d6d6174457958582532464372547a412532466f51785a6b576c39474a5443566f25324279546a3837253242346769504b6376307149486f344156344430565a727251493334706e70524d36357875652532467a417265453425324654253246536f676c664542794d7369517441546c4c3352414a355948725378365a44665337307337754d486842705225324659423573305057366f455270316236253246667252684b3353444c35546965364f515548516c5133735644752532427a50636b397657453973747225324236496a533967486d5750616861444a25324277434b364e494242587348423948796b587378774470686c436d416476706c6162554a4e6e5a504239342532464e7436784f6538587a4562503257684d335741673147756236744825324233513150673337365239713475716c6e6f36676448476a444f5139306562303141484d3672596975554a314f713472344656756a35765239427a4d3957674e764f7977446869495951467667626366774166774d764863615067425041253246447948476a50624e394138616d6562636477416444354e6633373574787165774e5552656f797677424958594c645170576c6877465771745061435044334173467541535636717171496c62304a766b564331464c39576b4c55556c55574b337a585a4c46432532423125324642726f46746f364f7358497545594a5034447a7a5732594656316f4a614141414141456c46546b5375516d4343\" alt=\"license\" data-canonical-src=\"https://img.shields.io/github/license/kubetail-org/kubetail?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/004a1c130149fb3580e671f38a0e88c2dd4a0aefdea4ca9896c42d6325d0c338/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f6b7562657461696c2d6f72672f6b7562657461696c3f646973706c61795f74696d657374616d703d636f6d6d6974746572266c6f676f3d64617461253341696d616765253246706e672533426261736536342532436956424f5277304b47676f414141414e5355684555674141414234414141416543415941414141374d4b3669414141414358424957584d41414173544141414c457745416d7077594141414648556c45515652346e4c5658375539615678776d3236646c582532466468627825324232253246516e626b7655627264554151674a4a496655444e574454546d4f76314651554661504a346b7573725630314a7431734e70637453327533626f745a746d786439744a5346536f714b71494635625944464c436f76436c656673747a4a387758524c445a4c7a6e6b634f343535376e3364332532466e655a3472454f515a74315771462532423858467234253242664f4c4565326a6f59307a776638546f795a50766a45676b4c592532426b306d6d72584f36644b696e787a476b30666a5430782532425279723055716e6359637a4d317263347451253242497270324c4758646f344e4334567657715453373277716c632532427231334f527269364b6458646e624f484c6c776c7a4a70524b6e3657342532424b36706f4f434e6e494166486a253246253242776168495a4234764b6e715a6630714a704e49716c2532467638545530634e6c3572627963337730516e54703379324c54614a374d314e617844723266526e315370504736476961323174664533345463614f617931694d55564f5146624659714957536f31573854694156616e43306576584f4542375770313448466232327a453566714c4f433545524c515769644e614e49347545636339693768634a6c644868324e57725135674464624f6c7061756d49754c62326174415144506e7a3062384e6257636d785656524a33486d7870536377777a4f4a6d4b44524765384c6c435a444c4739673754496e5631516c376462586256316533675430574b697243466f6d6b5079767758466c5a474a4f6a563625324253743634757564445a4f55354555636f782532464d455144567674364d62634e3237593341797a687633737061557242365a3971724a534f3139657a6a387032704c426b4a792532426343484a7857493567573574636652527a31645531394766476b6f7539505a4f34736d52396a4746777065783444793362766e6d4b79706f74625531335669646a71595a68726a343972764d457425324625324659714c7a396430304e6a57253246637a67796f394f35317a7336614e6c6f354644747530445a675146686c47584a30644241446f4e6864367576703657686f617967374e394c564748386d443462253246486e667455516f4e4734764c51306769784d716c5725324234714f6a744e48446733723166365969525347785279375576714c62395534716b716e78504f4e7661356c447048723125324279794b524e4b57425a793565644d554842326d3572792532422532424551772532427a6766347a6f39253246306f634e3357527a4c4277344a2532424a7950574372716d4967475974554f735744346f785a46516f50556a4770564871493425324661666b51504336665a5165654d31253242764c7549516e6a754257514444437363726d485039656f4e5041744271664f6e5875614b25324268364a45624772732532427076764d6d78654962683836336162565065597953456f39464a48704e4d464a59253242503563575a6b6667374f3174537759436553514c54593345385130392532464256504a556c78516a7368543142736343593032723955445542667643484236367063665041336c794165336e6772332532463437584467614a7a736c7937787741364e5a746c555550437541487161536a5549502532427375653842525741432532464e6651374a5a505a35397330476a3756747049537a34685125324243706658474d4b685a63764c70554b7866574d386f68766637702532464f446a4842666356463849736b383267314648796b63564645253242555a414158343761452532464d6c34504f3530506e75683025324678346e6d637957507364774468427836436d6b4c562532466746446a594b784f4a4f4674623077517949684c39527943774b33414f664947703159464542686e4d4a634c525745624b644b516f55366e63545a6b494544696341792532463831645675454d3552775066657934784f7830496b25324649324e6e466b692532425761664f6f464959466367595a43797864376543556a626334416d46363566742532466b4d686b336f25324235686337734d4a79716a4a45477659466151464972375930775077384246415925324236253242766d6b3377367a7a5275444d6d5a5652736668385274413075455453443775434254364459514e36697665553066706b594c6a453671725672744f78654e4b553954484c5a4a396b4255324a427342685635416976422532466f4b61514e4b675043427744596149665a4334616454684f71463457454e56694c4a77566f586f62664c424b56773637414f6154734c6336355461564b32317651344c613939654b6359673576627873624f627a5451394e37554b4467554f3177446a6944494942736868357a746733396e514d4c535a4248344f7a424f55444551586d323036643366634c67737762585141345068634b336e6873775531427a3877765130395248472532466f597933656a6677424e6d746f59714c4130586741414141424a52553545726b4a676767253344253344266c6162656c3d557064617465644174\" alt=\"last-commit\" data-canonical-src=\"https://img.shields.io/github/last-commit/kubetail-org/kubetail?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/6ec904842d4a313eebdbba9c5b547220b64353bf835cb8a860c396c36d783407/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f637265617465642d61742f6b7562657461696c2d6f72672f6b7562657461696c3f6c6f676f3d64617461253341696d616765253246706e672533426261736536342532436956424f5277304b47676f414141414e5355684555674141414234414141416543415941414141374d4b3669414141414358424957584d41414173544141414c457745416d7077594141414648556c45515652346e4c5658375539615678776d3236646c582532466468627825324232253246516e626b7655627264554151674a4a496655444e574454546d4f76314651554661504a346b7573725630314a7431734e70637453327533626f745a746d786439744a5346536f714b71494635625944464c436f76436c656673747a4a387758524c445a4c7a6e6b634f343535376e3364332532466e655a3472454f515a74315771462532423858467234253242664f4c4565326a6f59307a776638546f795a50766a45676b4c592532426b306d6d72584f36644b696e787a476b30666a5430782532425279723055716e6359637a4d317263347451253242497270324c4758646f344e4334567657715453373277716c632532427231334f527269364b6458646e624f484c6c776c7a4a70524b6e3657342532424b36706f4f434e6e494166486a253246253242776168495a4234764b6e715a6630714a704e49716c2532467638545530634e6c3572627963337730516e54703379324c54614a374d314e617844723266526e315370504736476961323174664533345463614f617931694d55564f5146624659714957536f31573854694156616e43306576584f4542375770313448466232327a453566714c4f433545524c515769644e614e49347545636339693768634a6c644868324e57725135674464624f6c7061756d49754c62326174415144506e7a3062384e6257636d785656524a33486d7870536377777a4f4a6d4b44524765384c6c435a444c4739673754496e5631516c376462586256316533675430574b697243466f6d6b5079767758466c5a474a4f6a563625324253743634757564445a4f55354555636f782532464d455144567674364d62634e3237593341797a687633737061557242365a3971724a534f3139657a6a387032704c426b4a792532426343484a7857493567573574636652527a31645531394766476b6f7539505a4f34736d52396a4746777065783444793362766e6d4b79706f74625531335669646a71595a68726a343972764d457425324625324659714c7a396430304e6a57253246637a67796f394f35317a7336614e6c6f354644747530445a675146686c47584a30644241446f4e6864367576703657686f617967374e394c564748386d443462253246486e667455516f4e4734764c51306769784d716c5725324234714f6a744e48446733723166365969525347785279375576714c62395534716b716e78504f4e7661356c447048723125324279794b524e4b57425a793565644d554842326d3572792532422532424551772532427a6766347a6f39253246306f634e3357527a4c4277344a2532424a7950574372716d4967475974554f735744346f785a46516f50556a4770564871493425324661666b51504336665a5165654d31253242764c7549516e6a754257514444437363726d485039656f4e5041744271664f6e5875614b25324268364a45624772732532427076764d6d78654962683836336162565065597953456f39464a48704e4d464a59253242503563575a6b6667374f3174537759436553514c54593345385130392532464256504a556c78516a7368543142736343593032723955445542667643484236367063665041336c794165336e6772332532463437584467614a7a736c7937787741364e5a746c555550437541487161536a5549502532427375653842525741432532464e6651374a5a505a35397330476a3756747049537a34685125324243706658474d4b685a63764c70554b7866574d386f68766637702532464f446a4842666356463849736b383267314648796b63564645253242555a414158343761452532464d6c34504f3530506e75683025324678346e6d637957507364774468427836436d6b4c562532466746446a594b784f4a4f4674623077517949684c39527943774b33414f664947703159464542686e4d4a634c525745624b644b516f55366e63545a6b494544696341792532463831645675454d3552775066657934784f7830496b25324649324e6e466b692532425761664f6f464959466367595a43797864376543556a626334416d46363566742532466b4d686b336f25324235686337734d4a79716a4a45477659466151464972375930775077384246415925324236253242766d6b3377367a7a5275444d6d5a5652736668385274413075455453443775434254364459514e36697665553066706b594c6a453671725672744f78654e4b553954484c5a4a396b4255324a427342685635416976422532466f4b61514e4b675043427744596149665a4334616454684f71463457454e56694c4a77566f586f62664c424b56773637414f6154734c6336355461564b32317651344c613939654b6359673576627873624f627a5451394e37554b4467554f3177446a6944494942736868357a746733396e514d4c535a4248344f7a424f55444551586d323036643366634c67737762585141345068634b336e6873775531427a3877765130395248472532466f597933656a6677424e6d746f59714c4130586741414141424a52553545726b4a676767253344253344266c6162656c3d437265617465644174\" alt=\"create-at\" data-canonical-src=\"https://img.shields.io/github/created-at/kubetail-org/kubetail?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<h1 dir=\"auto\">Kubetail</h1>\n<p dir=\"auto\"><em>Kubetail is a real-time logging dashboard for Kubernetes (browser/terminal)</em></p>\n<a href=\"https://youtu.be/q9rV9gHQb4Q\" rel=\"nofollow\">\n  <img width=\"350\" alt=\"demo-thumbnail\" src=\"https://private-user-images.githubusercontent.com/75881/439539872-3b528e7e-5f8a-4bfd-86a1-0b70691b8a4c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTMwNjc1OTAsIm5iZiI6MTc1MzA2NzI5MCwicGF0aCI6Ii83NTg4MS80Mzk1Mzk4NzItM2I1MjhlN2UtNWY4YS00YmZkLTg2YTEtMGI3MDY5MWI4YTRjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTA3MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwNzIxVDAzMDgxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJjYjJmN2NhZmVlNmEyOTA1YWNkMzA5ZTg4ZjIwNGQ1NDhkNTNmNWU4OWE2MTFiYWFkNmNkN2MzYWYzZTdkODUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.NqVADTaRpExU99QXd1-6WmW86CpPWzkPWTyWzf9C04w\" secured-asset-link=\"\" style=\"max-width: 100%;\">\n</a>\n<p dir=\"auto\">Demo: <a href=\"https://www.kubetail.com/demo\" rel=\"nofollow\">https://www.kubetail.com/demo</a></p>\n<p dir=\"auto\"><a href=\"https://discord.gg/CmsmWAVkvX\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/f32b86789fda3cb97b57cd6146e1b8db8173deed352104c5742a1553823072d7/68747470733a2f2f696d672e736869656c64732e696f2f646973636f72642f313231323033313532343231363737303635303f6c6f676f3d446973636f7264267374796c653d666c61742d737175617265266c6f676f436f6c6f723d464646464646266c6162656c436f6c6f723d354236354630266c6162656c3d446973636f726426636f6c6f723d363442373341\" data-canonical-src=\"https://img.shields.io/discord/1212031524216770650?logo=Discord&amp;style=flat-square&amp;logoColor=FFFFFF&amp;labelColor=5B65F0&amp;label=Discord&amp;color=64B73A\" style=\"max-width: 100%;\"></a><br>\n<a href=\"https://kubernetes.slack.com/archives/C08SHG1GR37\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/cc7f2542c1e05adca193c056a6f84a3441b2f96d4bfea1a14d9cf68467a065f2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f536c61636b2d6b7562657461696c2d3336343935343f6c6f676f3d736c61636b266c6162656c436f6c6f723d344431433531\" alt=\"Slack\" data-canonical-src=\"https://img.shields.io/badge/Slack-kubetail-364954?logo=slack&amp;labelColor=4D1C51\" style=\"max-width: 100%;\"></a><br>\n<a href=\"CODE_OF_CONDUCT.md\"><img src=\"https://camo.githubusercontent.com/71217453f48cd1f12ba5a720412bb92743010653a5cc69654e627fd99e2e9104/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6e7472696275746f72253230436f76656e616e742d322e312d3462616161612e737667\" alt=\"Contributor Covenant\" data-canonical-src=\"https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg\" style=\"max-width: 100%;\"></a><br>\n<a href=\"https://github.com/kubetail-org\"><img src=\"https://camo.githubusercontent.com/9baa7030efc425778ff0875ae9756d9658fd59cf9d03c70272f4b9980819ed28/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6e7472696275746f722532305265736f75726365732d707572706c653f7374796c653d666c61742d737175617265\" alt=\"Contributor Resources\" data-canonical-src=\"https://img.shields.io/badge/Contributor%20Resources-purple?style=flat-square\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\">Introduction</h2>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://private-user-images.githubusercontent.com/75881/387279481-3713a774-1b3a-41f9-8e9d-9331bbf8acac.svg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTMwNjc1OTAsIm5iZiI6MTc1MzA2NzI5MCwicGF0aCI6Ii83NTg4MS8zODcyNzk0ODEtMzcxM2E3NzQtMWIzYS00MWY5LThlOWQtOTMzMWJiZjhhY2FjLnN2Zz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTA3MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwNzIxVDAzMDgxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThhZmY2YzI0YTk2NWI4M2Q3MTg5NTQzYjdlMWZhOWU4ZmJkZjVmNTYyZjdkZmY2ODAxOWZjY2RiMmQyOGQ3MjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.d5oDwJpN33PdfprbJd_KFKuYC0YHmCeBm0PT1sxz1JM\"><img src=\"https://private-user-images.githubusercontent.com/75881/387279481-3713a774-1b3a-41f9-8e9d-9331bbf8acac.svg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTMwNjc1OTAsIm5iZiI6MTc1MzA2NzI5MCwicGF0aCI6Ii83NTg4MS8zODcyNzk0ODEtMzcxM2E3NzQtMWIzYS00MWY5LThlOWQtOTMzMWJiZjhhY2FjLnN2Zz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTA3MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwNzIxVDAzMDgxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThhZmY2YzI0YTk2NWI4M2Q3MTg5NTQzYjdlMWZhOWU4ZmJkZjVmNTYyZjdkZmY2ODAxOWZjY2RiMmQyOGQ3MjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.d5oDwJpN33PdfprbJd_KFKuYC0YHmCeBm0PT1sxz1JM\" width=\"300\" title=\"Kubetail\" style=\"max-width: 100%;\"></a>\n<br>\n<br>\n<p dir=\"auto\"><strong>Kubetail</strong> is a general-purpose logging dashboard for Kubernetes, optimized for tailing logs across across multi-container workloads in real-time. With Kubetail, you can view logs from all the containers in a workload (e.g. Deployment or DaemonSet) merged into a single, chronological timeline, delivered to your browser or terminal.</p>\n<p dir=\"auto\">The primary entry point for Kubetail is the <code class=\"notranslate\">kubetail</code> CLI tool, which can launch a local web dashboard on your desktop or stream raw logs directly to your terminal. Behind the scenes, Kubetail uses your cluster's Kubernetes API to fetch logs directly from your cluster, so it works out of the box without needing to forward your logs to an external service first. Kubetail also uses your Kubernetes API to track container lifecycle events in order to keep your log timeline in sync as containers start, stop or get replaced. This makes it easy to follow logs seamlessly as user requests move from one ephemeral container to another across services.</p>\n<p dir=\"auto\">Our goal is to build the most powerful, user-friendly logging platform for Kubernetes and we'd love your input. If you notice a bug or have a suggestion please create a GitHub Issue or send us an email (<a href=\"mailto:hello@kubetail.com\">hello@kubetail.com</a>)!</p>\n<h2 dir=\"auto\">Features</h2>\n<ul dir=\"auto\">\n<li>Clean, easy-to-use interface</li>\n<li>View log messages in real-time</li>\n<li>Filter logs by:\n<ul dir=\"auto\">\n<li>Workload (e.g. Deployment, CronJob, StatefulSet)</li>\n<li>Absolute or relative time range</li>\n<li>Node properties (e.g. availability zone, CPU architecture, node ID)</li>\n<li>Grep</li>\n</ul>\n</li>\n<li>Uses your Kubernetes API to retrieve log messages so data never leaves your possession (private by default)</li>\n<li>Web dashboard can be installed on desktop or in cluster</li>\n<li>Switch between multiple clusters (Desktop-only)</li>\n</ul>\n<h2 dir=\"auto\">Quickstart (Desktop)</h2>\n<h3 dir=\"auto\">Option 1: Package Managers</h3>\n<p dir=\"auto\">First, install the Kubetail CLI tool (<code class=\"notranslate\">kubetail</code>) via your favorite package manager:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"# Homebrew\nbrew install kubetail\n\n# Winget\nwinget install Kubetail.Kubetail\n\n# Chocolatey\nchoco install kubetail\"><pre class=\"notranslate\"># <span class=\"pl-s1\">Homebrew</span>\n<span class=\"pl-c1\">brew install kubetail</span>\n\n# <span class=\"pl-s1\">Winget</span>\n<span class=\"pl-c1\">winget install Kubetail.Kubetail</span>\n\n# <span class=\"pl-s1\">Chocolatey</span>\n<span class=\"pl-c1\">choco install kubetail</span></pre></div>\n<p dir=\"auto\">Next, start the web dashboard using the <code class=\"notranslate\">serve</code> subcommand:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"kubetail serve\"><pre class=\"notranslate\"><span class=\"pl-c1\">kubetail serve</span></pre></div>\n<p dir=\"auto\">This command will open <a href=\"http://localhost:7500/\" rel=\"nofollow\">http://localhost:7500/</a> in your default browser. Have fun tailing your logs!</p>\n<h3 dir=\"auto\">Option 2: Shell</h3>\n<p dir=\"auto\">First, download and run the install script:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"curl -sS https://www.kubetail.com/install.sh | bash\"><pre class=\"notranslate\"><span class=\"pl-c1\">curl -sS https://www.kubetail.com/install.sh | bash</span></pre></div>\n<p dir=\"auto\">Next, start the web dashboard using the <code class=\"notranslate\">serve</code> subcommand:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"kubetail serve\"><pre class=\"notranslate\"><span class=\"pl-c1\">kubetail serve</span></pre></div>\n<p dir=\"auto\">This command will open <a href=\"http://localhost:7500/\" rel=\"nofollow\">http://localhost:7500/</a> in your default browser. Have fun tailing your logs!</p>\n<h3 dir=\"auto\">Option 3: Binaries</h3>\n<p dir=\"auto\">Download the binary for your OS/Arch (from the latest <a href=\"https://github.com/kubetail-org/kubetail/releases/latest\">release binaries</a>):</p>\n<ul dir=\"auto\">\n<li>Darwin (<a href=\"https://github.com/kubetail-org/kubetail/releases/latest/download/kubetail-darwin-amd64\">amd64</a>, <a href=\"https://github.com/kubetail-org/kubetail/releases/latest/download/kubetail-darwin-arm64\">arm64</a>)</li>\n<li>Linux (<a href=\"https://github.com/kubetail-org/kubetail/releases/latest/download/kubetail-linux-amd64\">amd64</a>, <a href=\"https://github.com/kubetail-org/kubetail/releases/latest/download/kubetail-linux-arm64\">arm64</a>)</li>\n<li>Windows (<a href=\"https://github.com/kubetail-org/kubetail/releases/latest/download/kubetail-windows-amd64\">amd64</a>, <a href=\"https://github.com/kubetail-org/kubetail/releases/latest/download/kubetail-windows-arm64\">arm64</a>)</li>\n</ul>\n<p dir=\"auto\">Rename the file and make it executable:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"mv &lt;filename&gt; kubetail\nchmod a+x kubetail\"><pre class=\"notranslate\"><span class=\"pl-c1\">mv &lt;filename&gt; kubetail</span>\n<span class=\"pl-c1\">chmod a+x kubetail</span></pre></div>\n<p dir=\"auto\">Next, start the web dashboard using the <code class=\"notranslate\">serve</code> subcommand:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"kubetail serve\"><pre class=\"notranslate\"><span class=\"pl-c1\">kubetail serve</span></pre></div>\n<p dir=\"auto\">This command will open <a href=\"http://localhost:7500/\" rel=\"nofollow\">http://localhost:7500/</a> in your default browser. Have fun tailing your logs!</p>\n<h2 dir=\"auto\">Quickstart (Cluster)</h2>\n<h3 dir=\"auto\">Option 1: Helm</h3>\n<p dir=\"auto\">First, add the Kubetail org's chart repository, then install the \"kubetail\" chart:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"helm repo add kubetail https://kubetail-org.github.io/helm-charts/\nhelm install kubetail kubetail/kubetail --namespace kubetail-system --create-namespace\"><pre class=\"notranslate\"><span class=\"pl-c1\">helm repo add kubetail https://kubetail-org.github.io/helm-charts/</span>\n<span class=\"pl-c1\">helm install kubetail kubetail/kubetail --namespace kubetail-system --create-namespace</span></pre></div>\n<p dir=\"auto\">For more information on how to configure the helm chart, see the chart's <a href=\"https://github.com/kubetail-org/helm-charts/blob/main/charts/kubetail/values.yaml\">values.yaml</a> file.</p>\n<p dir=\"auto\">To access the web dashboard you can expose it as an ingress using the chart or you can use your usual access methods such as <code class=\"notranslate\">kubectl port-forward</code>:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"kubectl port-forward -n kubetail-system svc/kubetail-dashboard 8080:8080\"><pre class=\"notranslate\"><span class=\"pl-c1\">kubectl port-forward -n kubetail-system svc/kubetail-dashboard 8080:8080</span></pre></div>\n<p dir=\"auto\">Visit <a href=\"http://localhost:8080\" rel=\"nofollow\">http://localhost:8080</a>. Have fun tailing your logs!</p>\n<h3 dir=\"auto\">Option 2: YAML Manifest</h3>\n<p dir=\"auto\">First, create a namespace for the Kubetail resources:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"kubectl create namespace kubetail-system\"><pre class=\"notranslate\"><span class=\"pl-c1\">kubectl create namespace kubetail-system</span></pre></div>\n<p dir=\"auto\">Next, choose your authentication mode (<code class=\"notranslate\">cluster</code> or <code class=\"notranslate\">token</code>) and apply the latest manifest file:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"# For cluster-based authentication use kubetail-clusterauth.yaml:\nkubectl apply -f https://github.com/kubetail-org/helm-charts/releases/latest/download/kubetail-clusterauth.yaml\n\n# For token-based authentication use kubetail-tokenauth.yaml:\nkubectl apply -f https://github.com/kubetail-org/helm-charts/releases/latest/download/kubetail-tokenauth.yaml\"><pre class=\"notranslate\"># <span class=\"pl-s1\">For cluster-based authentication use kubetail-clusterauth.yaml:</span>\n<span class=\"pl-c1\">kubectl apply -f https://github.com/kubetail-org/helm-charts/releases/latest/download/kubetail-clusterauth.yaml</span>\n\n# <span class=\"pl-s1\">For token-based authentication use kubetail-tokenauth.yaml:</span>\n<span class=\"pl-c1\">kubectl apply -f https://github.com/kubetail-org/helm-charts/releases/latest/download/kubetail-tokenauth.yaml</span></pre></div>\n<p dir=\"auto\">To access the web dashboard you can use your usual access methods such as <code class=\"notranslate\">kubectl port-forward</code>:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"kubectl port-forward -n kubetail-system svc/kubetail-dashboard 8080:8080\"><pre class=\"notranslate\"><span class=\"pl-c1\">kubectl port-forward -n kubetail-system svc/kubetail-dashboard 8080:8080</span></pre></div>\n<p dir=\"auto\">Visit <a href=\"http://localhost:8080\" rel=\"nofollow\">http://localhost:8080</a>. Have fun tailing your logs!</p>\n<h3 dir=\"auto\">Option 3: Glasskube</h3>\n<p dir=\"auto\">To install Kubetail using <a href=\"https://glasskube.dev/\" rel=\"nofollow\">Glasskube</a>, you can select \"Kubetail\" from the \"ClusterPackages\" tab in the Glasskube GUI then click \"install\" or you can run the following command:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"glasskube install kubetail\"><pre class=\"notranslate\"><span class=\"pl-c1\">glasskube install kubetail</span></pre></div>\n<p dir=\"auto\">Once Kubetail is installed you can use it by clicking \"open\" in the Glasskube GUI or by using the <code class=\"notranslate\">open</code> command:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"glasskube open kubetail\"><pre class=\"notranslate\"><span class=\"pl-c1\">glasskube open kubetail</span></pre></div>\n<p dir=\"auto\">Have fun tailing your logs!</p>\n<h2 dir=\"auto\">Documentation</h2>\n<p dir=\"auto\">Visit the <a href=\"https://www.kubetail.com/\" rel=\"nofollow\">Kubetail documentation</a></p>\n<h2 dir=\"auto\">Roadmap and Status</h2>\n<p dir=\"auto\">This is our high-level plan for the Kubetail project, in order:</p>\n<markdown-accessiblity-table><table role=\"table\">\n<thead>\n<tr>\n<th></th>\n<th>Step</th>\n<th>Status</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>Real-time container logs</td>\n<td>✅</td>\n</tr>\n<tr>\n<td>2</td>\n<td>Real-time search and polished user experience</td>\n<td>🛠️</td>\n</tr>\n<tr>\n<td>3</td>\n<td>Real-time system logs (e.g. systemd, k8s events)</td>\n<td>🔲</td>\n</tr>\n<tr>\n<td>4</td>\n<td>Basic customizability (e.g. colors, time formats)</td>\n<td>🔲</td>\n</tr>\n<tr>\n<td>5</td>\n<td>Message parsing and metrics</td>\n<td>🔲</td>\n</tr>\n<tr>\n<td>6</td>\n<td>Historic data (e.g. log archives, metrics timeseries)</td>\n<td>🔲</td>\n</tr>\n<tr>\n<td>7</td>\n<td>Kubetail API and developer-facing client libraries</td>\n<td>🔲</td>\n</tr>\n<tr>\n<td>N</td>\n<td>World Peace</td>\n<td>🔲</td>\n</tr>\n</tbody>\n</table></markdown-accessiblity-table>\n<p dir=\"auto\">And here are some additional details:</p>\n<p dir=\"auto\"><strong>Real-time container logs</strong></p>\n<p dir=\"auto\">Users can view the container logs from the pods currently running inside their clusters quickly and easily using a web dashboard. Users can view container logs organized by workloads and follow log messages as ephemeral containers get created and deleted. They can also narrow their viewing window by timestamp and filter logs by source properties such as region, zone and node.</p>\n<p dir=\"auto\"><strong>Real-time search and polished user experience</strong></p>\n<p dir=\"auto\">Users can install Kubetail easily on their desktops and in their clusters. By default, Kubetail will use only the Kubernetes API to fetch basic data such as running workloads and container logs. If a user wants more advanced functionality they can install Kubetail custom services in their cluster (i.e. \"Kubetail Cluster API\" and \"Kubetail Cluster Agent\", collectively known as the \"Kubetail API\") and gain access to features such as log search, log file sizes and last event timestamps. The entire experience of installing, upgrading and uninstalling the Kubetail API is very polished and users are able to view their logs with equally powerful tools in the browser and the terminal using the Kubetail web dashboard and CLI tool.</p>\n<p dir=\"auto\"><strong>Real-time system logs</strong></p>\n<p dir=\"auto\">Users who install the Kubetail API gain immediate access to their node-level logs (e.g. systemd) and cluster-level logs (e.g. kubernetes events) and view them in an integrated interface that shows their container logs in context with other system information such as CPU utilization, memory usage and disk space. System logs are viewable in real-time, in the same merged timeline with other logs. Users can filter system logs by timestamp and source properties.</p>\n<p dir=\"auto\"><strong>Basic customizability</strong></p>\n<p dir=\"auto\">Users can fully customize their Kubetail experience when using the web dashboard and CLI tool by modifying their user settings. The user settings are modifiable by hand using a config file or via the dashboard UI. The experience is very polished and works seamlessly across upgrades that may add/remove/modify user settings. Users have the option to sync their settings across multiple devices.</p>\n<h2 dir=\"auto\">Development</h2>\n<h3 dir=\"auto\">Repository Structure</h3>\n<p dir=\"auto\">This monorepo contains the following modules:</p>\n<ul dir=\"auto\">\n<li>Kubetail CLI (<a href=\"modules/cli\">modules/cli</a>)</li>\n<li>Kubetail Cluster API (<a href=\"modules/cluster-api\">modules/cluster-api</a>)</li>\n<li>Kubetail Cluster Agent (<a href=\"modules/cluster-agent\">modules/cluster-agent</a>)</li>\n<li>Kubetail Dashboard (<a href=\"modules/dashboard\">modules/dashboard</a>)</li>\n</ul>\n<p dir=\"auto\">It also contains the source code for the Kubetail Dashboard's frontend and the Rust binary that powers log search:</p>\n<ul dir=\"auto\">\n<li>Dashboard UI (<a href=\"dashboard-ui\">dashboard-ui</a>)</li>\n<li>rgkl (<a href=\"crates/rgkl\">crates/rgkl</a>)</li>\n</ul>\n<h3 dir=\"auto\">Setting up the Development Environment</h3>\n<h4 dir=\"auto\">Dependencies</h4>\n<ul dir=\"auto\">\n<li><a href=\"https://tilt.dev/\" rel=\"nofollow\">Tilt</a></li>\n<li><a href=\"https://go.dev/\" rel=\"nofollow\">Go</a></li>\n<li><a href=\"https://pnpm.io/\" rel=\"nofollow\">pnpm</a></li>\n<li><a href=\"https://github.com/tilt-dev/ctlptl\">ctlptl</a> (optional)</li>\n</ul>\n<h4 dir=\"auto\">Next steps</h4>\n<ol dir=\"auto\">\n<li>Create a Kubernetes Dev Cluster</li>\n</ol>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"ctlptl apply -f hack/ctlptl/minikube.yaml\"><pre class=\"notranslate\"><span class=\"pl-c1\">ctlptl apply -f hack/ctlptl/minikube.yaml</span></pre></div>\n<p dir=\"auto\">You can use any type of cluster that <a href=\"https://docs.tilt.dev/choosing_clusters.html\" rel=\"nofollow\">works with Tilt</a>.</p>\n<ol start=\"2\" dir=\"auto\">\n<li>Start the dev environment:</li>\n</ol>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"tilt up\"><pre class=\"notranslate\"><span class=\"pl-c1\">tilt up</span></pre></div>\n<ol start=\"3\" dir=\"auto\">\n<li>Start the Dashboard server:</li>\n</ol>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cd modules/dashboard\ngo run cmd/main.go -c hack/config.yaml\"><pre class=\"notranslate\"><span class=\"pl-c1\">cd modules/dashboard</span>\n<span class=\"pl-c1\">go run cmd/main.go -c hack/config.yaml</span></pre></div>\n<ol start=\"4\" dir=\"auto\">\n<li>Run the Dashboard UI locally:</li>\n</ol>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cd dashboard-ui\npnpm install\npnpm dev\"><pre class=\"notranslate\"><span class=\"pl-c1\">cd dashboard-ui</span>\n<span class=\"pl-c1\">pnpm install</span>\n<span class=\"pl-c1\">pnpm dev</span></pre></div>\n<p dir=\"auto\">Now access the dashboard at <a href=\"http://localhost:5173\" rel=\"nofollow\">http://localhost:5173</a>.</p>\n<h3 dir=\"auto\">Optimize Development Environment for Rust (Optional)</h3>\n<p dir=\"auto\">By default, the dev environment compiles \"release\" builds of the Rust components when you run run <code class=\"notranslate\">tilt up</code>. If you want to iterate more quickly, you can have Tilt compile the rust code locally using \"debug\" builds instead.</p>\n<h4 dir=\"auto\">Dependencies</h4>\n<ul dir=\"auto\">\n<li><a href=\"https://rustup.rs\" rel=\"nofollow\">rustup</a></li>\n<li><a href=\"https://protobuf.dev/installation/\" rel=\"nofollow\">protobuf</a></li>\n</ul>\n<h4 dir=\"auto\">Next steps</h4>\n<p dir=\"auto\">First, install the Rust target required for your architecture:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"# x86_64\nrustup target add x86_64-unknown-linux-musl\n\n# aarch64\nrustup target add aarch64-unknown-linux-musl\"><pre class=\"notranslate\"># <span class=\"pl-s1\">x86_64</span>\n<span class=\"pl-c1\">rustup target add x86_64-unknown-linux-musl</span>\n\n# <span class=\"pl-s1\">aarch64</span>\n<span class=\"pl-c1\">rustup target add aarch64-unknown-linux-musl</span></pre></div>\n<p dir=\"auto\">Next, install the tools required by Rust cross compiler:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"# macOS (Homebrew)\nbrew install FiloSottile/musl-cross/musl-cross\n\n# Linux (Ubuntu)\napt-get install musl-tools\"><pre class=\"notranslate\"># <span class=\"pl-s1\">macOS (Homebrew)</span>\n<span class=\"pl-c1\">brew install FiloSottile/musl-cross/musl-cross</span>\n\n# <span class=\"pl-s1\">Linux (Ubuntu)</span>\n<span class=\"pl-c1\">apt-get install musl-tools</span></pre></div>\n<p dir=\"auto\">On macOS, add this to your <code class=\"notranslate\">~/.cargo/config.toml</code> file:</p>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"[target.x86_64-unknown-linux-musl]\nlinker = &quot;x86_64-linux-musl-gcc&quot;\n\n[target.aarch64-unknown-linux-musl]\nlinker = &quot;aarch64-linux-musl-gcc&quot;\"><pre class=\"notranslate\"><code class=\"notranslate\">[target.x86_64-unknown-linux-musl]\nlinker = \"x86_64-linux-musl-gcc\"\n\n[target.aarch64-unknown-linux-musl]\nlinker = \"aarch64-linux-musl-gcc\"\n</code></pre></div>\n<p dir=\"auto\">Finally, to use the local compiler, just run Tilt using using the <code class=\"notranslate\">KUBETAIL_DEV_RUST_LOCAL</code> env flag:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"KUBETAIL_DEV_RUST_LOCAL=true tilt up\"><pre class=\"notranslate\"><span class=\"pl-c1\">KUBETAIL_DEV_RUST_LOCAL=true tilt up</span></pre></div>\n<h2 dir=\"auto\">Build</h2>\n<h3 dir=\"auto\">CLI Tool</h3>\n<p dir=\"auto\">To build the Kubetail CLI tool executable (<code class=\"notranslate\">kubetail</code>), run the following command:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"make\"><pre class=\"notranslate\"><span class=\"pl-c1\">make</span></pre></div>\n<p dir=\"auto\">When the build process finishes you can find the executable in the local <code class=\"notranslate\">bin/</code> directory.</p>\n<h3 dir=\"auto\">Dashboard</h3>\n<p dir=\"auto\">To build a docker image for a production deployment of the Kubetail Dashboard server, run the following command:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"docker build -f build/package/Dockerfile.dashboard -t kubetail-dashboard:latest .\"><pre class=\"notranslate\"><span class=\"pl-c1\">docker build -f build/package/Dockerfile.dashboard -t kubetail-dashboard:latest .</span></pre></div>\n<h3 dir=\"auto\">Cluster API</h3>\n<p dir=\"auto\">To build a docker image for a production deployment of the Kubetail Cluster API server, run the following command:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"docker build -f build/package/Dockerfile.cluster-api -t kubetail-cluster-api:latest .\"><pre class=\"notranslate\"><span class=\"pl-c1\">docker build -f build/package/Dockerfile.cluster-api -t kubetail-cluster-api:latest .</span></pre></div>\n<h3 dir=\"auto\">Cluster Agent</h3>\n<p dir=\"auto\">To build a docker image for a production deployment of the Kubetail Cluster Agent, run the following command:</p>\n<div class=\"highlight highlight-text-shell-session notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"docker build -f build/package/Dockerfile.cluster-agent -t kubetail-cluster-agent:latest .\"><pre class=\"notranslate\"><span class=\"pl-c1\">docker build -f build/package/Dockerfile.cluster-agent -t kubetail-cluster-agent:latest .</span></pre></div>\n<h2 dir=\"auto\">Get Involved</h2>\n<p dir=\"auto\">We're building the most <strong>user-friendly</strong>, <strong>cost-effective</strong>, and <strong>secure</strong> logging platform for Kubernetes and we'd love your contributions! Here's how you can help:</p>\n<ul dir=\"auto\">\n<li>UI/UX design</li>\n<li>React frontend development</li>\n<li>Reporting issues and suggesting features</li>\n</ul>\n<p dir=\"auto\">Reach us at <a href=\"mailto:hello@kubetail.com\">hello@kubetail.com</a>, or join our <a href=\"https://discord.gg/CmsmWAVkvX\" rel=\"nofollow\">Discord server</a> or <a href=\"https://join.slack.com/t/kubetail/shared_invite/zt-2cq01cbm8-e1kbLT3EmcLPpHSeoFYm1w\" rel=\"nofollow\">Slack channel</a>.</p>","updatedAt":"2025-05-21T16:09:16Z","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-Tools","color":"2d411a"}},{"node":{"name":"kubetail-org","color":"575c52"}}]},"comments":{"edges":[]}}},"pageContext":{"number":336,"previous":{"title":"danielfoehrKn/kubeswitch: 一款 k8s 多集群配置文件管理切换工具","number":335},"next":{"title":"johanhaleby/kubetail: 可以同时监控 Kubernetes 多个 pods 日志的 Bash 脚本。","number":337}}},
    "staticQueryHashes": ["151096407","2861350382"]}