Compare commits
641 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f8162b0ef6 | |||
| 1a02f19649 | |||
| 028b4ea01e | |||
| 0b2a0988b4 | |||
| 827f7a6d41 | |||
| b3c0239447 | |||
| 0739e805a1 | |||
| a49af9f466 | |||
| e8d6eb2847 | |||
| 366604e4cf | |||
| 23ed3420e5 | |||
| 5d8e1dd23a | |||
| 77168085f2 | |||
| eebc0abd4f | |||
| 2d6044e1f8 | |||
| 8cb62864d9 | |||
| 6e760f2078 | |||
| b46ef1fc42 | |||
| 4c76780a26 | |||
| e5bcd6f052 | |||
| 1a5c01ede7 | |||
| e27bce7427 | |||
| 486fd6e720 | |||
| bb27c3bf65 | |||
| d813887267 | |||
| 90fc889f9f | |||
| f7f6d4125e | |||
| 58f99cb2ef | |||
| ae8f17fd53 | |||
| bdcc6aa454 | |||
| cccc55be40 | |||
| 1e64a6c7f2 | |||
| 33de7c41bc | |||
| d85b104451 | |||
| 1397fe08db | |||
| 49b590b020 | |||
| 114b94a51e | |||
| 10ded6a2eb | |||
| e97ba9e6b2 | |||
| 0b09426200 | |||
| a7db023e77 | |||
| b0498cdec6 | |||
| 213c572265 | |||
| 6612da6148 | |||
| 1a8a176914 | |||
| 301e5619fa | |||
| 31ab86148a | |||
| 88efaac10e | |||
| 4610d3f13b | |||
| 8e975c9f52 | |||
| cd9b645feb | |||
| 89cc5539d5 | |||
| 3d9c25b5b9 | |||
| 90f8cdd2b9 | |||
| f941923fb7 | |||
| 777af87920 | |||
| 78deb13b1e | |||
| 00b18013d5 | |||
| 4d0be0f61b | |||
| 61ee18e87b | |||
| 868899b059 | |||
| 6279839a7e | |||
| 3da4af5175 | |||
| f87cdb02b0 | |||
| 9b41a523ae | |||
| 9fa8431ce5 | |||
| 9d37155a4b | |||
| fe8f31af91 | |||
| 3d086ad092 | |||
| 32a140ef7a | |||
| 5fa0e120d1 | |||
| c5504a9283 | |||
| 780ecbbbde | |||
| aa857c68c5 | |||
| b6a09f9167 | |||
| b058767a10 | |||
| cfb3da9773 | |||
| 85c570cb2a | |||
| e7e337d337 | |||
| 1d8ca9fcd0 | |||
| 7ec7d7b628 | |||
| b131443854 | |||
| e26297d7a2 | |||
| accf990bdd | |||
| 3860980d3a | |||
| dad8c5b5c6 | |||
| b942445bf0 | |||
| 31fd1b6f9a | |||
| e40897804b | |||
| 098da94054 | |||
| 77cbab1ec9 | |||
| cc48719493 | |||
| 2ba6267ba4 | |||
| fa4a119869 | |||
| 5d1a4a83ec | |||
| 8cc207566d | |||
| 409dc444da | |||
| b7a5d96470 | |||
| b15729acb9 | |||
| 0a90f388a7 | |||
| 9407305657 | |||
| 237da7916b | |||
| 69a237011f | |||
| 78e42d5e9a | |||
| 282573aa18 | |||
| 171fc4e170 | |||
| aee361495b | |||
| 6ed905830f | |||
| 87d25e933e | |||
| c027cd6e3f | |||
| 3f72aeb363 | |||
| dbe9a17f88 | |||
| 9c868c3647 | |||
| 885e5d7f38 | |||
| 6dd507e6db | |||
| bcaadd3314 | |||
| 78ed3ff8f6 | |||
| 269050b6b6 | |||
| 05e17d3f4c | |||
| 8121f9800b | |||
| 601ce36129 | |||
| fa8521e6c5 | |||
| 2897bf84be | |||
| 175c5c2745 | |||
| 5577a9169a | |||
| 08726b2b20 | |||
| a5c291e1d9 | |||
| afe1e2eee4 | |||
| f3d457dd74 | |||
| 57e7602990 | |||
| 8937fd7a65 | |||
| e1b2731579 | |||
| 0641d6c025 | |||
| 1612f95d1d | |||
| 10588e474b | |||
| 2bb187892a | |||
| 89a4390fa2 | |||
| 10fc0a9ecd | |||
| bf189d1be9 | |||
| e0d97c3c08 | |||
| 0ed27e19f6 | |||
| 3f8bb31bd8 | |||
| 7dbe51be07 | |||
| dc3acf2186 | |||
| 3fc0ad4977 | |||
| 059002b700 | |||
| 3445bf5a39 | |||
| bb6006fce2 | |||
| 4868339f36 | |||
| 1c30466d7d | |||
| ae7d0caada | |||
| b67701f9b3 | |||
| a8b83a8391 | |||
| ffd49e7346 | |||
| bc7dd5f422 | |||
| 796bf3c0eb | |||
| 317aa7cf32 | |||
| 1964e97c60 | |||
| a0f63b2ce6 | |||
| 073bc1454d | |||
| e8ae437057 | |||
| c607c97431 | |||
| a87b030eb5 | |||
| 0f4e48304d | |||
| e71d863b16 | |||
| c81127b2a0 | |||
| e25bc18f25 | |||
| a054891d93 | |||
| f04609c529 | |||
| f5269d0b71 | |||
| b7ae823604 | |||
| 5be21ca82d | |||
| 15f5417ab4 | |||
| 8015c19fee | |||
| ade374db96 | |||
| c9e4fe6d4a | |||
| edc769aab8 | |||
| 73a942406d | |||
| 6cec0c18d4 | |||
| 003f6955cc | |||
| 8ef656e7df | |||
| 8e22157bf5 | |||
| 62de5ae62b | |||
| 7e295149b2 | |||
| b87a92d3c8 | |||
| 2f1b680524 | |||
| beff1b1adb | |||
| 404b218418 | |||
| 7f041fc323 | |||
| 63668a4098 | |||
| ba4c96363a | |||
| 5c6f031e6f | |||
| fac84ef1af | |||
| e4cd7949c8 | |||
| 8626e0fc18 | |||
| 1dec969d39 | |||
| 5cb2e5f0ff | |||
| fc1543d01a | |||
| 8e26ab0c44 | |||
| 8d71555508 | |||
| e167b73812 | |||
| 966a4a6fc4 | |||
| 906cde039f | |||
| 510f3497c0 | |||
| 9b838bfaf4 | |||
| a4a44c221c | |||
| a5f9477fb7 | |||
| d77a74621c | |||
| a00f23af84 | |||
| dca2181e18 | |||
| 614bf3c4fc | |||
| a1bfbe8b21 | |||
| 8511590979 | |||
| 858b661d6a | |||
| 3ed97562e2 | |||
| 38cdfc9a4b | |||
| e012092612 | |||
| 44d598b1f4 | |||
| aaab2b1946 | |||
| d8e1b81c4b | |||
| e951d615f8 | |||
| 401426cc30 | |||
| ce5ca1249d | |||
| 1a231cc0fc | |||
| 4e8fb3664f | |||
| 0a13bdabb8 | |||
| f1fa835a7f | |||
| baf0cb5201 | |||
| 62f9ae63d2 | |||
| 0cf8861a49 | |||
| 91508218cd | |||
| 040699a989 | |||
| 28e626ac1d | |||
| 8d67c86b20 | |||
| a37edeb69e | |||
| 25a41b6b78 | |||
| 7d0cbec18f | |||
| 308bbebb83 | |||
| 7935bb1aa2 | |||
| b1c02ca65a | |||
| 76ae52edd0 | |||
| 4b0a1e0447 | |||
| 26383bd58b | |||
| d668db841a | |||
| 801249f86d | |||
| 4f93edabe4 | |||
| d07cf9ec9b | |||
| 9ea3da3bc5 | |||
| 0dbec63d17 | |||
| 77f7bf22df | |||
| 8e2ac5932d | |||
| 1947dbdf62 | |||
| b2c87f77c1 | |||
| 6d7877fd05 | |||
| e49b653e53 | |||
| 3e901a186d | |||
| 552251b260 | |||
| acbb74139f | |||
| 4aa63c8e57 | |||
| 1c08814d1b | |||
| 53b2d031a4 | |||
| 34929ffcf2 | |||
| 682ce2e292 | |||
| fb5b1b3a28 | |||
| b697d945ef | |||
| 361283e20d | |||
| a5ceee0679 | |||
| 0df8f0f127 | |||
| 58c0fe0560 | |||
| 5313355d8a | |||
| 3a5aa16f37 | |||
| 0868791c6d | |||
| e6083086da | |||
| ec65ba61d4 | |||
| 06fea07711 | |||
| 4df33c7201 | |||
| 0eefc4f441 | |||
| 19ea283f74 | |||
| b039796c58 | |||
| 43694f3c3a | |||
| 2fc7e6e2d9 | |||
| 13c89553f6 | |||
| 7c8f4f36c8 | |||
| 44d127e189 | |||
| 59be6af72d | |||
| 4bcceed652 | |||
| 14cd53697d | |||
| 92781d8b39 | |||
| 9f19594584 | |||
| c6e7b33548 | |||
| 59054092cd | |||
| 0d714f6937 | |||
| 6369aa44fb | |||
| 9ff8744d57 | |||
| 19bf37c613 | |||
| 603ce4c421 | |||
| 50ef724d31 | |||
| 04d1d9d945 | |||
| ab96f2aa77 | |||
| efbc7c685c | |||
| a1dcb0a815 | |||
| c1640a6fa5 | |||
| 426db24e19 | |||
| 5c108eedb1 | |||
| cc306b6b49 | |||
| 09385ee009 | |||
| c9a3a0aac7 | |||
| 83be2ae6c8 | |||
| 734d9313b1 | |||
| bf2b699aac | |||
| c23ef5ad48 | |||
| 5d059aca36 | |||
| bd392a057f | |||
| b9c5111341 | |||
| 6aea702e16 | |||
| b74bcf4d58 | |||
| 96d2816484 | |||
| edeaf999e5 | |||
| a5fdec8bb9 | |||
| a6af8d8d79 | |||
| 2a94ffe685 | |||
| f5b5959eb4 | |||
| b4cfd95474 | |||
| 310b000af2 | |||
| b6f1cb9fe9 | |||
| f722daa838 | |||
| 6614a419c2 | |||
| bc809f6078 | |||
| 133b302f19 | |||
| e4b23895ff | |||
| e53b9aff47 | |||
| 8290d0f019 | |||
| 0c4822df20 | |||
| 5243263dd9 | |||
| 35f7358142 | |||
| 3316fac160 | |||
| 6f3a2eb13c | |||
| 0e56cf42c0 | |||
| 190c68b853 | |||
| 5d5c7619a1 | |||
| 78713be714 | |||
| 0acc2625d0 | |||
| 6eefd9380a | |||
| 565c175a35 | |||
| ec03f7e055 | |||
| 262e39dba3 | |||
| 365062c271 | |||
| 9e906a0da4 | |||
| 644e98fdf8 | |||
| 34e54ab71c | |||
| 2f114f92a8 | |||
| 8c533e51f2 | |||
| 9105a05ef6 | |||
| 2d8280a2a9 | |||
| 0cdbcad949 | |||
| 435ccde66e | |||
| 4961e19593 | |||
| 4d2b30a8c0 | |||
| 34f223e8b1 | |||
| 4a59a96d03 | |||
| dd566f3426 | |||
| 4a8546a97d | |||
| 810677c3b1 | |||
| d5c0ffc2b2 | |||
| 4ae2cd145d | |||
| a7b121f345 | |||
| d2f1afcfd5 | |||
| 867ed083ce | |||
| 953e892e56 | |||
| 78aa8163fb | |||
| 69121ca7f8 | |||
| c71e1d218f | |||
| 9e1c6033d7 | |||
| ccd4be8185 | |||
| cca1900935 | |||
| c19fbd8546 | |||
| 540770a5cc | |||
| da1f0a5e2f | |||
| 1972537896 | |||
| b3344ca081 | |||
| 491fc4c0f0 | |||
| bdb436e11e | |||
| cdedb1db9d | |||
| 4fb360ed71 | |||
| 5afd4ee087 | |||
| f07644ae57 | |||
| 2be410ee5e | |||
| 04521b6927 | |||
| 17526c90cd | |||
| 065f8462cd | |||
| b9e93bb6aa | |||
| 04d45e2c26 | |||
| d154005e45 | |||
| 953ab2f96c | |||
| f95376389a | |||
| 31cebb306d | |||
| 6e094fa640 | |||
| 4fa6d715ec | |||
| a498c9ad95 | |||
| 2f1a8d14fe | |||
| b15ccd6c4a | |||
| 3baab1abac | |||
| b6d431ea4d | |||
| b3a0ff3479 | |||
| 13953625e4 | |||
| a60038f02b | |||
| 3ef791daab | |||
| 3737649bf0 | |||
| a9df619242 | |||
| 827885b048 | |||
| 1dbf3a634b | |||
| 3b2f2b3465 | |||
| a850c5356b | |||
| 3edf976c92 | |||
| c8161f68a1 | |||
| 17c7f60e14 | |||
| a7b2730118 | |||
| f28542225d | |||
| 5f809f7044 | |||
| 46c56dad7b | |||
| a1ff75bc5d | |||
| 5786eab900 | |||
| 789619563a | |||
| 66810a387f | |||
| dd7cea99b3 | |||
| 27fbb317e2 | |||
| 56b46a3dfa | |||
| 5839bcf9f0 | |||
| 1e591633eb | |||
| 49628d5683 | |||
| 6e2cc1706f | |||
| 304bd4a0bf | |||
| 6eacd83023 | |||
| 001752605a | |||
| 036ef0e3d0 | |||
| 3a36aa1a3f | |||
| 63dc6f48cc | |||
| 32ceb68b7a | |||
| 8f4cdf6279 | |||
| ef744a1a87 | |||
| 0615c7e4a4 | |||
| a97f2302cd | |||
| bd451d82fe | |||
| a72d50148f | |||
| 6f9e464bcc | |||
| a9bc1689f9 | |||
| 1994c9d44e | |||
| 7bd47b64dd | |||
| d683c271af | |||
| 8c862b3fcd | |||
| 8d12fe9e8d | |||
| 64aeaf5030 | |||
| 941f8d1ce4 | |||
| d6bdb664fb | |||
| 83f3d78c90 | |||
| 905b149c29 | |||
| 9b20a72e37 | |||
| 338f97135f | |||
| f87f91308a | |||
| 10357b38c9 | |||
| f729a78aa9 | |||
| 6a46e11332 | |||
| a4a4abd6b2 | |||
| f12cf5c4d4 | |||
| 3a2682a332 | |||
| ed49052bcd | |||
| aa528df594 | |||
| 507c911f4c | |||
| 03773e1fba | |||
| b93ec92552 | |||
| 9d4884a7b4 | |||
| 08b01b32be | |||
| 7d5043d5d1 | |||
| 7722045b10 | |||
| abda51d19c | |||
| 5cadc09ef4 | |||
| cc0d9d7145 | |||
| 3902ce43a0 | |||
| 6fa18d3ef8 | |||
| de154a095e | |||
| a04d723f56 | |||
| 5c4081a2fe | |||
| 17b1366aaf | |||
| 35b21ab8bc | |||
| 7aa310ad3c | |||
| 4443843458 | |||
| 3e43c0db52 | |||
| 52d1838a0c | |||
| 75aed5f9e0 | |||
| b41ded687b | |||
| a1a3e7e015 | |||
| 1bc4f1adad | |||
| 040c932e88 | |||
| e0e1ddb9b7 | |||
| 4a8346af6b | |||
| da0f8817a5 | |||
| f98ccebdf2 | |||
| 4518d20365 | |||
| 6c78e7ccbe | |||
| 87ac836d08 | |||
| 536f8ec046 | |||
| 5d0019e546 | |||
| 651f6c213b | |||
| 8beea31e2b | |||
| fd147fba97 | |||
| b0abfdb195 | |||
| b9f26ef5f5 | |||
| 6f3b32d07d | |||
| e52cd96330 | |||
| db821b1d80 | |||
| 33085a83f9 | |||
| e4bbef6957 | |||
| eb3bfca0f6 | |||
| 617b11bfbd | |||
| 291d28fd89 | |||
| 138274f1f2 | |||
| c027a64cc0 | |||
| 284af3892b | |||
| 0fac0c8e1b | |||
| 4fd9171295 | |||
| f64296735f | |||
| 0906132c42 | |||
| 6943859158 | |||
| fc8f9aa6c6 | |||
| ee34bbdc08 | |||
| 67d492c386 | |||
| a23e065fe3 | |||
| 307fb53a7f | |||
| 38af9b89fd | |||
| 61fd76161a | |||
| a914c07a3a | |||
| e082a59e71 | |||
| e98fed9d66 | |||
| 023a6ec4bd | |||
| 1cc718f0a6 | |||
| d2e5be57c1 | |||
| 276ca7bba5 | |||
| e269d68f31 | |||
| 8cdf83d64f | |||
| 51ac99f7bd | |||
| 025415689d | |||
| 56c476d696 | |||
| 2a763c35bc | |||
| fa5524005b | |||
| 5d43a14730 | |||
| 9a7c670d84 | |||
| 006b19025c | |||
| 2a42da0495 | |||
| 5aa871ac07 | |||
| addc304897 | |||
| 9c1349a880 | |||
| 158f5276d8 | |||
| 399c842a61 | |||
| bc7c568000 | |||
| c6ee5f1663 | |||
| 03c716d29b | |||
| 3682f12096 | |||
| 94c6e6a9e3 | |||
| 881a8ba7d1 | |||
| fa536ef5ae | |||
| bb45069b1a | |||
| c7115d7a25 | |||
| 01c6eb3625 | |||
| 1cbaddef4a | |||
| 2f5f90a093 | |||
| a0f97fe227 | |||
| 2718df3f3b | |||
| 78a583515e | |||
| f002059889 | |||
| 9a2e390e59 | |||
| 01677e2710 | |||
| 2a1899a646 | |||
| 29dec80f66 | |||
| 36fbc627de | |||
| 140dec03d6 | |||
| 27d91618fe | |||
| 68e189f8dd | |||
| 70bca00a70 | |||
| c1f4b253ab | |||
| bb34f245fd | |||
| 490ddd8780 | |||
| 9f19d20dfb | |||
| 05e9e094eb | |||
| e69adeb790 | |||
| 0b80570fdd | |||
| 0d8929da3d | |||
| a3c7224769 | |||
| 9520119986 | |||
| 045cbb1f57 | |||
| 5d6da7ec69 | |||
| 865b49aab8 | |||
| dd6a61f02f | |||
| ce69248d6f | |||
| 035fc8847f | |||
| 7dbf37f2e1 | |||
| 1cc51309a1 | |||
| f84f77ca8e | |||
| e7d47c4eb8 | |||
| 70b991fb9f | |||
| 46328a4e24 | |||
| 2965ea0e4a | |||
| 0b786ff826 | |||
| 25fe403fdf | |||
| 5ab6ae0dd6 | |||
| b3529ee840 | |||
| eea138591d | |||
| 555bbbb307 | |||
| 4d7691ecfc | |||
| 3286b00f58 | |||
| e7319eeb8c | |||
| ae83bb4938 | |||
| 8ba585e8f7 | |||
| 0e2ba4797a | |||
| 90f7df61be | |||
| 19d8375c11 | |||
| dd24ece1bb | |||
| 9d3671dea7 | |||
| 57f4b2da60 | |||
| 9a7a295d92 | |||
| 2673795273 | |||
| 93c0bb9347 | |||
| e1e655507d | |||
| 462817a674 | |||
| c98cd68630 | |||
| 698e93b441 | |||
| 66eaff007c | |||
| b3bc49ede6 | |||
| fe96f3b980 | |||
| dc9d71ac3e | |||
| d6e30e19a8 | |||
| d494a440bd | |||
| 68de2e3ec1 | |||
| d5b92b42b1 | |||
| 55f8e53747 | |||
| 28eb1cfa51 | |||
| 9d84a497b4 | |||
| 183d214c84 | |||
| 7baa17d816 | |||
| 21a1bebe7e | |||
| 9f823c1113 | |||
| 1ea8f96dbc |
@@ -1,17 +0,0 @@
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = false
|
||||
charset = utf-8
|
||||
max_line_length = 80
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.{css,html,js,json,sass,md,mmark,toml,yaml}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.{sh}]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[Makefile]
|
||||
indent_style = tab
|
||||
@@ -0,0 +1,23 @@
|
||||
<!-- Thanks for filing an issue! Before submitting, please fill in the following information. -->
|
||||
<!-- See https://kubernetes.io/docs/contribute/start/ for guidance on writing an actionable issue description. -->
|
||||
|
||||
<!--Required Information-->
|
||||
|
||||
**This is a...**
|
||||
<!-- choose one by changing [ ] to [x] -->
|
||||
- [ ] Feature Request
|
||||
- [ ] Bug Report
|
||||
|
||||
**Problem:**
|
||||
|
||||
|
||||
**Proposed Solution:**
|
||||
|
||||
|
||||
**Page to Update:**
|
||||
https://kubernetes.io/...
|
||||
|
||||
<!--Optional Information (remove the comment tags around information you would like to include)-->
|
||||
<!--Kubernetes Version:-->
|
||||
|
||||
<!--Additional Information:-->
|
||||
@@ -1,23 +0,0 @@
|
||||
---
|
||||
name: Bug Report
|
||||
about: Report a bug encountered with Kubernetes Website
|
||||
labels:
|
||||
- kind/bug
|
||||
---
|
||||
**This is a Bug Report**
|
||||
|
||||
<!-- Thanks for filing an issue! Before submitting, please fill in the following information. -->
|
||||
<!-- See https://kubernetes.io/docs/contribute/start/ for guidance on writing an actionable issue description. -->
|
||||
|
||||
<!--Required Information-->
|
||||
**Problem:**
|
||||
|
||||
**Proposed Solution:**
|
||||
|
||||
**Page to Update:**
|
||||
https://kubernetes.io/...
|
||||
|
||||
<!--Optional Information (remove the comment tags around information you would like to include)-->
|
||||
<!--Kubernetes Version:-->
|
||||
|
||||
<!--Additional Information:-->
|
||||
@@ -1,18 +0,0 @@
|
||||
---
|
||||
name: Feature Request
|
||||
about: Suggest a/an feature/enhancement to the Kubernetes Website project
|
||||
labels:
|
||||
- kind/feature
|
||||
---
|
||||
**This is a Feature Request**
|
||||
|
||||
<!-- Please only use this template for submitting feature/enhancement requests -->
|
||||
<!-- See https://kubernetes.io/docs/contribute/start/ for guidance on writing an actionable issue description. -->
|
||||
|
||||
**What would you like to be added**
|
||||
<!-- Describe as precisely as possible how this feature/enhancement should work from the user perspective. What should be changed, etc. -->
|
||||
|
||||
**Why is this needed**
|
||||
|
||||
**Comments**
|
||||
<!-- Any additional related comments that might help. Drawings/mockups would be extremely helpful (if required). -->
|
||||
@@ -1,19 +0,0 @@
|
||||
---
|
||||
name: Support Request
|
||||
about: Support request or question relating to Kubernetes Website project
|
||||
labels:
|
||||
- triage/support
|
||||
---
|
||||
**This is Support**
|
||||
|
||||
<!--
|
||||
STOP -- PLEASE READ!
|
||||
|
||||
GitHub is not the right place for support requests.
|
||||
|
||||
If you're looking for help, check [Stack Overflow](https://stackoverflow.com/questions/tagged/kubernetes)
|
||||
|
||||
You can also post your question on the [Kubernetes Slack](http://slack.k8s.io/) or the [Discuss Kubernetes](https://discuss.kubernetes.io/) forum.
|
||||
|
||||
If the matter is security related, please disclose it privately via https://kubernetes.io/security/.
|
||||
-->
|
||||
@@ -1,22 +1,13 @@
|
||||
<!-- 🛈
|
||||
>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
> Please delete this note before submitting the pull request.
|
||||
>
|
||||
> For 1.13 Features: set Milestone to 1.13 and Base Branch to dev-1.13
|
||||
>
|
||||
> Help editing and submitting pull requests:
|
||||
> https://kubernetes.io/docs/contribute/start/#improve-existing-content.
|
||||
>
|
||||
> Help choosing which branch to use:
|
||||
> https://kubernetes.io/docs/contribute/start#choose-which-git-branch-to-use.
|
||||
>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>
|
||||
|
||||
Hello!
|
||||
|
||||
Remember to ADD A DESCRIPTION and delete this note before submitting
|
||||
your pull request. The description should explain what will change,
|
||||
and why.
|
||||
|
||||
PLEASE title the FIRST commit appropriately, so that if you squash all
|
||||
your commits into one, the combined commit message makes sense.
|
||||
For overall help on editing and submitting pull requests, visit:
|
||||
https://kubernetes.io/docs/contribute/start/#improve-existing-content
|
||||
|
||||
Use the default base branch, “master”, if you're documenting existing
|
||||
features in the English localization.
|
||||
|
||||
If you're working on a different localization (not English), or you
|
||||
are documenting a feature that will be part of a future release, see
|
||||
https://kubernetes.io/docs/contribute/new-content/overview/#choose-which-git-branch-to-use
|
||||
for advice.
|
||||
|
||||
-->
|
||||
|
||||
+5
-1
@@ -1,6 +1,7 @@
|
||||
**/.DS_Store
|
||||
**/desktop.ini
|
||||
_site/**
|
||||
.sass-cache/**
|
||||
CNAME
|
||||
.travis.yml
|
||||
.idea/
|
||||
@@ -30,7 +31,10 @@ nohup.out
|
||||
public/
|
||||
resources/
|
||||
|
||||
# User-specific editorconfig files
|
||||
.editorconfig
|
||||
|
||||
# Netlify Functions build output
|
||||
package-lock.json
|
||||
functions/
|
||||
node_modules/
|
||||
node_modules/
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
[submodule "themes/docsy"]
|
||||
path = themes/docsy
|
||||
url = https://github.com/google/docsy.git
|
||||
@@ -1,16 +0,0 @@
|
||||
DirectoryPath: public/docs
|
||||
IgnoreDirectoryMissingTrailingSlash: true
|
||||
CheckExternal: false
|
||||
IgnoreAltMissing: true
|
||||
CheckImages: false
|
||||
CheckScripts: false
|
||||
CheckMeta: false
|
||||
CheckMetaRefresh: false
|
||||
CheckLinks: false
|
||||
EnforceHTML5: false
|
||||
EnforceHTTPS: false
|
||||
IgnoreDirectoryMissingTrailingSlash: false
|
||||
IgnoreInternalEmptyHash: true
|
||||
IgnoreEmptyHref: true
|
||||
IgnoreDirs:
|
||||
- "reference/generated/kubernetes-api"
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
language: go
|
||||
go:
|
||||
- 1.10.2
|
||||
|
||||
env:
|
||||
- HUGO_VERSION=0.49
|
||||
|
||||
jobs:
|
||||
include:
|
||||
- name: "Testing examples"
|
||||
# Don't want default ./... here:
|
||||
install:
|
||||
- export PATH=$GOPATH/bin:$PATH
|
||||
- mkdir -p $HOME/gopath/src/k8s.io
|
||||
- mv $TRAVIS_BUILD_DIR $HOME/gopath/src/k8s.io/website && cd $HOME/gopath/src/k8s.io/website
|
||||
|
||||
# Make sure we are testing against the correct branch
|
||||
- pushd $GOPATH/src/k8s.io && git clone https://github.com/kubernetes/kubernetes && popd
|
||||
- pushd $GOPATH/src/k8s.io/kubernetes && git checkout release-1.11 && popd
|
||||
- cp -L -R $GOPATH/src/k8s.io/kubernetes/vendor/ $GOPATH/src/
|
||||
- rm -r $GOPATH/src/k8s.io/kubernetes/vendor/
|
||||
|
||||
# Fetch additional dependencies to run the tests in examples/examples_test.go
|
||||
- go get -t -v k8s.io/website/content/en/examples
|
||||
script:
|
||||
- go test -v k8s.io/website/content/en/examples
|
||||
- name: "Hugo build"
|
||||
install:
|
||||
- curl -L https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_linux-64bit.tar.gz | tar -xz
|
||||
- mkdir -p ${TRAVIS_HOME}/bin
|
||||
- mv hugo ${TRAVIS_HOME}/bin
|
||||
- export PATH=${TRAVIS_HOME}/bin:$PATH
|
||||
script:
|
||||
- hugo
|
||||
+6
-5
@@ -6,7 +6,7 @@
|
||||
|
||||
FROM alpine:latest
|
||||
|
||||
LABEL maintainer="Luc Perkins <lperkins@linuxfoundation.org>"
|
||||
MAINTAINER Luc Perkins <lperkins@linuxfoundation.org>
|
||||
|
||||
RUN apk add --no-cache \
|
||||
curl \
|
||||
@@ -14,16 +14,17 @@ RUN apk add --no-cache \
|
||||
openssh-client \
|
||||
rsync \
|
||||
build-base \
|
||||
libc6-compat \
|
||||
npm && \
|
||||
npm install -G autoprefixer postcss-cli
|
||||
libc6-compat
|
||||
|
||||
ARG HUGO_VERSION
|
||||
|
||||
RUN mkdir -p /usr/local/src && \
|
||||
cd /usr/local/src && \
|
||||
curl -L https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz | tar -xz && \
|
||||
#curl -L https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-64bit.tar.gz | tar -xz && \
|
||||
curl -L https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_linux-64bit.tar.gz | tar -xz && \
|
||||
mv hugo /usr/local/bin/hugo && \
|
||||
#curl -L https://bin.equinox.io/c/dhgbqpS8Bvy/minify-stable-linux-amd64.tgz | tar -xz && \
|
||||
#mv minify /usr/local/bin && \
|
||||
addgroup -Sg 1000 hugo && \
|
||||
adduser -Sg hugo -u 1000 -h /src hugo
|
||||
|
||||
|
||||
@@ -1,36 +1,22 @@
|
||||
HUGO_VERSION = $(shell grep ^HUGO_VERSION netlify.toml | tail -n 1 | cut -d '=' -f 2 | tr -d " \"\n")
|
||||
NODE_BIN = node_modules/.bin
|
||||
NETLIFY_FUNC = $(NODE_BIN)/netlify-lambda
|
||||
DOCKER = docker
|
||||
HUGO_VERSION = 0.49
|
||||
DOCKER_IMAGE = kubernetes-hugo
|
||||
DOCKER_RUN = $(DOCKER) run --rm --interactive --tty --volume $(CURDIR):/src
|
||||
NODE_BIN = node_modules/.bin
|
||||
NETLIFY_FUNC = $(NODE_BIN)/netlify-lambda
|
||||
|
||||
# The CONTAINER_ENGINE variable is used for specifying the container engine. By default 'docker' is used
|
||||
# but this can be overridden when calling make, e.g.
|
||||
# CONTAINER_ENGINE=podman make container-image
|
||||
CONTAINER_ENGINE ?= docker
|
||||
IMAGE_VERSION=$(shell scripts/hash-files.sh Dockerfile Makefile | cut -c 1-12)
|
||||
CONTAINER_IMAGE = kubernetes-hugo:v$(HUGO_VERSION)-$(IMAGE_VERSION)
|
||||
CONTAINER_RUN = $(CONTAINER_ENGINE) run --rm --interactive --tty --volume $(CURDIR):/src
|
||||
|
||||
CCRED=\033[0;31m
|
||||
CCEND=\033[0m
|
||||
|
||||
.PHONY: all build build-preview help serve
|
||||
.PHONY: all build sass build-preview help serve
|
||||
|
||||
help: ## Show this help.
|
||||
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $$2);printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
||||
|
||||
module-check:
|
||||
@git submodule status --recursive | awk '/^[+-]/ {printf "\033[31mWARNING\033[0m Submodule not initialized: \033[34m%s\033[0m\n",$$2}' 1>&2
|
||||
|
||||
all: build ## Build site with production settings and put deliverables in ./public
|
||||
|
||||
build: module-check ## Build site with production settings and put deliverables in ./public
|
||||
hugo --minify
|
||||
build: ## Build site with production settings and put deliverables in ./public
|
||||
hugo
|
||||
|
||||
build-preview: module-check ## Build site with drafts and future posts enabled
|
||||
hugo --buildDrafts --buildFuture
|
||||
|
||||
deploy-preview: ## Deploy preview site via netlify
|
||||
hugo --enableGitInfo --buildFuture -b $(DEPLOY_PRIME_URL)
|
||||
build-preview: ## Build site with drafts and future posts enabled
|
||||
hugo -D -F
|
||||
|
||||
functions-build:
|
||||
$(NETLIFY_FUNC) build functions-src
|
||||
@@ -43,45 +29,20 @@ production-build: build check-headers-file ## Build the production site and ensu
|
||||
non-production-build: ## Build the non-production site, which adds noindex headers to prevent indexing
|
||||
hugo --enableGitInfo
|
||||
|
||||
serve: module-check ## Boot the development server.
|
||||
hugo server --buildFuture
|
||||
sass-build:
|
||||
scripts/sass.sh build
|
||||
|
||||
sass-develop:
|
||||
scripts/sass.sh develop
|
||||
|
||||
serve: ## Boot the development server.
|
||||
hugo server --ignoreCache --disableFastRender
|
||||
|
||||
docker-image:
|
||||
@echo -e "$(CCRED)**** The use of docker-image is deprecated. Use container-image instead. ****$(CCEND)"
|
||||
$(MAKE) container-image
|
||||
$(DOCKER) build . --tag $(DOCKER_IMAGE) --build-arg HUGO_VERSION=$(HUGO_VERSION)
|
||||
|
||||
docker-build:
|
||||
@echo -e "$(CCRED)**** The use of docker-build is deprecated. Use container-build instead. ****$(CCEND)"
|
||||
$(MAKE) container-build
|
||||
$(DOCKER_RUN) $(DOCKER_IMAGE) hugo
|
||||
|
||||
docker-serve:
|
||||
@echo -e "$(CCRED)**** The use of docker-serve is deprecated. Use container-serve instead. ****$(CCEND)"
|
||||
$(MAKE) container-serve
|
||||
|
||||
container-image:
|
||||
$(CONTAINER_ENGINE) build . \
|
||||
--network=host \
|
||||
--tag $(CONTAINER_IMAGE) \
|
||||
--build-arg HUGO_VERSION=$(HUGO_VERSION)
|
||||
|
||||
container-build: module-check
|
||||
$(CONTAINER_RUN) $(CONTAINER_IMAGE) hugo --minify
|
||||
|
||||
container-serve: module-check
|
||||
$(CONTAINER_RUN) --mount type=tmpfs,destination=/src/resources,tmpfs-mode=0755 -p 1313:1313 $(CONTAINER_IMAGE) hugo server --buildFuture --bind 0.0.0.0
|
||||
|
||||
test-examples:
|
||||
scripts/test_examples.sh install
|
||||
scripts/test_examples.sh run
|
||||
|
||||
.PHONY: link-checker-setup
|
||||
link-checker-image-pull:
|
||||
$(CONTAINER_ENGINE) pull wjdp/htmltest
|
||||
|
||||
docker-internal-linkcheck:
|
||||
@echo -e "$(CCRED)**** The use of docker-internal-linkcheck is deprecated. Use container-internal-linkcheck instead. ****$(CCEND)"
|
||||
$(MAKE) container-internal-linkcheck
|
||||
|
||||
container-internal-linkcheck: link-checker-image-pull
|
||||
$(CONTAINER_RUN) $(CONTAINER_IMAGE) hugo --config config.toml,linkcheck-config.toml --buildFuture
|
||||
$(CONTAINER_ENGINE) run --mount type=bind,source=$(CURDIR),target=/test --rm wjdp/htmltest htmltest
|
||||
$(DOCKER_RUN) -p 1313:1313 $(DOCKER_IMAGE) hugo server --watch --bind 0.0.0.0
|
||||
|
||||
@@ -1,16 +1,10 @@
|
||||
# See the OWNERS docs at https://go.k8s.io/owners
|
||||
|
||||
# Reviewers can /lgtm /approve but not sufficient for auto-merge without an
|
||||
# approver
|
||||
reviewers:
|
||||
- sig-docs-en-reviews # Defined in OWNERS_ALIASES
|
||||
- sig-docs-en-reviews
|
||||
|
||||
# Approvers have all the ability of reviewers but their /approve makes
|
||||
# auto-merge happen if a /lgtm exists, or vice versa, or they can do both
|
||||
# No need for approvers to also be listed as reviewers
|
||||
approvers:
|
||||
- sig-docs-en-owners # Defined in OWNERS_ALIASES
|
||||
|
||||
emeritus_approvers:
|
||||
# chenopis, you're welcome to return when you're ready to resume PR wrangling
|
||||
# jaredbhatti, you're welcome to return when you're ready to resume PR wrangling
|
||||
# stewart-yu, you're welcome to return when you're ready to resume PR wrangling
|
||||
- stewart-yu
|
||||
|
||||
labels:
|
||||
- sig/docs
|
||||
- sig-docs-en-owners
|
||||
|
||||
+258
-179
@@ -1,220 +1,299 @@
|
||||
aliases:
|
||||
sig-docs-blog-owners: # Approvers for blog content
|
||||
- castrojo
|
||||
- kbarnard10
|
||||
- onlydole
|
||||
- zacharysarah
|
||||
- mrbobbytables
|
||||
sig-docs-blog-reviewers: # Reviewers for blog content
|
||||
- castrojo
|
||||
sig-api-machinery: #Team: API Server; GH: sig-api-machinery-pr-reviews; e.g. Annotations, Labels
|
||||
- lavalamp
|
||||
- sttts
|
||||
- liggitt
|
||||
- smarterclayton
|
||||
- deads2k
|
||||
sig-apps: #Team: Workloads; GH: sig-apps-pr-reviews; e.g. ConfigMaps, CronJobs, CustomResourceDefinitions, DaemonSets, Deployments, Jobs, Secrets, StatefulSets
|
||||
- enisoc
|
||||
- erictune
|
||||
- foxish
|
||||
- janetkuo
|
||||
- kow3ns
|
||||
- lukaszo
|
||||
- mfojtik
|
||||
- smarterclayton
|
||||
- soltysh
|
||||
- tnozicka
|
||||
sig-architecture: #GH: sig-architecture-pr-reviews
|
||||
- smarterclayton
|
||||
- bgrant0607
|
||||
sig-auth: #GH: sig-auth-pr-reviews
|
||||
- php-coder
|
||||
- liggitt
|
||||
- mikedanese
|
||||
- ericchiang
|
||||
- mattmoyer
|
||||
- enj
|
||||
- deads2k
|
||||
- davidopp
|
||||
sig-autoscaling: #GH: sig-autoscaling-pr-reviews
|
||||
- DirectXMan12
|
||||
- bskiba
|
||||
- aleksandra-malinowska
|
||||
- MaciekPytel
|
||||
- davidopp
|
||||
- mwielgus
|
||||
sig-aws: #Amazon AWS
|
||||
- justinsb
|
||||
- kris-nova
|
||||
- chrislovecnm
|
||||
- mfburnett
|
||||
sig-azure: #Microsoft Azure
|
||||
- andyzhangx
|
||||
- feiskyer
|
||||
- justaugustus
|
||||
- karataliu
|
||||
- khenidak
|
||||
sig-big-data: #GH: sig-big-data-pr-reviews
|
||||
- foxish
|
||||
sig-cli: #Team: CLI; GH: sig-cli-pr-reviews; e.g. kubectl
|
||||
- adohe
|
||||
- deads2k
|
||||
- derekwaynecarr
|
||||
- dims
|
||||
- dshulyak
|
||||
- eparis
|
||||
- ericchiang
|
||||
- ghodss
|
||||
- mengqiy
|
||||
- rootfs
|
||||
- shiywang
|
||||
- smarterclayton
|
||||
- soltysh
|
||||
- sttts
|
||||
sig-cluster-lifecycle-kubeadm-approvers: # Approving changes to kubeadm documentation
|
||||
- timothysc
|
||||
- lukemarsden
|
||||
- luxas
|
||||
- roberthbailey
|
||||
- fabriziopandini
|
||||
sig-cluster-lifecycle-kubeadm-reviewers: # Reviewing kubeadm documentation
|
||||
- timothysc
|
||||
- lukemarsden
|
||||
- luxas
|
||||
- roberthbailey
|
||||
- fabriziopandini
|
||||
- kad
|
||||
- xiangpengzhao
|
||||
- stealthybox
|
||||
- liztio
|
||||
- chuckha
|
||||
- detiber
|
||||
- dixudx
|
||||
sig-cluster-ops:
|
||||
- zehicle
|
||||
- jdumars
|
||||
sig-contribex: #aka Contributor Experience; GH: sig-contributor-experience-pr-reviews
|
||||
- rmmh
|
||||
- cblecker
|
||||
- apelisse
|
||||
- grodrigues3
|
||||
- spxtr
|
||||
sig-contributor-experience: #GH: sig-contributor-experience-pr-reviews
|
||||
- rmmh
|
||||
- cblecker
|
||||
- apelisse
|
||||
- grodrigues3
|
||||
- spxtr
|
||||
sig-docs: #Team: documentation; GH: sig-docs-maintainers
|
||||
- bradamant3
|
||||
- bradtopol
|
||||
- chenopis
|
||||
- cody-clark
|
||||
- jaredbhatti
|
||||
- kbarnard10
|
||||
- mrbobbytables
|
||||
- onlydole
|
||||
- parispittman
|
||||
- vonguard
|
||||
sig-docs-de-owners: # Admins for German content
|
||||
- bene2k1
|
||||
- mkorbi
|
||||
- rlenferink
|
||||
sig-docs-de-reviews: # PR reviews for German content
|
||||
- bene2k1
|
||||
- mkorbi
|
||||
- rlenferink
|
||||
sig-docs-en-owners: # Admins for English content
|
||||
- bradtopol
|
||||
- celestehorgan
|
||||
- jimangel
|
||||
- kbarnard10
|
||||
- kbhawkey
|
||||
- makoscafee
|
||||
- onlydole
|
||||
- savitharaghunathan
|
||||
- sftim
|
||||
- mistyhacks
|
||||
- ryanmcginnis
|
||||
- steveperry-53
|
||||
- tengqm
|
||||
- tfogo
|
||||
- xiangpengzhao
|
||||
- zacharysarah
|
||||
- zhangxiaoyu-zidif
|
||||
- zparnold
|
||||
sig-docs-en-reviews: # PR reviews for English content
|
||||
sig-docs-en-owners: #Team: Documentation; GH: sig-docs-en-owners
|
||||
- bradamant3
|
||||
- bradtopol
|
||||
- celestehorgan
|
||||
- daminisatya
|
||||
- jimangel
|
||||
- chenopis
|
||||
- cody-clark
|
||||
- jaredbhatti
|
||||
- kbarnard10
|
||||
- kbhawkey
|
||||
- makoscafee
|
||||
- onlydole
|
||||
- rajeshdeshpande02
|
||||
- sftim
|
||||
- mistyhacks
|
||||
- ryanmcginnis
|
||||
- steveperry-53
|
||||
- stewart-yu
|
||||
- tengqm
|
||||
- xiangpengzhao
|
||||
- tfogo
|
||||
- zacharysarah
|
||||
- zparnold
|
||||
sig-docs-es-owners: # Admins for Spanish content
|
||||
- raelga
|
||||
- alexbrand
|
||||
sig-docs-es-reviews: # PR reviews for Spanish content
|
||||
- raelga
|
||||
- alexbrand
|
||||
# glo-pena
|
||||
- electrocucaracha
|
||||
sig-docs-fr-owners: # Admins for French content
|
||||
- remyleone
|
||||
- perriea
|
||||
- rekcah78
|
||||
- yastij
|
||||
- smana
|
||||
- rbenzair
|
||||
- abuisine
|
||||
- erickhun
|
||||
- jygastaud
|
||||
- awkif
|
||||
- oussemos
|
||||
- anthonydahanne
|
||||
- feloy
|
||||
sig-docs-fr-reviews: # PR reviews for French content
|
||||
- remyleone
|
||||
- perriea
|
||||
- rekcah78
|
||||
- yastij
|
||||
- smana
|
||||
- rbenzair
|
||||
- abuisine
|
||||
- erickhun
|
||||
- jygastaud
|
||||
- awkif
|
||||
- oussemos
|
||||
- anthonydahanne
|
||||
- feloy
|
||||
sig-docs-hi-owners: # Admins for Hindi content
|
||||
- avidLearnerInProgress
|
||||
- daminisatya
|
||||
- mittalyashu
|
||||
sig-docs-hi-reviews: # PR reviews for Hindi content
|
||||
- avidLearnerInProgress
|
||||
- daminisatya
|
||||
- mittalyashu
|
||||
sig-docs-id-owners: # Admins for Indonesian content
|
||||
- girikuncoro
|
||||
- irvifa
|
||||
sig-docs-id-reviews: # PR reviews for Indonesian content
|
||||
- girikuncoro
|
||||
- irvifa
|
||||
- wahyuoi
|
||||
- phanama
|
||||
- danninov
|
||||
sig-docs-it-owners: # Admins for Italian content
|
||||
- fabriziopandini
|
||||
- Fale
|
||||
- mattiaperi
|
||||
- micheleberardi
|
||||
sig-docs-it-reviews: # PR reviews for Italian content
|
||||
- fabriziopandini
|
||||
- Fale
|
||||
- mattiaperi
|
||||
- micheleberardi
|
||||
sig-docs-ja-owners: # Admins for Japanese content
|
||||
# cstoku
|
||||
- inductor
|
||||
sig-docs-en-reviews: #Team: Documentation; GH: sig-docs-pr-reviews
|
||||
- jimangel
|
||||
- rajakavitha1
|
||||
- stewart-yu
|
||||
- xiangpengzhao
|
||||
- zhangxiaoyu
|
||||
sig-docs-ja-owners: #Team: Japanese docs localization; GH: sig-docs-ja-owners
|
||||
- cstoku
|
||||
- nasa9084
|
||||
sig-docs-ja-reviews: # PR reviews for Japanese content
|
||||
- bells17
|
||||
# cstoku
|
||||
- inductor
|
||||
- tnir
|
||||
- zacharysarah
|
||||
sig-docs-ja-reviews: #Team: Japanese docs PR reviews; GH:sig-docs-ja-reviews
|
||||
- cstoku
|
||||
- makocchi-git
|
||||
# MasayaAoyama
|
||||
- MasayaAoyama
|
||||
- nasa9084
|
||||
- oke-py
|
||||
sig-docs-ko-owners: # Admins for Korean content
|
||||
- tnir
|
||||
sig-docs-ko-owners: #Team Korean docs localization; GH: sig-docs-ko-owners
|
||||
- ClaudiaJKang
|
||||
- gochist
|
||||
- bradamant3 # Temporary for 1.13 release
|
||||
- jimangel # Temporary for 1.13 release
|
||||
- tfogo # Temporary for 1.13 release
|
||||
- zacharysarah
|
||||
sig-docs-ko-reviews: #Team Korean docs reviews; GH: sig-docs-ko-reviews
|
||||
- ClaudiaJKang
|
||||
- gochist
|
||||
- ianychoi
|
||||
- seokho-son
|
||||
- ysyukr
|
||||
- zacharysarah
|
||||
sig-docs-ko-reviews: # PR reviews for Korean content
|
||||
- ClaudiaJKang
|
||||
- gochist
|
||||
- ianychoi
|
||||
- seokho-son
|
||||
- ysyukr
|
||||
- pjhwa
|
||||
sig-docs-leads: # Website chairs and tech leads
|
||||
- jimangel
|
||||
- kbarnard10
|
||||
- kbhawkey
|
||||
- onlydole
|
||||
- sftim
|
||||
- zacharysarah
|
||||
sig-docs-zh-owners: # Admins for Chinese content
|
||||
sig-docs-zh-owners: #Team Chinese docs localization; GH: sig-docs-zh-owners
|
||||
- bradtopol
|
||||
- chenopis
|
||||
- chenrui333
|
||||
- dchen1107
|
||||
- haibinxie
|
||||
- hanjiayao
|
||||
- lichuqiang
|
||||
- lucperkins
|
||||
- markthink
|
||||
- SataQiu
|
||||
- tengqm
|
||||
- xiangpengzhao
|
||||
- xichengliudui
|
||||
- zacharysarah
|
||||
- zhangxiaoyu-zidif
|
||||
sig-docs-zh-reviews: # PR reviews for Chinese content
|
||||
- bradamant3 # Temporary for 1.13 release
|
||||
- jimangel # Temporary for 1.13 release
|
||||
- tfogo # Temporary for 1.13 release
|
||||
sig-docs-zh-reviews: #Team Chinese docs reviews; GH: sig-docs-zh-reviews
|
||||
- AdamDang
|
||||
- chenrui333
|
||||
- idealhack
|
||||
- markthink
|
||||
- Mr-Linus
|
||||
- SataQiu
|
||||
- tanjunchen
|
||||
- tengqm
|
||||
- xiangpengzhao
|
||||
- xichengliudui
|
||||
- zhangxiaoyu-zidif
|
||||
- pigletfly
|
||||
sig-docs-pt-owners: # Admins for Portuguese content
|
||||
- femrtnz
|
||||
- jcjesus
|
||||
- devlware
|
||||
- jhonmike
|
||||
sig-docs-pt-reviews: # PR reviews for Portugese content
|
||||
- femrtnz
|
||||
- jcjesus
|
||||
- devlware
|
||||
- jhonmike
|
||||
sig-docs-vi-owners: # Admins for Vietnamese content
|
||||
- huynguyennovem
|
||||
- ngtuna
|
||||
- truongnh1992
|
||||
sig-docs-vi-reviews: # PR reviews for Vietnamese content
|
||||
- huynguyennovem
|
||||
- ngtuna
|
||||
- truongnh1992
|
||||
sig-docs-ru-owners: # Admins for Russian content
|
||||
- msheldyakov
|
||||
- aisonaku
|
||||
- potapy4
|
||||
- dianaabv
|
||||
sig-docs-ru-reviews: # PR reviews for Russian content
|
||||
- Arhell
|
||||
- msheldyakov
|
||||
- aisonaku
|
||||
- potapy4
|
||||
- dianaabv
|
||||
sig-docs-pl-owners: # Admins for Polish content
|
||||
- mfilocha
|
||||
- nvtkaszpir
|
||||
sig-docs-pl-reviews: # PR reviews for Polish content
|
||||
- mfilocha
|
||||
- nvtkaszpir
|
||||
- kpucynski
|
||||
sig-docs-uk-owners: # Admins for Ukrainian content
|
||||
- anastyakulyk
|
||||
- butuzov
|
||||
- MaxymVlasov
|
||||
sig-docs-uk-reviews: # PR reviews for Ukrainian content
|
||||
- anastyakulyk
|
||||
- Arhell
|
||||
- butuzov
|
||||
sig-federation: #Team: Federation; e.g. Federated Clusters
|
||||
- csbell
|
||||
sig-gcp: #Google Cloud Platform; GH: sig-gcp-pr-reviews
|
||||
- abgworrall
|
||||
sig-instrumentation: #GH: sig-instrumentation-pr-reviews; e.g. metrics, logging, events
|
||||
- DirectXMan12
|
||||
- x13n
|
||||
- kawych
|
||||
- brancz
|
||||
- fabxc
|
||||
- loburm
|
||||
- piosz
|
||||
- fgrzadkowski
|
||||
sig-multicluster: #GH: sig-multicluster-pr-reviews; e.g. resiliency against availability zone outages; hybrid clouds; spanning multiple cloud providers; migration to public clouds
|
||||
- madhusudancs
|
||||
- marun
|
||||
- jianhuiz
|
||||
- shashidharatd
|
||||
- nikhiljindal
|
||||
- quinton-hoole
|
||||
- mwielgus
|
||||
- csbell
|
||||
sig-network: #Team: Network; GH: sig-network-pr-reviews; e.g. Ingress, Network Policies, Services
|
||||
- bowei
|
||||
- caseydavenport
|
||||
- danwinship
|
||||
- dcbw
|
||||
- dnardo
|
||||
- freehan
|
||||
- mrhohn
|
||||
- nicksardo
|
||||
- thockin
|
||||
sig-node: #Team: Node; GH: sig-node-pr-reviews; e.g. Containers, Docker, Images, OS images, Pods, Registries
|
||||
- Random-Liu
|
||||
- dashpole
|
||||
- dchen1107
|
||||
- derekwaynecarr
|
||||
- dims
|
||||
- feiskyer
|
||||
- mtaufen
|
||||
- ncdc
|
||||
- pmorie
|
||||
- resouer
|
||||
- sjpotter
|
||||
- tallclair
|
||||
- tmrts
|
||||
- vishh
|
||||
- yifan-gu
|
||||
- yujuhong
|
||||
sig-onprem: #On-premises; GH: sig-onprem-pr-reviews
|
||||
- zen
|
||||
- idvoretskyi
|
||||
- MaxymVlasov
|
||||
- Potapy4
|
||||
- pigmej
|
||||
- feiskyer
|
||||
- nebril
|
||||
sig-openstack: #GH: sig-openstack-pr-reviews
|
||||
- hogepodge
|
||||
- dklyle
|
||||
- rjmorse
|
||||
sig-pm: #aka Product Management
|
||||
- apsinha
|
||||
- idvoretskyi
|
||||
- calebamiles
|
||||
sig-product-management:
|
||||
- apsinha
|
||||
- idvoretskyi
|
||||
- calebamiles
|
||||
sig-release: #GH: sig-release-pr-reviews
|
||||
- calebamiles
|
||||
- enisoc
|
||||
- pwittrock
|
||||
sig-rktnetes:
|
||||
- calebamiles
|
||||
sig-scalability: #GH: sig-scalability-pr-reviews
|
||||
- jbeda
|
||||
- spiffxp
|
||||
- lavalamp
|
||||
- countspongebob
|
||||
sig-scheduling: #Team: Sharing; GH: sig-scheduling-pr-reviews; e.g. Scheduler
|
||||
- bsalamat
|
||||
- davidopp
|
||||
- jayunit100
|
||||
- k82cn
|
||||
- resouer
|
||||
- timothysc
|
||||
- wojtek-t
|
||||
sig-service-catalog: #GH: sig-service-catalog-pr-reviews; e.g. Service Broker
|
||||
- pmorie
|
||||
- jessfraz
|
||||
- pwittrock
|
||||
- droot
|
||||
- seans3
|
||||
sig-storage: #Team: Storage; GH: sig-storage-pr-reviews; e.g. Volumes
|
||||
- childsb
|
||||
- jsafrane
|
||||
- rootfs
|
||||
- saad-ali
|
||||
- matchstick
|
||||
- msau42
|
||||
sig-testing: #GH: sig-testing-pr-reviews
|
||||
- fejta
|
||||
- ixdy
|
||||
- rmmh
|
||||
- spiffxp
|
||||
- spxtr
|
||||
sig-ui: #User Interface
|
||||
- danielromlein
|
||||
- floreks
|
||||
sig-windows:
|
||||
- michmike
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
# Kubernetes Dokumentation
|
||||
|
||||
[](https://travis-ci.org/kubernetes/website)
|
||||
[](https://github.com/kubernetes/website/releases/latest)
|
||||
|
||||
Herzlich willkommen! Dieses Repository enthält alle Assets, die zur Erstellung der [Kubernetes-Website und Dokumentation](https://kubernetes.io/) erforderlich sind. Wir freuen uns sehr, dass Sie dazu beitragen wollen!
|
||||
|
||||
## Beiträge zur Dokumentation
|
||||
|
||||
Sie können auf die Schaltfläche **Fork** im oberen rechten Bereich des Bildschirms klicken, um eine Kopie dieses Repositorys in Ihrem GitHub-Konto zu erstellen. Diese Kopie wird als *Fork* bezeichnet. Nehmen Sie die gewünschten Änderungen an Ihrem Fork vor. Wenn Sie bereit sind, diese Änderungen an uns zu senden, gehen Sie zu Ihrem Fork und erstellen Sie eine neue Pull-Anforderung, um uns darüber zu informieren.
|
||||
|
||||
Sobald Ihre Pull-Anfrage erstellt wurde, übernimmt ein Rezensent von Kubernetes die Verantwortung für klares, umsetzbares Feedback. Als Eigentümer des Pull-Request **liegt es in Ihrer Verantwortung Ihren Pull-Reqest enstsprechend des Feedbacks, dass Sie vom Kubernetes-Reviewer erhalten haben abzuändern.** Beachten Sie auch, dass Sie am Ende mehr als einen Rezensenten von Kubernetes erhalten, der Ihnen Feedback gibt, oder dass Sie Rückmeldungen von einem Rezensenten von Kubernetes erhalten, der sich von demjenigen unterscheidet, der ursprünglich für das Feedback zugewiesen wurde. In einigen Fällen kann es vorkommen, dass einer Ihrer Prüfer bei Bedarf eine technische Überprüfung von einem [Kubernetes Tech-Reviewer](https://github.com/kubernetes/website/wiki/tech-reviewers) anfordert. Reviewer geben ihr Bestes, um zeitnah Feedback zu geben, die Antwortzeiten können jedoch je nach den Umständen variieren.
|
||||
|
||||
Weitere Informationen zum Beitrag zur Kubernetes-Dokumentation finden Sie unter:
|
||||
|
||||
* [Mitwirkung beginnen](https://kubernetes.io/docs/contribute/start/)
|
||||
* [Ihre Dokumentationsänderungen bereitstellen](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally)
|
||||
* [Seitenvorlagen verwenden](http://kubernetes.io/docs/contribute/style/page-content-types/)
|
||||
* [Dokumentationsstil-Handbuch](http://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [Übersetzung der Kubernetes-Dokumentation](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
## `README.md`'s Localizing Kubernetes Documentation
|
||||
|
||||
### Deutsch
|
||||
Die Betreuer der deutschen Lokalisierung erreichen Sie unter:
|
||||
|
||||
* Benedikt Rollik ([@bene2k1](https://github.com/bene2k1))
|
||||
* Max Körbächer ([@mkorbi](https://github.com/mkorbi))
|
||||
* [Slack Kanal](https://kubernetes.slack.com/messages/kubernetes-docs-de)
|
||||
|
||||
## Site lokal mit Docker ausführen
|
||||
|
||||
Um die Kubernetes-Website lokal laufen zu lassen, empfiehlt es sich, ein spezielles [Docker](https://docker.com) Image auszuführen, das den statischen Site-Generator [Hugo](https://gohugo.io) enthält.
|
||||
|
||||
> Unter Windows benötigen Sie einige weitere Tools, die Sie mit [Chocolatey](https://chocolatey.org) installieren können.
|
||||
`choco install make`
|
||||
|
||||
> Wenn Sie die Website lieber lokal ohne Docker ausführen möchten, finden Sie weitere Informationen unter [Website lokal mit Hugo ausführen](#Die-Site-lokal-mit-Hugo-ausführen).
|
||||
|
||||
Wenn Sie Docker [installiert](https://www.docker.com/get-started) haben, erstellen Sie das Docker-Image `kubernetes-hugo` lokal:
|
||||
|
||||
```bash
|
||||
make docker-image
|
||||
```
|
||||
|
||||
Nachdem das Image erstellt wurde, können Sie die Site lokal ausführen:
|
||||
|
||||
```bash
|
||||
make docker-serve
|
||||
```
|
||||
|
||||
Öffnen Sie Ihren Browser unter http://localhost:1313, um die Site anzuzeigen. Wenn Sie Änderungen an den Quelldateien vornehmen, aktualisiert Hugo die Site und erzwingt eine Browseraktualisierung.
|
||||
|
||||
## Die Site lokal mit Hugo ausführen
|
||||
|
||||
Hugo-Installationsanweisungen finden Sie in der [offiziellen Hugo-Dokumentation](https://gohugo.io/getting-started/installing/). Stellen Sie sicher, dass Sie die Hugo-Version installieren, die in der Umgebungsvariablen `HUGO_VERSION` in der Datei [`netlify.toml`](netlify.toml#L9) angegeben ist.
|
||||
|
||||
So führen Sie die Site lokal aus, wenn Sie Hugo installiert haben:
|
||||
|
||||
```bash
|
||||
make serve
|
||||
```
|
||||
|
||||
Dadurch wird der lokale Hugo-Server an Port 1313 gestartet. Öffnen Sie Ihren Browser unter http://localhost:1313, um die Site anzuzeigen. Wenn Sie Änderungen an den Quelldateien vornehmen, aktualisiert Hugo die Site und erzwingt eine Browseraktualisierung.
|
||||
|
||||
## Community, Diskussion, Beteiligung und Unterstützung
|
||||
|
||||
Erfahren Sie auf der [Community-Seite](http://kubernetes.io/community/) wie Sie mit der Kubernetes-Community interagieren können.
|
||||
|
||||
Sie können die Betreuer dieses Projekts unter folgender Adresse erreichen:
|
||||
|
||||
- [Slack](https://kubernetes.slack.com/messages/sig-docs)
|
||||
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
|
||||
### Verhaltensregeln
|
||||
|
||||
Die Teilnahme an der Kubernetes-Community unterliegt dem [Kubernetes-Verhaltenskodex](code-of-conduct.md).
|
||||
|
||||
## Vielen Dank!
|
||||
|
||||
Kubernetes lebt vom Community Engagement und wir freuen uns sehr über Ihre Beiträge zu unserer Website und unserer Dokumentation!
|
||||
@@ -1,76 +0,0 @@
|
||||
# La documentación de Kubernetes
|
||||
|
||||
[](https://travis-ci.org/kubernetes/website)
|
||||
[](https://github.com/kubernetes/website/releases/latest)
|
||||
|
||||
Bienvenido!
|
||||
Este repositorio contiene todos los recursos necesarios para construir el [sitio web de Kubernetes y su documentación](https://kubernetes.io/). ¡Estamos encantados de que quiera contribuir!
|
||||
|
||||
## Contribuyendo con la documentación
|
||||
|
||||
Puede hacer clic en el botón **Fork** situado en la esquina superior derecha de la pantalla para crear una copia de este repositorio en su cuenta de GitHub. A ese tipo de copia se le llama **Fork** (bifurcación) y le permite editar el contenido del repositorio en su copia personal. Realice los cambios que quiera en su **fork** y, cuando esté listo para enviarnos esos cambios, vaya a **fork** en repositorio en su GitHub y cree una nueva **pull request** para que tengamos constancia de la propuesta de cambios.
|
||||
|
||||
Una vez la **pull request** ha sido creada, un revisor de Kubernetes asumirá la responsabilidad de proporcionar comentarios claros y prácticos sobre como continuar. Como propietario de la PR, **es su responsabilidad modificar la pull request para abordar los comentarios proporcionados por el revisor de Kubernetes.** Tenga en cuenta que algunas veces puede terminar teniendo más de un revisor de Kubernetes participando en la revisión, por lo que es posible que reciba comentarios de más revisores a parte del asignado originalmente en la creación de la **pull request**. Además, en algunas ocasiones, es posible que uno de sus revisores solicite una revisión técnica por parte de un [revisor técnico de Kubernetes](https://github.com/kubernetes/website/wiki/Tech-reviewers) si lo considera necesario.
|
||||
|
||||
Los revisores harán todo lo posible para proporcionar toda la información necesaria para que la **pull request** siga adelante en un tiempo razonable, pero este tiempo de respuesta puede variar según las circunstancias.
|
||||
|
||||
Para obtener más información sobre cómo contribuir a la documentación de Kubernetes, puede consultar:
|
||||
|
||||
* [Empezando a contribuir](https://kubernetes.io/docs/contribute/start/)
|
||||
* [Visualizando sus cambios en su entorno local](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally)
|
||||
* [Utilizando las plantillas de las páginas](http://kubernetes.io/docs/contribute/style/page-content-types/)
|
||||
* [Guía de estilo de la documentación](http://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [Traduciendo la documentación de Kubernetes](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
## Levantando el sitio web kubernetes.io en su entorno local con Docker
|
||||
|
||||
El método recomendado para levantar una copia local del sitio web kubernetes.io es utilizando la imagen de [Docker](https://docker.com) que incluye el generador de sitios estáticos [Hugo](https://gohugo.io).
|
||||
|
||||
> Para Windows, algunas otras herramientas como Make son necesarias. Puede instalarlas utilizando el gestor [Chocolatey](https://chocolatey.org). `choco install make` o siguiendo las instrucciones de [Make for Windows](http://gnuwin32.sourceforge.net/packages/make.htm).
|
||||
|
||||
> Si prefiere levantar el sitio web sin utilizar **Docker**, puede seguir las instrucciones disponibles en la sección [Levantando kubernetes.io en local con Hugo](#levantando-kubernetesio-en-local-con-hugo).
|
||||
|
||||
Una vez tenga Docker [configurado en su máquina](https://www.docker.com/get-started), puede construir la imagen de Docker `kubernetes-hugo` localmente ejecutando el siguiente comando en la raíz del repositorio:
|
||||
|
||||
```bash
|
||||
make docker-image
|
||||
```
|
||||
|
||||
Una vez tenga la imagen construida, puede levantar el sitio web ejecutando:
|
||||
|
||||
```bash
|
||||
make docker-serve
|
||||
```
|
||||
|
||||
Abra su navegador y visite http://localhost:1313 para acceder a su copia local del sitio. A medida que vaya haciendo cambios en el código fuente, Hugo irá actualizando la página y forzará la actualización en el navegador.
|
||||
|
||||
## Levantando kubernetes.io en local con Hugo
|
||||
|
||||
Revise la [documentación oficial de Hugo](https://gohugo.io/getting-started/installing/) para obtener las instrucciones de instalación en su sistema operativo. Asegúrese de instalar la versión de Hugo especificada en la variable de entorno `HUGO_VERSION` del fichero [`netlify.toml`](netlify.toml#L9).
|
||||
|
||||
Para levantar el sitio localmente una vez Hugo está instalado en su sistema, puede ejecutar el siguiente comando:
|
||||
|
||||
```bash
|
||||
make serve
|
||||
```
|
||||
|
||||
Este comando levantará un servidor de Hugo en el puerto **1313** al que podrá acceder visitando http://localhost:1313 y dónde podrá visualizar su copia local del sitio web. A medida que vaya haciendo cambios en el código fuente, Hugo irá actualizando la página y forzará la actualización en el navegador.
|
||||
|
||||
## Comunidad, discusión, contribuir y soporte
|
||||
|
||||
Aprenda como participar en la comunidad de Kubernetes visitando la [página de comunidad](http://kubernetes.io/community/).
|
||||
|
||||
Puede ponerse en contacto con los mantenedores de este proyecto en:
|
||||
|
||||
- [Slack](https://kubernetes.slack.com/messages/sig-docs)
|
||||
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
|
||||
### Código de conducta
|
||||
|
||||
La participación en la comunidad de Kubernetes está regulada por el [Código de Conducta de Kubernetes](code-of-conduct.md).
|
||||
|
||||
## ¡Muchas gracias!
|
||||
|
||||
Kubernetes es posible gracias a la participación de la comunidad y la documentación es vital para facilitar el acceso al proyecto.
|
||||
|
||||
Agradecemos muchísimo sus contribuciones a nuestro sitio web y nuestra documentación.
|
||||
@@ -1,83 +0,0 @@
|
||||
# Documentation de Kubernetes
|
||||
|
||||
[](https://travis-ci.org/kubernetes/website)
|
||||
[](https://github.com/kubernetes/website/releases/latest)
|
||||
|
||||
Bienvenue !
|
||||
Ce référentiel contient toutes les informations nécessaires à la construction du site web et de la documentation de Kubernetes.
|
||||
Nous sommes très heureux que vous vouliez contribuer !
|
||||
|
||||
## Contribuer à la rédaction des docs
|
||||
|
||||
Vous pouvez cliquer sur le bouton **Fork** en haut à droite de l'écran pour créer une copie de ce dépôt dans votre compte GitHub.
|
||||
Cette copie s'appelle un *fork*.
|
||||
Faites tous les changements que vous voulez dans votre fork, et quand vous êtes prêt à nous envoyer ces changements, allez dans votre fork et créez une nouvelle pull request pour nous le faire savoir.
|
||||
|
||||
Une fois votre pull request créée, un examinateur de Kubernetes se chargera de vous fournir une revue claire et exploitable.
|
||||
En tant que propriétaire de la pull request, **il est de votre responsabilité de modifier votre pull request pour tenir compte des commentaires qui vous ont été fournis par l'examinateur de Kubernetes.**
|
||||
Notez également que vous pourriez vous retrouver avec plus d'un examinateur de Kubernetes pour vous fournir des commentaires ou vous pourriez finir par recevoir des commentaires d'un autre examinateur que celui qui vous a été initialement affecté pour vous fournir ces commentaires.
|
||||
De plus, dans certains cas, l'un de vos examinateur peut demander un examen technique à un [examinateur technique de Kubernetes](https://github.com/kubernetes/website/wiki/Tech-reviewers) au besoin.
|
||||
Les examinateurs feront de leur mieux pour fournir une revue rapidement, mais le temps de réponse peut varier selon les circonstances.
|
||||
|
||||
Pour plus d'informations sur la contribution à la documentation Kubernetes, voir :
|
||||
|
||||
* [Commencez à contribuer](https://kubernetes.io/docs/contribute/start/)
|
||||
* [Apperçu des modifications apportées à votre documentation](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally)
|
||||
* [Utilisation des modèles de page](https://kubernetes.io/docs/contribute/style/page-content-types/)
|
||||
* [Documentation Style Guide](http://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [Traduction de la documentation Kubernetes](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
## Exécuter le site localement en utilisant Docker
|
||||
|
||||
La façon recommandée d'exécuter le site web Kubernetes localement est d'utiliser une image spécialisée [Docker](https://docker.com) qui inclut le générateur de site statique [Hugo](https://gohugo.io).
|
||||
|
||||
> Si vous êtes sous Windows, vous aurez besoin de quelques outils supplémentaires que vous pouvez installer avec [Chocolatey](https://chocolatey.org). `choco install install make`
|
||||
|
||||
> Si vous préférez exécuter le site Web localement sans Docker, voir [Exécuter le site localement avec Hugo](#exécuter-le-site-localement-en-utilisant-hugo) ci-dessous.
|
||||
|
||||
Si vous avez Docker [up and running](https://www.docker.com/get-started), construisez l'image Docker `kubernetes-hugo' localement:
|
||||
|
||||
```bash
|
||||
make docker-image
|
||||
```
|
||||
|
||||
Une fois l'image construite, vous pouvez exécuter le site localement :
|
||||
|
||||
```bash
|
||||
make docker-serve
|
||||
```
|
||||
|
||||
Ouvrez votre navigateur à l'adresse: http://localhost:1313 pour voir le site.
|
||||
Lorsque vous apportez des modifications aux fichiers sources, Hugo met à jour le site et force le navigateur à rafraîchir la page.
|
||||
|
||||
## Exécuter le site localement en utilisant Hugo
|
||||
|
||||
Voir la [documentation officielle Hugo](https://gohugo.io/getting-started/installing/) pour les instructions d'installation Hugo.
|
||||
Assurez-vous d'installer la version Hugo spécifiée par la variable d'environnement `HUGO_VERSION` dans le fichier [`netlify.toml`](netlify.toml#L9).
|
||||
|
||||
Pour exécuter le site localement lorsque vous avez Hugo installé :
|
||||
|
||||
```bash
|
||||
make serve
|
||||
```
|
||||
|
||||
Le serveur Hugo local démarrera sur le port 1313.
|
||||
Ouvrez votre navigateur à l'adresse: http://localhost:1313 pour voir le site.
|
||||
Lorsque vous apportez des modifications aux fichiers sources, Hugo met à jour le site et force le navigateur à rafraîchir la page.
|
||||
|
||||
## Communauté, discussion, contribution et assistance
|
||||
|
||||
Apprenez comment vous engager avec la communauté Kubernetes sur la [page communauté](http://kubernetes.io/community/).
|
||||
|
||||
Vous pouvez joindre les responsables de ce projet à l'adresse :
|
||||
|
||||
- [Slack](https://kubernetes.slack.com/messages/sig-docs)
|
||||
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
|
||||
### Code de conduite
|
||||
|
||||
La participation à la communauté Kubernetes est régie par le [Code de conduite de Kubernetes](code-of-conduct.md).
|
||||
|
||||
## Merci !
|
||||
|
||||
Kubernetes prospère grâce à la participation de la communauté, et nous apprécions vraiment vos contributions à notre site et à notre documentation !
|
||||
@@ -1,84 +0,0 @@
|
||||
# कुबरनेट्स प्रलेखन
|
||||
|
||||
[](https://travis-ci.org/kubernetes/website)
|
||||
[](https://github.com/kubernetes/website/releases/latest)
|
||||
|
||||
स्वागत हे! इस रिपॉजिटरी में [कुबरनेट्स वेबसाइट और दस्तावेज](https://kubernetes.io/) बनाने के लिए आवश्यक सभी संपत्तियां हैं। हम बहुत खुश हैं कि आप योगदान करना चाहते हैं!
|
||||
|
||||
## डॉक्स में योगदान देना
|
||||
|
||||
आप अपने GitHub खाते में इस रिपॉजिटरी की एक copy बनाने के लिए स्क्रीन के ऊपरी-दाएँ क्षेत्र में **Fork** बटन पर क्लिक करें। इस copy को *Fork* कहा जाता है। अपने fork में कोई भी परिवर्तन करना चाहते हैं, और जब आप उन परिवर्तनों को हमारे पास भेजने के लिए तैयार हों, तो अपने fork पर जाएं और हमें इसके बारे में बताने के लिए एक नया pull request बनाएं।
|
||||
|
||||
एक बार जब आपका pull request बन जाता है, तो एक कुबरनेट्स समीक्षक स्पष्ट, कार्रवाई योग्य प्रतिक्रिया प्रदान करने की जिम्मेदारी लेगा। pull request के मालिक के रूप में, **यह आपकी जिम्मेदारी है कि आप कुबरनेट्स समीक्षक द्वारा प्रदान की गई प्रतिक्रिया को संबोधित करने के लिए अपने pull request को संशोधित करें।**
|
||||
|
||||
यह भी ध्यान दें कि आप एक से अधिक कुबरनेट्स समीक्षक आपको प्रतिक्रिया प्रदान कर सकते हैं या आप एक कुबरनेट्स समीक्षक से प्रतिक्रिया प्राप्त कर सकते हैं जो मूल रूप से आपको प्रतिक्रिया प्रदान करने के लिए दिए गए एक से भिन्न है। इसके अलावा, कुछ मामलों में, आपका एक समीक्षक जरूरत पड़ने पर [कुबेरनेट्स टेक समीक्षक](https://github.com/kubernetes/website/wiki/Tech-reviewers) से तकनीकी समीक्षा प्राप्त कर सकता है। समीक्षक समय पर प्रतिक्रिया देने के लिए पूरी कोशिश करेंगे, लेकिन परिस्थितियों के आधार पर प्रतिक्रिया समय अलग-अलग हो सकता है।
|
||||
|
||||
कुबरनेट्स प्रलेखन में योगदान देने के बारे में अधिक जानकारी के लिए, देखें:
|
||||
|
||||
* [योगदान देना शुरू करें](https://kubernetes.io/docs/contribute/start/)
|
||||
* [परिवर्तनों को अंतिम चरण में लेजाएं](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally)
|
||||
* [पेज टेम्पलेट](http://kubernetes.io/docs/contribute/style/page-templates/)
|
||||
* [प्रलेखन शैली गाइड](http://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [स्थानीयकरण कुबरनेट्स प्रलेखन](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
## `README.md`'s स्थानीयकरण कुबरनेट्स प्रलेखन
|
||||
|
||||
आप पर हिंदी स्थानीयकरण के maintainers तक पहुँच सकते हैं:
|
||||
|
||||
* Yashu Mittal ([Twitter](https://twitter.com/mittalyashu77), [GitHub](https://github.com/mittalyashu))
|
||||
* [Slack channel](https://kubernetes.slack.com/messages/kubernetes-docs-hi)
|
||||
|
||||
## स्थानीय रूप से डॉकर का उपयोग करके साइट चलाना
|
||||
|
||||
कुबरनेट्स वेबसाइट को स्थानीय रूप से चलाने के लिए अनुशंसित तरीका एक विशेष [डॉकर](https://docker.com) image को चलाना है, जिसमें [Hugo](https://gohugo.io) स्टेटिक साइट जनरेटर शामिल है।
|
||||
|
||||
> यदि आप विंडोज पर हैं, तो आपको कुछ और टूल्स की आवश्यकता होगी जिन्हें आप [Chocolatey](https://chocolatey.org) के साथ इंस्टॉल कर सकते हैं।
|
||||
|
||||
> यदि आप डॉकर के बिना स्थानीय रूप से वेबसाइट चलाना पसंद करते हैं, तो नीचे Hugo का उपयोग करके स्थानीय रूप से साइट चलाना देखें।
|
||||
|
||||
यदि आप डॉकर के बिना स्थानीय रूप से वेबसाइट चलाना पसंद करते हैं, तो नीचे दिए गए Hugo का उपयोग करके स्थानीय रूप से [साइट को चलाने](#hugo-का-उपयोग-करते-हुए-स्थानीय-रूप-से-साइट-चलाना) का तरीका देखें।
|
||||
|
||||
यदि आप [डॉकर](https://www.docker.com/get-started) चला रहे हैं, तो स्थानीय रूप से `कुबेरनेट्स-ह्यूगो` Docker image बनाएँ:
|
||||
|
||||
```bash
|
||||
make docker-image
|
||||
```
|
||||
|
||||
एक बार image बन जाने के बाद, आप साइट को स्थानीय रूप से चला सकते हैं:
|
||||
|
||||
```bash
|
||||
make docker-serve
|
||||
```
|
||||
|
||||
साइट देखने के लिए अपने browser को `http://localhost:1313` पर खोलें। जैसा कि आप source फ़ाइलों में परिवर्तन करते हैं, Hugo साइट को अपडेट करता है और browser को refresh करने पर मजबूर करता है।
|
||||
|
||||
## Hugo का उपयोग करते हुए स्थानीय रूप से साइट चलाना
|
||||
|
||||
Hugo निर्देशों के लिए [आधिकारिक Hugo प्रलेखन](https://gohugo.io/getting-started/installing/) देखें। [`Netlify.toml`](netlify.toml#L9) फ़ाइल में `HUGO_VERSION` environment variable द्वारा निर्दिष्ट Hugo version को install करना सुनिश्चित करें।
|
||||
|
||||
जब आप Hugo को install करते हैं तो स्थानीय रूप से साइट को चलाने के लिए:
|
||||
|
||||
```bash
|
||||
make serve
|
||||
```
|
||||
|
||||
यह पोर्ट `1313` पर Hugo सर्वर को शुरू करेगा। साइट देखने के लिए अपने browser को `http://localhost:1313` पर खोलें। जैसा कि आप source फ़ाइलों में परिवर्तन करते हैं, Hugo साइट को अपडेट करता है और एक browser को refresh करने पर मजबूर करता है।
|
||||
|
||||
## समुदाय, चर्चा, योगदान और समर्थन
|
||||
|
||||
[Community page](http://kubernetes.io/community/) पर कुबरनेट्स समुदाय के साथ जुड़ना सीखें।
|
||||
|
||||
आप इस परियोजना के स्थानीयकरण तक पहुँच सकते हैं:
|
||||
|
||||
- [Slack](https://kubernetes.slack.com/messages/sig-docs)
|
||||
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
|
||||
## कोड ओफ़ कंडक्ट
|
||||
|
||||
कुबरनेट्स समुदाय में भागीदारी [कुबरनेट्स कोड ओफ़ कंडक्ट](https://github.com/cncf/foundation/blob/master/code-of-conduct-languages/hi.md) द्वारा शासित है.
|
||||
|
||||
## धन्यवाद!
|
||||
|
||||
कुबरनेट्स सामुदायिक भागीदारी पर पनपती है, और हम वास्तव में हमारी साइट और हमारे प्रलेखन में आपके योगदान की सराहना करते हैं!
|
||||
|
||||
कुबरनेट्स आपकी भागीदारी पर निर्भर है, और हम हमारी साइट और प्रलेखन में आपके योगदान का मान करते हैं!
|
||||
@@ -1,72 +0,0 @@
|
||||
# Dokumentasi Kubernetes
|
||||
|
||||
[](https://travis-ci.org/kubernetes/website)
|
||||
[](https://github.com/kubernetes/website/releases/latest)
|
||||
|
||||
Selamat datang! Repositori ini merupakan wadah bagi semua komponen yang dibutuhkan untuk membuat [dokumentasi Kubernetes](https://kubernetes.io/). Kami merasa sangat senang apabila kamu berminat untuk menjadi kontributor!
|
||||
|
||||
## Kontribusi pada dokumentasi
|
||||
|
||||
Pertama, kamu dapat menekan tombol **Fork** yang berada pada bagian atas layar, untuk menyalin repositori pada akun Github-mu. Salinan ini disebut sebagai **fork**. Kamu dapat menambahkan konten pada **fork** yang kamu miliki, setelah kamu merasa cukup untuk menambahkan konten yang kamu miliki dan ingin memberikan konten tersebut pada kami, kamu dapat melihat **fork** yang telah kamu buat dan membuat **pull request** untuk memberi tahu kami bahwa kamu ingin menambahkan konten yang telah kamu buat.
|
||||
|
||||
Setelah kamu membuat sebuah **pull request**, seorang **reviewer** akan memberikan masukan terhadap konten yang kamu sediakan serta beberapa hal yang dapat kamu lakukan apabila perbaikan diperlukan terhadap konten yang telah kamu sediakan. Sebagai seorang yang membuat **pull request**, **sudah menjadi kewajiban kamu untuk melakukan modifikasi terhadap konten yang kamu berikan sesuai dengan masukan yang diberikan oleh seorang reviewer Kubernetes**. Perlu kamu ketahui bahwa kamu dapat saja memiliki lebih dari satu orang **reviewer Kubernetes** atau dalam kasus kamu bisa saja mendapatkan **reviewer Kubernetes** yang berbeda dengan **reviewer Kubernetes** awal yang ditugaskan untuk memberikan masukan terhadap konten yang kamu sediakan. Selain itu, seorang **reviewer Kubernetes** bisa saja meminta masukan teknis dari [reviewer teknis Kubernetes](https://github.com/kubernetes/website/wiki/Tech-reviewers) jika diperlukan.
|
||||
|
||||
Untuk informasi lebih lanjut mengenai tata cara melakukan kontribusi, kamu dapat melihat tautan di bawah ini:
|
||||
|
||||
* [Petunjuk Melakukan Kontribusi](https://kubernetes.io/docs/contribute/start/)
|
||||
* [Melakukan Tahap Staging pada Konten Dokumentasi yang telah Kamu Sediakan](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally)
|
||||
* [Petunjuk Menggunakan Page Templates](http://kubernetes.io/docs/contribute/style/page-templates/)
|
||||
* [Petunjuk untuk Documentation Style](http://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [Petunjuk untuk Melakukan Lokalisasi Dokumentasi Kubernetes](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
## Menjalankan Dokumentasi Kubernetes pada Mesin Lokal Kamu
|
||||
|
||||
Petunjuk yang disarankan untuk menjalankan Dokumentasi Kubernetes pada mesin lokal kamus adalah dengan menggunakan [Docker](https://docker.com) **image** yang memiliki **package** [Hugo](https://gohugo.io), **Hugo** sendiri merupakan generator website statis.
|
||||
|
||||
> Jika kamu menggunakan Windows, kamu mungkin membutuhkan beberapa langkah tambahan untuk melakukan instalasi perangkat lunak yang dibutuhkan. Instalasi ini dapat dilakukan dengan menggunakan [Chocolatey](https://chocolatey.org). `choco install make`
|
||||
|
||||
> Jika kamu ingin menjalankan **website** tanpa menggunakan **Docker**, kamu dapat melihat tautan berikut [Petunjuk untuk menjalankan website pada mesin lokal dengan menggunakan Hugo](#petunjuk-untuk-menjalankan-website-pada-mesin-lokal-dengan-menggunakan-hugo) di bagian bawah.
|
||||
|
||||
Jika kamu sudah memiliki **Docker** [yang sudah dapat digunakan](https://www.docker.com/get-started), kamu dapat melakukan **build** `kubernetes-hugo` **Docker image** secara lokal:
|
||||
|
||||
```bash
|
||||
make docker-image
|
||||
```
|
||||
|
||||
Setelah **image** berhasil di-**build**, kamu dapat menjalankan website tersebut pada mesin lokal-mu:
|
||||
|
||||
```bash
|
||||
make docker-serve
|
||||
```
|
||||
|
||||
Buka **browser** kamu ke http://localhost:1313 untuk melihat laman dokumentasi. Selama kamu melakukan penambahan konten, **Hugo** akan secara otomatis melakukan perubahan terhadap laman dokumentasi apabila **browser** melakukan proses **refresh**.
|
||||
|
||||
|
||||
## Petunjuk untuk menjalankan website pada mesin lokal dengan menggunakan Hugo
|
||||
|
||||
Kamu dapat melihat [dokumentasi resmi Hugo](https://gohugo.io/getting-started/installing/) untuk mengetahui langkah yang diperlukan untuk melakukan instalasi **Hugo**. Pastikan kamu melakukan instalasi versi **Hugo** sesuai dengan versi yang tersedia pada **environment variable** `HUGO_VERSION` pada **file**[`netlify.toml`](netlify.toml#L9).
|
||||
|
||||
Untuk menjalankan laman pada mesin lokal setelah instalasi **Hugo**, kamu dapat menjalankan perintah berikut:
|
||||
|
||||
```bash
|
||||
make serve
|
||||
```
|
||||
|
||||
Buka **browser** kamu ke http://localhost:1313 untuk melihat laman dokumentasi. Selama kamu melakukan penambahan konten, **Hugo** akan secara otomatis melakukan perubahan terhadap laman dokumentasi apabila **browser** melakukan proses **refresh**.
|
||||
|
||||
## Komunitas, Diskusi, Kontribusi, dan Bantuan
|
||||
|
||||
Kamu dapat belajar bagaimana tata cara untuk ikut terlibat dalam komunitas Kubernetes melalui [laman komunitas](http://kubernetes.io/community/).
|
||||
|
||||
Kamu dapat berinteraksi dengan **maintainers** project ini melalui:
|
||||
|
||||
- [Slack](https://kubernetes.slack.com/messages/sig-docs)
|
||||
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
|
||||
### Etika dalam Berkontribusi
|
||||
|
||||
Partisipasi dalam komunitas Kubernetes diatur dalam [Etika dalam Berkontribusi pada Kubernetes](code-of-conduct.md).
|
||||
|
||||
## Terima Kasih!
|
||||
|
||||
Kubernetes sangat menjunjung tinggi partisipasi dari komunitas, dan kami sangat mengapresiasi kontribusi kamu pada laman dan dokumentasi kami!
|
||||
@@ -1,71 +0,0 @@
|
||||
# La documentazione di Kubernetes
|
||||
|
||||
[](https://travis-ci.org/kubernetes/website)
|
||||
[](https://github.com/kubernetes/website/releases/latest)
|
||||
|
||||
Benvenuto! Questo repository contiene tutte le informazioni necessarie per creare la [documentazione e il sito web di Kubernetes](https://kubernetes.io/). Siamo onorati che tu voglia contribuire!
|
||||
|
||||
## Come contribuire alla documentazione
|
||||
|
||||
Puoi premere il pulsante **Fork** in alto nella parte destra dello schermo per creare una copia di questo repository sotto la tua utenza di GitHub. Questa copia è chiamata un *fork*. Puoi fare tutte le modifiche che vuoi nel tuo fork, e quando sei pronto a mandarci i cambiamenti, vai sulla pagina del tuo fork e crea una nuova pull request per farcelo sapere.
|
||||
|
||||
Una volta che hai creato la pull request, un reviewer (revisore) Kubernetes la prenderà in carico per fornire un feedback chiaro e concretamente attuabile. Come owner della pull request, **è tua responsabilità modificare la tua pull request per rispondere al feedback che ti è stato fornito dal reviewer Kubernetes**. Inoltre, tieni presente che potresti ricevere feedback da più di un Reviewer di Kubernetes, incluse quindi persone diverse da quella che ti ha fornito il primo feedback. In alcuni casi, uno dei tuoi reviewer potrebbe richiedere una revisione tecnica da un [technical reviewer di Kubernetes](https://github.com/kubernetes/website/wiki/Tech-reviewers) quando necessario. I reviewer faranno del loro meglio per fornire feedback in modo tempestivo, ma i tempi di risposta possono variare in base alle circostanze.
|
||||
|
||||
Per maggiori informazioni su come contribuire alla documentazione Kubernetes, vedi:
|
||||
|
||||
* [Cominciare a contribuire](https://kubernetes.io/docs/contribute/start/)
|
||||
* [Vedere le modifiche localmente](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally)
|
||||
* [Utilizzare i template delle pagine](http://kubernetes.io/docs/contribute/style/page-templates/)
|
||||
* [Guida Stilistica per la documentazione di Kubernetes](http://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [Tradurre la documentazione di Kubernetes](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
## Eseguire il sito Web localmente usando Docker
|
||||
|
||||
Il modo consigliato per eseguire localmente il sito Web Kubernetes prevede l'utilizzo di un'immagine [Docker](https://docker.com) inclusa nel sito e configurata con tutti i software necessari, a partire dal generatore di siti web statici [Hugo](https://gohugo.io).
|
||||
|
||||
> Se stai utilizzando Windows, avrai bisogno di alcuni strumenti aggiuntivi che puoi installare con [Chocolatey](https://chocolatey.org). `choco install make`
|
||||
|
||||
> Se preferisci eseguire il sito Web localmente senza Docker, vedi [Eseguire il sito Web localmente utilizzando Hugo](#eseguire-il-sito-web-localmente-utilizzando-hugo) di seguito.
|
||||
|
||||
Se hai Docker [attivo e funzionante](https://www.docker.com/get-started), crea l'immagine Docker `kubernetes-hugo` localmente:
|
||||
|
||||
```bash
|
||||
make docker-image
|
||||
```
|
||||
|
||||
Dopo aver creato l'immagine, è possibile eseguire il sito Web localmente:
|
||||
|
||||
```bash
|
||||
make docker-serve
|
||||
```
|
||||
|
||||
Apri il tuo browser su http://localhost:1313 per visualizzare il sito Web. Mentre modifichi i file sorgenti, Hugo aggiorna automaticamente il sito Web e forza un aggiornamento della pagina visualizzata nel browser.
|
||||
|
||||
## Eseguire il sito Web localmente utilizzando Hugo
|
||||
|
||||
Vedi la [documentazione ufficiale di Hugo](https://gohugo.io/getting-started/installing/) per le istruzioni di installazione di Hugo. Assicurati di installare esattamente la versione di Hugo specificata dalla variabile d'ambiente `HUGO_VERSION` nel file [`netlify.toml`](netlify.toml#L9).
|
||||
|
||||
Per eseguire il sito Web localmente dopo aver installato Hugo:
|
||||
|
||||
```bash
|
||||
make serve
|
||||
```
|
||||
|
||||
Questo comando avvierà il server Hugo locale sulla porta 1313. Apri il tuo browser su http://localhost:1313 per visualizzare il sito Web. Mentre apporti modifiche ai file di origine, Hugo aggiorna il sito Web e forza un aggiornamento del browser.
|
||||
|
||||
## Community, discussioni, contribuire e supporto
|
||||
|
||||
Scopri come interagire con la community di Kubernetes nella [pagina della community](http://kubernetes.io/community/).
|
||||
|
||||
Puoi contattare i maintainers di questo progetto su:
|
||||
|
||||
- [Slack](https://kubernetes.slack.com/messages/sig-docs)
|
||||
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
|
||||
### Codice di condotta
|
||||
|
||||
La partecipazione alla comunità Kubernetes è regolata dal [Codice di condotta di Kubernetes](code-of-conduct.md).
|
||||
|
||||
## Grazie!
|
||||
|
||||
Kubernetes prospera grazie alla partecipazione della comunity e apprezziamo i tuoi contributi al nostro sito Web e alla nostra documentazione!
|
||||
@@ -1,79 +0,0 @@
|
||||
# Kubernetesのドキュメント
|
||||
|
||||
[](https://app.netlify.com/sites/kubernetes-io-master-staging/deploys) [](https://github.com/kubernetes/website/releases/latest)
|
||||
|
||||
このリポジトリには、[KubernetesのWebサイトとドキュメント](https://kubernetes.io/)をビルドするために必要な全アセットが格納されています。貢献に興味を持っていただきありがとうございます!
|
||||
|
||||
## Hugoを使ってローカル環境でWebサイトを動かす
|
||||
|
||||
Hugoのインストール方法については[Hugoの公式ドキュメント](https://gohugo.io/getting-started/installing/)をご覧ください。このとき、[`netlify.toml`](netlify.toml#L10)ファイルに記述されている`HUGO_VERSION`と同じバージョンをインストールするようにしてください。
|
||||
|
||||
Hugoがインストールできたら、以下のコマンドを使ってWebサイトをローカル上で動かすことができます:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/kubernetes/website.git
|
||||
cd website
|
||||
git submodule update --init --recursive --depth 1
|
||||
```
|
||||
|
||||
**注意:** Kubernetesのウェブサイトでは[DocsyというHugoのテーマ](https://github.com/google/docsy#readme)を使用しています。リポジトリを更新していない場合、 `website/themes/docsy`ディレクトリは空です。 このサイトはテーマのローカルコピーなしでは構築できません。
|
||||
|
||||
テーマをアップデートするには以下のコマンドを実行します:
|
||||
|
||||
```bash
|
||||
git submodule update --init --recursive --depth 1
|
||||
```
|
||||
|
||||
サイトをローカルでビルドしてテストするには以下のコマンドを実行します:
|
||||
|
||||
```bash
|
||||
hugo server --buildFuture
|
||||
```
|
||||
|
||||
これで、Hugoのサーバーが1313番ポートを使って開始します。お使いのブラウザにて http://localhost:1313 にアクセスしてください。リポジトリ内のソースファイルに変更を加えると、HugoがWebサイトの内容を更新してブラウザに反映します。
|
||||
|
||||
## SIG Docsに参加する
|
||||
|
||||
[コミュニティのページ](https://github.com/kubernetes/community/tree/master/sig-docs#meetings)をご覧になることで、SIG Docs Kubernetesコミュニティとの関わり方を学ぶことができます。
|
||||
|
||||
本プロジェクトのメンテナーには以下の方法で連絡することができます:
|
||||
|
||||
- [Slack](https://kubernetes.slack.com/messages/kubernetes-docs-ja)
|
||||
- [メーリングリスト](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
|
||||
## ドキュメントに貢献する
|
||||
|
||||
GitHubの画面右上にある**Fork**ボタンをクリックすると、お使いのGitHubアカウントに紐付いた本リポジトリのコピーが作成され、このコピーのことを*フォーク*と呼びます。フォークリポジトリの中ではお好きなように変更を加えていただいて構いません。加えた変更をこのリポジトリに追加したい任意のタイミングにて、フォークリポジトリからPull Reqeustを作成してください。
|
||||
|
||||
Pull Requestが作成されると、レビュー担当者が責任を持って明確かつ実用的なフィードバックを返します。Pull Requestの所有者は作成者であるため、**ご自身で作成したPull Requestを編集し、フィードバックに対応するのはご自身の役目です。**
|
||||
|
||||
また、状況によっては2人以上のレビュアーからフィードバックが返されたり、アサインされていないレビュー担当者からのフィードバックが来ることがある点もご注意ください。
|
||||
|
||||
さらに、特定のケースにおいては、レビュー担当者がKubernetesの技術的なレビュアーに対してレビューを依頼することもあります。レビュー担当者はタイムリーにフィードバックを提供するために最善を尽くしますが、応答時間は状況に応じて異なる場合があります。
|
||||
|
||||
Kubernetesのドキュメントへの貢献に関する詳細については以下のページをご覧ください:
|
||||
|
||||
* [Kubernetesのドキュメントへの貢献](https://kubernetes.io/ja/docs/contribute/)
|
||||
* [ページコンテントタイプ](https://kubernetes.io/docs/contribute/style/page-content-types/)
|
||||
* [ドキュメントのスタイルガイド](https://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [Kubernetesドキュメントの翻訳方法](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
## 翻訳された`README.md`一覧
|
||||
|
||||
| Language | Language |
|
||||
|---|---|
|
||||
|[中国語](README-zh.md)|[韓国語](README-ko.md)|
|
||||
|[フランス語](README-fr.md)|[ポーランド語](README-pl.md)|
|
||||
|[ドイツ語](README-de.md)|[ポルトガル語](README-pt.md)|
|
||||
|[ヒンディー語](README-hi.md)|[ロシア語](README-ru.md)|
|
||||
|[インドネシア語](README-id.md)|[スペイン語](README-es.md)|
|
||||
|[イタリア語](README-it.md)|[ウクライナ語](README-uk.md)|
|
||||
|[日本語](README-ja.md)|[ベトナム語](README-vi.md)|
|
||||
|
||||
### 行動規範
|
||||
|
||||
Kubernetesコミュニティへの参加については、[CNCFの行動規範](https://github.com/cncf/foundation/blob/master/code-of-conduct.md)によって管理されています。
|
||||
|
||||
## ありがとうございます!
|
||||
|
||||
Kubernetesはコミュニティの参加によって成長しています。Webサイトおよびドキュメンテーションへの皆さんの貢献に感謝します!
|
||||
@@ -1,69 +0,0 @@
|
||||
# 쿠버네티스 문서화
|
||||
|
||||
[](https://travis-ci.org/kubernetes/website)
|
||||
[](https://github.com/kubernetes/website/releases/latest)
|
||||
|
||||
환영합니다! 이 저장소는 쿠버네티스 웹사이트 및 문서화를 만드는 데 필요로 하는 모든 asset에 대한 공간을 제공합니다. 여러분이 기여를 원한다는 사실에 매우 기쁩니다!
|
||||
|
||||
## 문서에 기여하기
|
||||
|
||||
이 저장소에 대한 복제본을 여러분의 GitHub 계정에 생성하기 위해 화면 오른쪽 위 영역에 있는 **Fork** 버튼을 클릭 가능합니다. 이 복제본은 *fork* 라고 부릅니다. 여러분의 fork에서 원하는 임의의 변경 사항을 만들고, 해당 변경 사항을 보낼 준비가 되었다면, 여러분의 fork로 이동하여 새로운 풀 리퀘스트를 만들어 우리에게 알려주시기 바랍니다.
|
||||
|
||||
여러분의 풀 리퀘스트가 생성된 이후에는, 쿠버네티스 리뷰어가 명료하고 실행 가능한 피드백을 제공하는 책임을 담당할 것입니다. 풀 리퀘스트의 오너로서, **쿠버네티스 리뷰어로부터 제공받은 피드백을 수용하기 위해 풀 리퀘스트를 수정하는 것은 여러분의 책임입니다.** 또한, 참고로 한 명 이상의 쿠버네티스 리뷰어가 여러분에게 피드백을 제공하는 상황에 처하거나, 또는 여러분에게 피드백을 제공하기로 원래 할당된 사람이 아닌 다른 쿠버네티스 리뷰어로부터 피드백을 받는 상황에 처할 수도 있습니다. 그뿐만 아니라, 몇몇 상황에서는, 필요에 따라 리뷰어 중 한 명이 [쿠버네티스 기술 리뷰어](https://github.com/kubernetes/website/wiki/Tech-reviewers)로부터의 기술 리뷰를 요청할지도 모릅니다. 리뷰어는 제시간에 피드백을 제공하기 위해 최선을 다할 것이지만, 응답 시간은 상황에 따라 달라질 수도 있습니다.
|
||||
|
||||
쿠버네티스 문서화에 기여하기와 관련된 보다 자세한 정보는, 다음을 살펴봅니다:
|
||||
|
||||
* [기여 시작하기](https://kubernetes.io/docs/contribute/start/)
|
||||
* [문서화 변경 사항 스테이징하기](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally)
|
||||
* [페이지 템플릿 사용하기](http://kubernetes.io/docs/contribute/style/page-templates/)
|
||||
* [문서화 스타일 가이드](http://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [쿠버네티스 문서화 로컬라이징](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
## `README.md`에 대한 쿠버네티스 문서화 번역
|
||||
|
||||
### 한국어
|
||||
|
||||
`README.md` 번역 및 한국어 기여자를 위한 보다 자세한 가이드를 [한국어 README](README-ko.md) 페이지 혹은 [쿠버네티스 문서 한글화 가이드](https://kubernetes.io/ko/docs/contribute/localization_ko/)에서 살펴봅니다.
|
||||
|
||||
한국어 번역 메인테이너에게 다음을 통해 연락 가능합니다.
|
||||
|
||||
* 이덕준 ([GitHub - @gochist](https://github.com/gochist))
|
||||
* [Slack channel](https://kubernetes.slack.com/messages/kubernetes-docs-ko)
|
||||
|
||||
## 도커를 사용하여 사이트를 로컬에서 실행하기
|
||||
|
||||
쿠버네티스 웹사이트를 로컬에서 실행하기 위한 추천하는 방식은 [Hugo](https://gohugo.io) 정적 사이트 생성기를 포함하는 특별한 [도커](https://docker.com) 이미지를 실행하는 것입니다.
|
||||
|
||||
> Windows에서 실행하는 경우, [Chocolatey](https://chocolatey.org)로 설치할 수 있는 명명 추가 도구를 필요로 할 것입니다. `choco install make`
|
||||
|
||||
> 도커를 사용하지 않고 웹사이트를 로컬에서 실행하기를 선호하는 경우에는, 아래 [Hugo를 사용한 로컬 사이트 실행하기](#hugo를-사용한-로컬-사이트-실행하기)를 살펴봅니다.
|
||||
|
||||
도커 [동작 및 실행](https://www.docker.com/get-started) 환경이 있는 경우, 로컬에서 `kubernetes-hugo` 도커 이미지를 빌드 합니다:
|
||||
|
||||
```bash
|
||||
make docker-image
|
||||
```
|
||||
|
||||
해당 이미지가 빌드 된 이후, 사이트를 로컬에서 실행할 수 있습니다:
|
||||
|
||||
```bash
|
||||
make docker-serve
|
||||
```
|
||||
|
||||
브라우저에서 http://localhost:1313 를 열어 사이트를 살펴봅니다. 소스 파일에 변경 사항이 있을 때, Hugo는 사이트를 업데이트하고 브라우저를 강제로 새로고침합니다.
|
||||
|
||||
## Hugo를 사용한 로컬 사이트 실행하기
|
||||
|
||||
Hugo 설치 안내를 위해서는 [공식 Hugo 문서화](https://gohugo.io/getting-started/installing/)를 살펴봅니다. [`netlify.toml`](netlify.toml#L9) 파일에 있는 `HUGO_VERSION` 환경 변수에서 지정된 Hugo 버전이 설치되었는지를 확인합니다.
|
||||
|
||||
Hugo가 설치되었을 때 로컬에서 사이트를 실행하기 위해 (다음을 실행합니다):
|
||||
|
||||
```bash
|
||||
make serve
|
||||
```
|
||||
|
||||
이를 통해 로컬 Hugo 서버를 1313번 포트에 시작합니다. 브라우저에서 http://localhost:1313 를 열어 사이트를 살펴봅니다. 소스 파일에 변경 사항이 있을 때, Hugo는 사이트를 업데이트하고 브라우저를 강제로 새로고침합니다.
|
||||
|
||||
## 감사합니다!
|
||||
|
||||
쿠버네티스는 커뮤니티 참여와 함께 생존하며, 우리는 사이트 및 문서화에 대한 여러분의 컨트리뷰션에 대해 정말 감사하게 생각합니다!
|
||||
@@ -1,90 +0,0 @@
|
||||
# Dokumentacja projektu Kubernetes
|
||||
|
||||
[](https://travis-ci.org/kubernetes/website)
|
||||
[](https://github.com/kubernetes/website/releases/latest)
|
||||
|
||||
Witamy!
|
||||
|
||||
W tym repozytorium znajdziesz wszystko, czego potrzebujesz do zbudowania [strony internetowej Kubernetesa wraz z dokumentacją](https://kubernetes.io/). Bardzo nam miło, że chcesz wziąć udział w jej współtworzeniu!
|
||||
|
||||
## Twój wkład w dokumentację
|
||||
|
||||
Możesz kliknąć w przycisk **Fork** w prawym górnym rogu ekranu, aby stworzyć kopię tego repozytorium na swoim koncie GitHub. Taki rodzaj kopii (odgałęzienia) nazywa się *fork*. Zmieniaj w nim, co chcesz, a kiedy będziesz już gotowy/a przesłać te zmiany do nas, przejdź do swojej kopii i stwórz nowy *pull request*, abyśmy zostali o tym poinformowani.
|
||||
|
||||
Po stworzeniu *pull request*, jeden z recenzentów projektu Kubernetes podejmie się przekazania jasnych wskazówek pozwalających podjąć następne działania. Na Tobie, jako właścicielu *pull requesta*, **spoczywa odpowiedzialność za wprowadzenie poprawek zgodnie z uwagami recenzenta.** Może też się zdarzyć, że swoje uwagi zgłosi więcej niż jeden recenzent, lub że recenzję będzie robił ktoś inny, niż ten, kto został przydzielony na początku. W niektórych przypadkach, jeśli zajdzie taka potrzeba, recenzent może poprosić dodatkowo o recenzję jednego z [recenzentów technicznych](https://github.com/kubernetes/website/wiki/Tech-reviewers). Recenzenci zrobią wszystko, aby odpowiedzieć sprawnie, ale konkretny czas odpowiedzi zależy od wielu czynników.
|
||||
|
||||
Więcej informacji na temat współpracy przy tworzeniu dokumentacji znajdziesz na stronach:
|
||||
|
||||
* [Jak rozpocząć współpracę](https://kubernetes.io/docs/contribute/start/)
|
||||
* [Podgląd wprowadzanych zmian w dokumentacji](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally)
|
||||
* [Szablony stron](http://kubernetes.io/docs/contribute/style/page-templates/)
|
||||
* [Styl pisania dokumentacji](http://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [Lokalizacja dokumentacji Kubernetes](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
## Różne wersje językowe `README.md`
|
||||
|
||||
| | |
|
||||
|----------------------------------------|----------------------------------------|
|
||||
| [README po angielsku](README.md) | [README po francusku](README-fr.md) |
|
||||
| [README po koreańsku](README-ko.md) | [README po niemiecku](README-de.md) |
|
||||
| [README po portugalsku](README-pt.md) | [README w hindi](README-hi.md) |
|
||||
| [README po hiszpańsku](README-es.md) | [README po indonezyjsku](README-id.md) |
|
||||
| [README po chińsku](README-zh.md) | [README po japońsku](README-ja.md) |
|
||||
| [README po wietnamsku](README-vi.md) | [README po rosyjsku](README-ru.md) |
|
||||
| [README po włosku](README-it.md) | [README po ukraińsku](README-uk.md) |
|
||||
| | |
|
||||
|
||||
## Jak uruchomić lokalną kopię strony przy pomocy Dockera?
|
||||
|
||||
Zalecaną metodą uruchomienia serwisu internetowego Kubernetesa lokalnie jest użycie specjalnego obrazu [Dockera](https://docker.com), który zawiera generator stron statycznych [Hugo](https://gohugo.io).
|
||||
|
||||
> Użytkownicy Windows będą potrzebowali dodatkowych narzędzi, które mogą zainstalować przy pomocy [Chocolatey](https://chocolatey.org).
|
||||
|
||||
```bash
|
||||
choco install make
|
||||
```
|
||||
|
||||
> Jeśli wolisz uruchomić serwis lokalnie bez Dockera, przeczytaj [jak uruchomić serwis lokalnie przy pomocy Hugo](#jak-uruchomić-lokalną-kopię-strony-przy-pomocy-hugo) poniżej.
|
||||
|
||||
Jeśli [zainstalowałeś i uruchomiłeś](https://www.docker.com/get-started) już Dockera, zbuduj obraz `kubernetes-hugo` lokalnie:
|
||||
|
||||
```bash
|
||||
make docker-image
|
||||
```
|
||||
|
||||
Po zbudowaniu obrazu, możesz uruchomić serwis lokalnie:
|
||||
|
||||
```bash
|
||||
make docker-serve
|
||||
```
|
||||
|
||||
Aby obejrzeć zawartość serwisu otwórz w przeglądarce adres http://localhost:1313. Po każdej zmianie plików źródłowych, Hugo automatycznie aktualizuje stronę i odświeża jej widok w przeglądarce.
|
||||
|
||||
## Jak uruchomić lokalną kopię strony przy pomocy Hugo?
|
||||
|
||||
Zajrzyj do [oficjalnej dokumentacji Hugo](https://gohugo.io/getting-started/installing/) po instrukcję instalacji. Upewnij się, że instalujesz rozszerzoną wersję Hugo, określoną przez zmienną środowiskową `HUGO_VERSION` w pliku [`netlify.toml`](netlify.toml#L9).
|
||||
|
||||
Aby uruchomić serwis lokalnie po instalacji Hugo, napisz:
|
||||
|
||||
```bash
|
||||
make serve
|
||||
```
|
||||
|
||||
Zostanie uruchomiony lokalny serwer Hugo na porcie 1313. Otwórz w przeglądarce adres http://localhost:1313, aby obejrzeć zawartość serwisu. Po każdej zmianie plików źródłowych, Hugo automatycznie aktualizuje stronę i odświeża jej widok w przeglądarce.
|
||||
|
||||
## Społeczność, listy dyskusyjne, uczestnictwo i wsparcie
|
||||
|
||||
Zajrzyj na stronę [społeczności](http://kubernetes.io/community/), aby dowiedzieć się, jak możesz zaangażować się w jej działania.
|
||||
|
||||
Możesz kontaktować się z gospodarzami projektu za pomocą:
|
||||
|
||||
* [Komunikatora Slack](https://kubernetes.slack.com/messages/sig-docs)
|
||||
* [List dyskusyjnych](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
|
||||
### Zasady postępowania
|
||||
|
||||
Udział w działaniach społeczności Kubernetes jest regulowany przez [Kodeks postępowania](code-of-conduct.md).
|
||||
|
||||
## Dziękujemy!
|
||||
|
||||
Kubernetes rozkwita dzięki zaangażowaniu społeczności — doceniamy twój wkład w tworzenie naszego serwisu i dokumentacji!
|
||||
@@ -1,76 +0,0 @@
|
||||
# A documentação do Kubernetes
|
||||
|
||||
[](https://travis-ci.org/kubernetes/website)
|
||||
[](https://github.com/kubernetes/website/releases/latest)
|
||||
|
||||
Bem vindos! Este repositório abriga todos os recursos necessários para criar o [site e documentação do Kubernetes](https://kubernetes.io/). Estamos muito satisfeitos por você querer contribuir!
|
||||
|
||||
## Contribuindo com os documentos
|
||||
|
||||
Você pode clicar no botão **Fork** na área superior direita da tela para criar uma cópia desse repositório na sua conta do GitHub. Esta cópia é chamada de *fork*. Faça as alterações desejadas no seu fork e, quando estiver pronto para enviar as alterações para nós, vá até o fork e crie uma nova solicitação de pull para nos informar sobre isso.
|
||||
|
||||
Depois que seu **pull request** for criado, um revisor do Kubernetes assumirá a responsabilidade de fornecer um feedback claro e objetivo. Como proprietário do pull request, **é sua responsabilidade modificar seu pull request para abordar o feedback que foi fornecido a você pelo revisor do Kubernetes.** Observe também que você pode acabar tendo mais de um revisor do Kubernetes para fornecer seu feedback ou você pode acabar obtendo feedback de um revisor do Kubernetes que é diferente daquele originalmente designado para lhe fornecer feedback. Além disso, em alguns casos, um de seus revisores pode solicitar uma revisão técnica de um [revisor de tecnologia Kubernetes](https://github.com/kubernetes/website/wiki/Tech-reviewers) quando necessário. Os revisores farão o melhor para fornecer feedback em tempo hábil, mas o tempo de resposta pode variar de acordo com as circunstâncias.
|
||||
|
||||
Para mais informações sobre como contribuir com a documentação do Kubernetes, consulte:
|
||||
|
||||
* [Comece a contribuir](https://kubernetes.io/docs/contribute/start/)
|
||||
* [Preparando suas alterações na documentação](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally)
|
||||
* [Usando Modelos de Página](http://kubernetes.io/docs/contribute/style/page-templates/)
|
||||
* [Guia de Estilo da Documentação](http://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [Localizando documentação do Kubernetes](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
Você pode contactar os mantenedores da localização em Português em:
|
||||
|
||||
* Felipe ([GitHub - @femrtnz](https://github.com/femrtnz))
|
||||
* [Slack channel](https://kubernetes.slack.com/messages/kubernetes-docs-pt)
|
||||
|
||||
## Executando o site localmente usando o Docker
|
||||
|
||||
A maneira recomendada de executar o site do Kubernetes localmente é executar uma imagem especializada do [Docker](https://docker.com) que inclui o gerador de site estático [Hugo](https://gohugo.io).
|
||||
|
||||
> Se você está rodando no Windows, você precisará de mais algumas ferramentas que você pode instalar com o [Chocolatey](https://chocolatey.org). `choco install make`
|
||||
|
||||
> Se você preferir executar o site localmente sem o Docker, consulte [Executando o site localmente usando o Hugo](#executando-o-site-localmente-usando-o-hugo) abaixo.
|
||||
|
||||
Se você tiver o Docker [em funcionamento](https://www.docker.com/get-started), crie a imagem do Docker do `kubernetes-hugo` localmente:
|
||||
|
||||
```bash
|
||||
make docker-image
|
||||
```
|
||||
|
||||
Depois que a imagem foi criada, você pode executar o site localmente:
|
||||
|
||||
```bash
|
||||
make docker-serve
|
||||
```
|
||||
|
||||
Abra seu navegador para http://localhost:1313 para visualizar o site. Conforme você faz alterações nos arquivos de origem, Hugo atualiza o site e força a atualização do navegador.
|
||||
|
||||
## Executando o site localmente usando o Hugo
|
||||
|
||||
Veja a [documentação oficial do Hugo](https://gohugo.io/getting-started/installing/) para instruções de instalação do Hugo. Certifique-se de instalar a versão do Hugo especificada pela variável de ambiente `HUGO_VERSION` no arquivo [`netlify.toml`](netlify.toml#L9).
|
||||
|
||||
Para executar o site localmente quando você tiver o Hugo instalado:
|
||||
|
||||
```bash
|
||||
make serve
|
||||
```
|
||||
|
||||
Isso iniciará o servidor Hugo local na porta 1313. Abra o navegador para http://localhost:1313 para visualizar o site. Conforme você faz alterações nos arquivos de origem, Hugo atualiza o site e força a atualização do navegador.
|
||||
|
||||
## Comunidade, discussão, contribuição e apoio
|
||||
|
||||
Aprenda a se envolver com a comunidade do Kubernetes na [página da comunidade](http://kubernetes.io/community/).
|
||||
|
||||
Você pode falar com os mantenedores deste projeto:
|
||||
|
||||
- [Slack](https://kubernetes.slack.com/messages/sig-docs)
|
||||
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
|
||||
### Código de conduta
|
||||
|
||||
A participação na comunidade Kubernetes é regida pelo [Código de Conduta da Kubernetes](code-of-conduct.md).
|
||||
|
||||
## Obrigado!
|
||||
|
||||
O Kubernetes conta com a participação da comunidade e nós realmente agradecemos suas contribuições para o nosso site e nossa documentação!
|
||||
@@ -1,62 +0,0 @@
|
||||
# Документация по Kubernetes
|
||||
|
||||
[](https://app.netlify.com/sites/kubernetes-io-master-staging/deploys) [](https://github.com/kubernetes/website/releases/latest)
|
||||
|
||||
Добро пожаловать! Данный репозиторий содержит все необходимые файлы для сборки [сайта Kubernetes и документации](https://kubernetes.io/). Мы благодарим вас за старания!
|
||||
|
||||
## Запуск сайта с помощью Hugo
|
||||
|
||||
Обратитесь к [официальной документации Hugo](https://gohugo.io/getting-started/installing/), чтобы установить Hugo. Убедитесь, что вы установили правильную версию Hugo, которая устанавливается в переменной окружения `HUGO_VERSION` в файле [`netlify.toml`](netlify.toml#L10).
|
||||
|
||||
После установки Hugo, чтобы запустить сайт, выполните в консоли:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/kubernetes/website.git
|
||||
cd website
|
||||
hugo server --buildFuture
|
||||
```
|
||||
|
||||
Эта команда запустит сервер Hugo на порту 1313. Откройте браузер и перейдите по ссылке http://localhost:1313, чтобы открыть сайт. Если вы отредактируете исходные файлы сайта, Hugo автоматически применит изменения и обновит страницу в браузере.
|
||||
|
||||
## Сообщество, обсуждение, вклад и поддержка
|
||||
|
||||
Узнайте, как поучаствовать в жизни сообщества Kubernetes на [странице сообщества](http://kubernetes.io/community/).
|
||||
|
||||
Вы можете связаться с сопровождающими этого проекта по следующим ссылкам:
|
||||
|
||||
- [Канал в Slack](https://kubernetes.slack.com/messages/sig-docs)
|
||||
- [Рассылка](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
|
||||
## Вклад в документацию
|
||||
|
||||
Нажмите на кнопку **Fork** в правом верхнем углу, чтобы создать копию этого репозитория в ваш GitHub-аккаунт. Эта копия называется *форк-репозиторием*. Делайте любые изменения в вашем форк-репозитории, и когда вы будете готовы опубликовать изменения, откройте форк-репозиторий и создайте новый пулреквест, чтобы уведомить нас.
|
||||
|
||||
После того, как вы отправите пулреквест, ревьювер Kubernetes даст по нему обратную связь. Вы, как автор пулреквеста, **должны обновить свой пулреквест после его рассмотрения ревьювером Kubernetes.**
|
||||
|
||||
Вполне возможно, что более одного ревьювера Kubernetes оставят свои комментарии или даже может быть так, что новый комментарий ревьювера Kubernetes будет отличаться от первоначального назначенного ревьювера. Кроме того, в некоторых случаях один из ревьюверов может запросить технический обзор у [технического ревьювера Kubernetes](https://github.com/kubernetes/website/wiki/Tech-reviewers), если это будет необходимо. Ревьюверы сделают все возможное, чтобы как можно оперативно оставить свои предложения и пожелания, но время ответа может варьироваться в зависимости от обстоятельств.
|
||||
|
||||
Узнать подробнее о том, как поучаствовать в документации Kubernetes, вы можете по ссылкам ниже:
|
||||
|
||||
* [Начните вносить свой вклад](https://kubernetes.io/docs/contribute/)
|
||||
* [Использование шаблонов страниц](http://kubernetes.io/docs/contribute/style/page-templates/)
|
||||
* [Руководство по оформлению документации](http://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [Руководство по локализации Kubernetes](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
## Файл `README.md` на других языках
|
||||
| другие языки | другие языки |
|
||||
|-------------------------------|-------------------------------|
|
||||
| [Английский](README.md) | [Французский](README-fr.md) |
|
||||
| [Корейский](README-ko.md) | [Немецкий](README-de.md) |
|
||||
| [Португальский](README-pt.md) | [Хинди](README-hi.md) |
|
||||
| [Испанский](README-es.md) | [Индонезийский](README-id.md) |
|
||||
| [Китайский](README-zh.md) | [Японский](README-ja.md) |
|
||||
| [Вьетнамский](README-vi.md) | [Итальянский](README-it.md) |
|
||||
| [Польский]( README-pl.md) | [Украинский](README-uk.md) |
|
||||
|
||||
### Кодекс поведения
|
||||
|
||||
Участие в сообществе Kubernetes регулируется [кодексом поведения CNCF](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
|
||||
|
||||
## Спасибо!
|
||||
|
||||
Kubernetes процветает благодаря сообществу и мы ценим ваш вклад в сайт и документацию!
|
||||
@@ -1,85 +0,0 @@
|
||||
<!-- # The Kubernetes documentation -->
|
||||
# Документація Kubernetes
|
||||
|
||||
[](https://app.netlify.com/sites/kubernetes-io-master-staging/deploys) [](https://github.com/kubernetes/website/releases/latest)
|
||||
|
||||
<!-- This repository contains the assets required to build the [Kubernetes website and documentation](https://kubernetes.io/). We're glad that you want to contribute! -->
|
||||
Вітаємо! В цьому репозиторії міститься все необхідне для роботи над [сайтом і документацією Kubernetes](https://kubernetes.io/). Ми щасливі, що ви хочете зробити свій внесок!
|
||||
|
||||
<!-- ## Running the website locally using Hugo -->
|
||||
## Запуск сайту локально зa допомогою Hugo
|
||||
|
||||
<!-- See the [official Hugo documentation](https://gohugo.io/getting-started/installing/) for Hugo installation instructions. Make sure to install the Hugo extended version specified by the `HUGO_VERSION` environment variable in the [`netlify.toml`](netlify.toml#L10) file. -->
|
||||
Для інструкцій з встановлення Hugo дивіться [офіційну документацію](https://gohugo.io/getting-started/installing/). Обов’язково встановіть розширену версію Hugo, яка позначена змінною оточення `HUGO_VERSION` у файлі [`netlify.toml`](netlify.toml#L10).
|
||||
|
||||
<!-- To run the website locally when you have Hugo installed: -->
|
||||
Після встановлення Hugo, запустіть сайт локально командою:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/kubernetes/website.git
|
||||
cd website
|
||||
hugo server --buildFuture
|
||||
```
|
||||
|
||||
<!-- This will start the local Hugo server on port 1313. Open up your browser to http://localhost:1313 to view the website. As you make changes to the source files, Hugo updates the website and forces a browser refresh. -->
|
||||
Команда запустить локальний Hugo-сервер на порту 1313. Відкрийте у своєму браузері http://localhost:1313, щоб побачити сайт. По мірі того, як ви змінюєте вихідний код, Hugo актуалізує сайт відповідно до внесених змін і оновлює сторінку у браузері.
|
||||
|
||||
<!-- ## Get involved with SIG Docs -->
|
||||
## Спільнота, обговорення, внесок і підтримка
|
||||
|
||||
<!-- Learn more about SIG Docs Kubernetes community and meetings on the [community page](https://github.com/kubernetes/community/tree/master/sig-docs#meetings). -->
|
||||
Дізнайтеся, як долучитися до спільноти Kubernetes на [сторінці спільноти](http://kubernetes.io/community/).
|
||||
|
||||
<!-- You can also reach the maintainers of this project at: -->
|
||||
Для зв’язку із супроводжуючими проекту скористайтеся:
|
||||
|
||||
- [Slack](https://kubernetes.slack.com/messages/sig-docs)
|
||||
- [Поштова розсилка](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
|
||||
<!-- ## Contributing to the docs -->
|
||||
## Внесок у документацію
|
||||
|
||||
<!-- You can click the **Fork** button in the upper-right area of the screen to create a copy of this repository in your GitHub account. This copy is called a *fork*. Make any changes you want in your fork, and when you are ready to send those changes to us, go to your fork and create a new pull request to let us know about it. -->
|
||||
Ви можете створити копію цього репозиторія у своєму акаунті на GitHub, натиснувши на кнопку **Fork**, що розташована справа зверху. Ця копія називатиметься *fork* (відгалуження). Зробіть будь-які необхідні зміни у своєму відгалуженні. Коли ви будете готові надіслати їх нам, перейдіть до свого відгалуження і створіть новий pull request, щоб сповістити нас.
|
||||
|
||||
<!-- Once your pull request is created, a Kubernetes reviewer will take responsibility for providing clear, actionable feedback. As the owner of the pull request, **it is your responsibility to modify your pull request to address the feedback that has been provided to you by the Kubernetes reviewer.** -->
|
||||
Після того, як ви створили pull request, рецензент Kubernetes зобов’язується надати вам по ньому чіткий і конструктивний коментар. **Ваш обов’язок як творця pull request - відкоригувати його відповідно до зауважень рецензента Kubernetes.**
|
||||
|
||||
<!-- Also, note that you may end up having more than one Kubernetes reviewer provide you feedback or you may end up getting feedback from a Kubernetes reviewer that is different than the one initially assigned to provide you feedback. -->
|
||||
Також, зауважте: може статися так, що ви отримаєте коментарі від декількох рецензентів Kubernetes або від іншого рецензента, ніж той, якого вам було призначено від початку.
|
||||
|
||||
<!-- Furthermore, in some cases, one of your reviewers might ask for a technical review from a Kubernetes tech reviewer when needed. Reviewers will do their best to provide feedback in a timely fashion but response time can vary based on circumstances. -->
|
||||
Крім того, за потреби один із ваших рецензентів може запросити технічну перевірку від одного з технічних рецензентів Kubernetes, коли це необхідно. Рецензенти намагатимуться відреагувати вчасно, проте час відповіді може відрізнятися в залежності від обставин.
|
||||
|
||||
<!-- For more information about contributing to the Kubernetes documentation, see: -->
|
||||
Більше інформації про внесок у документацію Kubernetes ви знайдете у наступних джерелах:
|
||||
|
||||
* [Внесок: з чого почати](https://kubernetes.io/docs/contribute/)
|
||||
* [Використання шаблонів сторінок](https://kubernetes.io/docs/contribute/style/page-content-types/)
|
||||
* [Керівництво зі стилю оформлення документації](http://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [Переклад документації Kubernetes іншими мовами](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
<!-- ## Localization `README.md`'s -->
|
||||
## Файл `README.md` іншими мовами
|
||||
|
||||
| інші мови | інші мови |
|
||||
|-------------------------------|-------------------------------|
|
||||
| [Англійська](README.md) | [Французька](README-fr.md) |
|
||||
| [Корейська](README-ko.md) | [Німецька](README-de.md) |
|
||||
| [Португальська](README-pt.md) | [Хінді](README-hi.md) |
|
||||
| [Іспанська](README-es.md) | [Індонезійська](README-id.md) |
|
||||
| [Китайська](README-zh.md) | [Японська](README-ja.md) |
|
||||
| [В'єтнамська](README-vi.md) | [Російська](README-ru.md) |
|
||||
| [Італійська](README-it.md) | [Польська](README-pl.md) |
|
||||
|
||||
<!-- ## Code of conduct -->
|
||||
## Кодекс поведінки
|
||||
|
||||
<!-- Participation in the Kubernetes community is governed by the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). -->
|
||||
Участь у спільноті Kubernetes визначається правилами [Кодексу поведінки СNCF](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
|
||||
|
||||
<!-- ## Thank you! -->
|
||||
## Дякуємо!
|
||||
|
||||
<!-- Kubernetes thrives on community participation, and we appreciate your contributions to our website and our documentation! -->
|
||||
Долучення до спільноти - запорука успішного розвитку Kubernetes. Ми цінуємо ваш внесок у наш сайт і документацію!
|
||||
@@ -1,72 +0,0 @@
|
||||
# Tài liệu Kubernetes
|
||||
|
||||
[](https://travis-ci.org/kubernetes/website)
|
||||
[](https://github.com/kubernetes/website/releases/latest)
|
||||
|
||||
Chào mừng! Kho lưu trữ này chứa tất cả các tài nguyên cần thiết để xây dựng [trang web của Kubernetes và các tài liệu](https://kubernetes.io/). Chúng tôi rất vui vì bạn muốn đóng góp.
|
||||
|
||||
## Đóng góp cho tài liệu
|
||||
|
||||
Bạn có thể click vào nút **Fork** ở góc trên bên phải màn hình để tạo bản sao của kho lưu trữ này trong tài khoản GitHub của bạn. Bản sao này được gọi là một bản *fork*. Thực hiện bất kì thay đổi nào mà bạn muốn trong bản fork của bạn và khi bạn sẵn sang gửi những thay đổi đó cho chúng tôi, hãy đến bản fork của bạn và tạo một Pull Request mới để cho chúng tôi biết về nó.
|
||||
|
||||
Một khi Pull Request của bạn được tạo, reviewer sẽ chịu trách nhiệm cung cấp các phản hồi rõ ràng, có thể thực hiện được. Là chủ sở hữu của pull request, **bạn có trách nhiệm sửa đổi Pull Request của mình để giải quyết các phản hồi bởi reviewer.** Ngoài ra, lưu ý rằng bạn có thể có nhiều hơn một reviewer cung cấp cho bạn các phản hồi hoặc bạn có thể nhận được phản hồi từ reviewer khác với reviewer ban đầu được chỉ định. Hơn nữa, trong một số trường hợp, một trong những reviewer của bạn có thể yêu cầu đánh giá kỹ thuật từ [Kubernetes tech reviewer](https://github.com/kubernetes/website/wiki/Tech-reviewers) khi cần. Các reviewers sẽ cố gắng hết sức để cung cấp phản hồi một cách kịp thời nhưng thời gian phản hồi có thể thay đổi tùy theo hoàn cảnh.
|
||||
|
||||
Để biết thêm thông tin về việc đóng góp cho tài liệu Kubernetes, hãy xem:
|
||||
|
||||
* [Bắt đầu đóng góp](https://kubernetes.io/docs/contribute/start/)
|
||||
* [Các giai đoạn thay đổi tài liệu](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally)
|
||||
* [Sử dụng các trang templates](http://kubernetes.io/docs/contribute/style/page-templates/)
|
||||
* [Hướng dẫn biểu mẫu tài liệu](http://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [Địa phương hóa tài liệu Kubernetes](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
|
||||
## Chạy website cục bộ dùng Docker
|
||||
|
||||
Cách được đề xuất để chạy trang web Kubernetes cục bộ là dùng [Docker](https://docker.com) image chứa trình tạo web tĩnh [Hugo](https://gohugo.io).
|
||||
|
||||
> Nếu bạn làm việc trên môi trường Windows, bạn sẽ cần thêm môt vài công cụ mà bạn có thể cài đặt với [Chocolatey](https://chocolatey.org). `choco install make`
|
||||
|
||||
> Nếu bạn không muốn dùng Docker để chạy trang web cục bộ, hãy xem [Chạy website cục bộ dùng Hugo](#chạy-website-cục-bộ-dùng-hugo) dưới đây.
|
||||
|
||||
Nếu bạn có Docker đang [up và running](https://www.docker.com/get-started), build `kubernetes-hugo` Docker image cục bộ:
|
||||
|
||||
```bash
|
||||
make docker-image
|
||||
```
|
||||
|
||||
Khi image đã được built, bạn có thể chạy website cục bộ:
|
||||
|
||||
```bash
|
||||
make docker-serve
|
||||
```
|
||||
|
||||
Mở trình duyệt và đến địa chỉ http://localhost:1313 để xem website. Khi bạn thay đổi các file nguồn, Hugo cập nhật website và buộc làm mới trình duyệt.
|
||||
|
||||
## Chạy website cục bộ dùng Hugo
|
||||
|
||||
Hãy xem [tài liệu chính thức của Hugo](https://gohugo.io/getting-started/installing/) cho việc hướng dẫn cài đặt Hugo. Đảm bảo cài đặt phiên bản mở rộng của Hugo được xác định bởi biến môi trường `HUGO_VERSION` trong file [`netlify.toml`](netlify.toml#L9)
|
||||
|
||||
Để chạy website cục bộ khi Hugo được cài đặt:
|
||||
|
||||
```bash
|
||||
make serve
|
||||
```
|
||||
|
||||
Câu lệnh trên sẽ khởi động server Hugo cục bộ trên cổng 1313. Mở trình duyệt và đến địa chỉ http://localhost:1313 để xem website. Khi bạn thay đổi các file nguồn, Hugo cập nhật website và buộc làm mới trình duyệt.
|
||||
|
||||
## Cộng đồng, thảo luận, đóng góp và hỗ trợ
|
||||
|
||||
Tìm hiểu cách tham gia với cộng đồng Kubernetes trên [trang cộng đồng](http://kubernetes.io/community/).
|
||||
|
||||
Bạn có thể tiếp cận những maintainers của dự án này tại:
|
||||
|
||||
- [Slack](https://kubernetes.slack.com/messages/sig-docs)
|
||||
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
|
||||
### Quy tắc ứng xử
|
||||
|
||||
Sự tham gia vào cộng đồng Kubernetes được điểu chỉnh bởi [Kubernetes Code of Conduct](code-of-conduct.md).
|
||||
|
||||
## Cảm ơn!
|
||||
|
||||
Kubernetes phát triển mạnh mẽ về sự tham gia của cộng đồng và chúng tôi đánh giá cao những đóng góp của bạn cho trang web và tài liệu của chúng tôi!
|
||||
-160
@@ -1,160 +0,0 @@
|
||||
# Kubernetes 文档
|
||||
|
||||
<!--
|
||||
# The Kubernetes documentation
|
||||
-->
|
||||
|
||||
[](https://app.netlify.com/sites/kubernetes-io-master-staging/deploys) [](https://github.com/kubernetes/website/releases/latest)
|
||||
|
||||
<!--
|
||||
This repository contains the assets required to build the [Kubernetes website and documentation](https://kubernetes.io/). We're glad that you want to contribute!
|
||||
-->
|
||||
本仓库包含了所有用于构建 [Kubernetes 网站和文档](https://kubernetes.io/) 的软件资产。
|
||||
我们非常高兴您想要参与贡献!
|
||||
|
||||
<!--
|
||||
## Running the website locally using Hugo
|
||||
|
||||
See the [official Hugo documentation](https://gohugo.io/getting-started/installing/) for Hugo installation instructions. Make sure to install the Hugo extended version specified by the `HUGO_VERSION` environment variable in the [`netlify.toml`](netlify.toml#L10) file.
|
||||
-->
|
||||
## 在本地使用 Hugo 来运行网站
|
||||
|
||||
请参考 [Hugo 的官方文档](https://gohugo.io/getting-started/installing/)了解 Hugo 的安装指令。
|
||||
请确保安装的是 [`netlify.toml`](netlify.toml#L10) 文件中环境变量 `HUGO_VERSION` 所指定的
|
||||
Hugo 扩展版本。
|
||||
|
||||
<!--
|
||||
Before building the site, clone the Kubernetes website repository:
|
||||
-->
|
||||
在构造网站之前,先克隆 Kubernetes website 仓库:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/kubernetes/website.git
|
||||
cd website
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
|
||||
<!--
|
||||
**Note:** The Kubernetes website deploys the [Docsy Hugo theme](https://github.com/google/docsy#readme).
|
||||
If you have not updated your website repository, the `website/themes/docsy` directory is empty.
|
||||
The site cannot build without a local copy of the theme.
|
||||
|
||||
Update the website theme:
|
||||
-->
|
||||
**注意:** Kubernetes 网站要部署 [Docsy Hugo 主题](https://github.com/google/docsy#readme).
|
||||
如果你还没有更新你本地的 website 仓库,目录 `website/themes/docsy`
|
||||
会是空目录。
|
||||
在本地没有主题副本的情况下,网站无法正常构造。
|
||||
|
||||
使用下面的命令更新网站主题:
|
||||
|
||||
```bash
|
||||
git submodule update --init --recursive --depth 1
|
||||
```
|
||||
|
||||
<!--
|
||||
To build and test the site locally, run:
|
||||
-->
|
||||
若要在本地构造和测试网站,请运行:
|
||||
|
||||
```bash
|
||||
hugo server --buildFuture
|
||||
```
|
||||
|
||||
<!--
|
||||
This will start the local Hugo server on port 1313. Open up your browser to http://localhost:1313 to view the website. As you make changes to the source files, Hugo updates the website and forces a browser refresh.
|
||||
-->
|
||||
上述命令会在端口 1313 上启动本地 Hugo 服务器。
|
||||
启动浏览器,打开 http://localhost:1313 来查看网站。
|
||||
当你对源文件作出修改时,Hugo 会更新网站并强制浏览器执行刷新操作。
|
||||
|
||||
<!--
|
||||
## Get involved with SIG Docs
|
||||
|
||||
Learn more about SIG Docs Kubernetes community and meetings on the [community page](https://github.com/kubernetes/community/tree/master/sig-docs#meetings).
|
||||
|
||||
You can also reach the maintainers of this project at:
|
||||
|
||||
- [Slack](https://kubernetes.slack.com/messages/sig-docs)
|
||||
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
-->
|
||||
## 参与 SIG Docs 工作
|
||||
|
||||
通过 [社区页面](https://github.com/kubernetes/community/tree/master/sig-docs#meetings)
|
||||
进一步了解 SIG Docs Kubernetes 社区和会议信息。
|
||||
|
||||
你也可以通过以下渠道联系本项目的维护人员:
|
||||
|
||||
- [Slack](https://kubernetes.slack.com/messages/sig-docs)
|
||||
- [邮件列表](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
|
||||
<!--
|
||||
## Contributing to the docs
|
||||
|
||||
You can click the **Fork** button in the upper-right area of the screen to create a copy of this repository in your GitHub account. This copy is called a *fork*. Make any changes you want in your fork, and when you are ready to send those changes to us, go to your fork and create a new pull request to let us know about it.
|
||||
|
||||
Once your pull request is created, a Kubernetes reviewer will take responsibility for providing clear, actionable feedback. As the owner of the pull request, **it is your responsibility to modify your pull request to address the feedback that has been provided to you by the Kubernetes reviewer.**
|
||||
-->
|
||||
## 为文档做贡献
|
||||
|
||||
你也可以点击屏幕右上方区域的 **Fork** 按钮,在你自己的 GitHub
|
||||
账号下创建本仓库的拷贝。此拷贝被称作 *fork*。
|
||||
你可以在自己的拷贝中任意地修改文档,并在你已准备好将所作修改提交给我们时,
|
||||
在你自己的拷贝下创建一个拉取请求(Pull Request),以便让我们知道。
|
||||
|
||||
一旦你创建了拉取请求,某个 Kubernetes 评审人会负责提供明确的、可执行的反馈意见。
|
||||
作为拉取请求的拥有者,*修改拉取请求以解决 Kubernetes
|
||||
评审人所提出的反馈是你的责任*。
|
||||
|
||||
<!--
|
||||
Also, note that you may end up having more than one Kubernetes reviewer provide you feedback or you may end up getting feedback from a Kubernetes reviewer that is different than the one initially assigned to provide you feedback.
|
||||
|
||||
Furthermore, in some cases, one of your reviewers might ask for a technical review from a Kubernetes tech reviewer when needed. Reviewers will do their best to provide feedback in a timely fashion but response time can vary based on circumstances.
|
||||
-->
|
||||
还要提醒的一点,有时可能会有不止一个 Kubernetes 评审人为你提供反馈意见。
|
||||
有时候,某个评审人的意见和另一个最初被指派的评审人的意见不同。
|
||||
|
||||
更进一步,在某些时候,评审人之一可能会在需要的时候请求 Kubernetes
|
||||
技术评审人来执行技术评审。
|
||||
评审人会尽力及时地提供反馈意见,不过具体的响应时间可能会因时而异。
|
||||
|
||||
<!--
|
||||
For more information about contributing to the Kubernetes documentation, see:
|
||||
|
||||
* [Contribute to Kubernetes docs](https://kubernetes.io/docs/contribute/)
|
||||
* [Page Content Types](https://kubernetes.io/docs/contribute/style/page-content-types/)
|
||||
* [Documentation Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [Localizing Kubernetes Documentation](https://kubernetes.io/docs/contribute/localization/)
|
||||
-->
|
||||
有关为 Kubernetes 文档做出贡献的更多信息,请参阅:
|
||||
|
||||
* [贡献 Kubernetes 文档](https://kubernetes.io/docs/contribute/)
|
||||
* [页面内容类型](http://kubernetes.io/docs/contribute/style/page-content-types/)
|
||||
* [文档风格指南](http://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [本地化 Kubernetes 文档](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
## 中文本地化
|
||||
|
||||
可以通过以下方式联系中文本地化的维护人员:
|
||||
|
||||
* Rui Chen ([GitHub - @chenrui333](https://github.com/chenrui333))
|
||||
* He Xiaolong ([GitHub - @markthink](https://github.com/markthink))
|
||||
* [Slack channel](https://kubernetes.slack.com/messages/kubernetes-docs-zh)
|
||||
|
||||
<!--
|
||||
### Code of conduct
|
||||
|
||||
Participation in the Kubernetes community is governed by the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
|
||||
-->
|
||||
### 行为准则
|
||||
|
||||
参与 Kubernetes 社区受 [CNCF 行为准则](https://github.com/cncf/foundation/blob/master/code-of-conduct.md)约束。
|
||||
|
||||
<!--
|
||||
## Thank you!
|
||||
|
||||
Kubernetes thrives on community participation, and we appreciate your contributions to our website and our documentation!
|
||||
-->
|
||||
## 感谢!
|
||||
|
||||
Kubernetes 因为社区的参与而蓬勃发展,感谢您对我们网站和文档的贡献!
|
||||
@@ -1,142 +1,55 @@
|
||||
# The Kubernetes documentation
|
||||
|
||||
[](https://app.netlify.com/sites/kubernetes-io-master-staging/deploys) [](https://github.com/kubernetes/website/releases/latest)
|
||||
Welcome! This repository houses all of the assets required to build the Kubernetes website and documentation. We're very pleased that you want to contribute!
|
||||
|
||||
This repository contains the assets required to build the [Kubernetes website and documentation](https://kubernetes.io/). We're glad that you want to contribute!
|
||||
## Contributing to the docs
|
||||
|
||||
# Using this repository
|
||||
You can click the **Fork** button in the upper-right area of the screen to create a copy of this repository in your GitHub account. This copy is called a *fork*. Make any changes you want in your fork, and when you are ready to send those changes to us, go to your fork and create a new pull request to let us know about it.
|
||||
|
||||
You can run the website locally using Hugo, or you can run it in a container runtime. We strongly recommend using the container runtime, as it gives deployment consistency with the live website.
|
||||
Once your pull request is created, a Kubernetes reviewer will take responsibility for providing clear, actionable feedback. As the owner of the pull request, **it is your responsibility to modify your pull request to address the feedback that has been provided to you by the Kubernetes reviewer.** Also note that you may end up having more than one Kubernetes reviewer provide you feedback or you may end up getting feedback from a Kubernetes reviewer that is different than the one originally assigned to provide you feedback. Furthermore, in some cases, one of your reviewers might ask for a technical review from a [Kubernetes tech reviewer](https://github.com/kubernetes/website/wiki/Tech-reviewers) when needed. Reviewers will do their best to provide feedback in a timely fashion but response time can vary based on circumstances.
|
||||
|
||||
## Prerequisites
|
||||
For more information about contributing to the Kubernetes documentation, see:
|
||||
|
||||
To use this repository, you need the following installed locally:
|
||||
* [Start contributing](https://kubernetes.io/docs/contribute/start/)
|
||||
* [Staging Your Documentation Changes](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally)
|
||||
* [Using Page Templates](http://kubernetes.io/docs/contribute/style/page-templates/)
|
||||
* [Documentation Style Guide](http://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [Localizing Kubernetes Documentation](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
- [yarn](https://yarnpkg.com/)
|
||||
- [npm](https://www.npmjs.com/)
|
||||
- [Go](https://golang.org/)
|
||||
- [Hugo](https://gohugo.io/)
|
||||
- A container runtime, like [Docker](https://www.docker.com/).
|
||||
## Running the site locally using Docker
|
||||
|
||||
Before you start, install the dependencies. Clone the repository and navigate to the directory:
|
||||
The recommended way to run the Kubernetes website locally is to run a specialized [Docker](https://docker.com) image that includes the [Hugo](https://gohugo.io) static site generator.
|
||||
|
||||
```
|
||||
git clone https://github.com/kubernetes/website.git
|
||||
cd website
|
||||
> If you are running on Windows, you'll need a few more tools which you can install with [Chocolatey](https://chocolatey.org). `choco install make`
|
||||
|
||||
> If you'd prefer to run the website locally without Docker, see [Running the site locally using Hugo](#running-the-site-locally-using-hugo) below.
|
||||
|
||||
If you have Docker [up and running](https://www.docker.com/get-started), build the `kubernetes-hugo` Docker image locally:
|
||||
|
||||
```bash
|
||||
make docker-image
|
||||
```
|
||||
|
||||
The Kubernetes website uses the [Docsy Hugo theme](https://github.com/google/docsy#readme). Even if you plan to run the website in a container, we strongly recommend pulling in the submodule and other development dependencies by running the following:
|
||||
Once the image has been built, you can run the site locally:
|
||||
|
||||
```
|
||||
# install dependencies
|
||||
yarn
|
||||
|
||||
# pull in the Docsy submodule
|
||||
git submodule update --init --recursive --depth 1
|
||||
```bash
|
||||
make docker-serve
|
||||
```
|
||||
|
||||
## Running the website using a container
|
||||
Open up your browser to http://localhost:1313 to view the site. As you make changes to the source files, Hugo updates the site and forces a browser refresh.
|
||||
|
||||
To build the site in a container, run the following to build the container image and run it:
|
||||
## Running the site locally using Hugo
|
||||
|
||||
```
|
||||
make container-image
|
||||
make container-serve
|
||||
```
|
||||
See the [official Hugo documentation](https://gohugo.io/getting-started/installing/) for Hugo installation instructions. Make sure to install the Hugo version specified by the `HUGO_VERSION` environment variable in the [`netlify.toml`](netlify.toml#L9) file.
|
||||
|
||||
Open up your browser to http://localhost:1313 to view the website. As you make changes to the source files, Hugo updates the website and forces a browser refresh.
|
||||
|
||||
## Running the website locally using Hugo
|
||||
|
||||
Make sure to install the Hugo extended version specified by the `HUGO_VERSION` environment variable in the [`netlify.toml`](netlify.toml#L10) file.
|
||||
|
||||
To build and test the site locally, run:
|
||||
To run the site locally when you have Hugo installed:
|
||||
|
||||
```bash
|
||||
make serve
|
||||
```
|
||||
|
||||
This will start the local Hugo server on port 1313. Open up your browser to http://localhost:1313 to view the website. As you make changes to the source files, Hugo updates the website and forces a browser refresh.
|
||||
This will start the local Hugo server on port 1313. Open up your browser to http://localhost:1313 to view the site. As you make changes to the source files, Hugo updates the site and forces a browser refresh.
|
||||
|
||||
### Troubleshooting macOS for too many open files
|
||||
## Thank you!
|
||||
|
||||
If you run `make serve` on macOS and receive the following error:
|
||||
|
||||
```
|
||||
ERROR 2020/08/01 19:09:18 Error: listen tcp 127.0.0.1:1313: socket: too many open files
|
||||
make: *** [serve] Error 1
|
||||
```
|
||||
|
||||
Try checking the current limit for open files:
|
||||
|
||||
`launchctl limit maxfiles`
|
||||
|
||||
Then run the following commands:
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
|
||||
# These are the original gist links, linking to my gists now.
|
||||
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxfiles.plist
|
||||
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxproc.plist
|
||||
|
||||
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxfiles.plist
|
||||
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxproc.plist
|
||||
|
||||
sudo mv limit.maxfiles.plist /Library/LaunchDaemons
|
||||
sudo mv limit.maxproc.plist /Library/LaunchDaemons
|
||||
|
||||
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
|
||||
sudo chown root:wheel /Library/LaunchDaemons/limit.maxproc.plist
|
||||
|
||||
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
|
||||
```
|
||||
|
||||
This works for Catalina as well as Mojave macOS.
|
||||
|
||||
|
||||
# Get involved with SIG Docs
|
||||
|
||||
Learn more about SIG Docs Kubernetes community and meetings on the [community page](https://github.com/kubernetes/community/tree/master/sig-docs#meetings).
|
||||
|
||||
You can also reach the maintainers of this project at:
|
||||
|
||||
- [Slack](https://kubernetes.slack.com/messages/sig-docs)
|
||||
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
|
||||
|
||||
# Contributing to the docs
|
||||
|
||||
You can click the **Fork** button in the upper-right area of the screen to create a copy of this repository in your GitHub account. This copy is called a *fork*. Make any changes you want in your fork, and when you are ready to send those changes to us, go to your fork and create a new pull request to let us know about it.
|
||||
|
||||
Once your pull request is created, a Kubernetes reviewer will take responsibility for providing clear, actionable feedback. As the owner of the pull request, **it is your responsibility to modify your pull request to address the feedback that has been provided to you by the Kubernetes reviewer.**
|
||||
|
||||
Also, note that you may end up having more than one Kubernetes reviewer provide you feedback or you may end up getting feedback from a Kubernetes reviewer that is different than the one initially assigned to provide you feedback.
|
||||
|
||||
Furthermore, in some cases, one of your reviewers might ask for a technical review from a Kubernetes tech reviewer when needed. Reviewers will do their best to provide feedback in a timely fashion but response time can vary based on circumstances.
|
||||
|
||||
For more information about contributing to the Kubernetes documentation, see:
|
||||
|
||||
* [Contribute to Kubernetes docs](https://kubernetes.io/docs/contribute/)
|
||||
* [Page Content Types](https://kubernetes.io/docs/contribute/style/page-content-types/)
|
||||
* [Documentation Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/)
|
||||
* [Localizing Kubernetes Documentation](https://kubernetes.io/docs/contribute/localization/)
|
||||
|
||||
# Localization `README.md`'s
|
||||
|
||||
| Language | Language |
|
||||
|---|---|
|
||||
|[Chinese](README-zh.md)|[Korean](README-ko.md)|
|
||||
|[French](README-fr.md)|[Polish](README-pl.md)|
|
||||
|[German](README-de.md)|[Portuguese](README-pt.md)|
|
||||
|[Hindi](README-hi.md)|[Russian](README-ru.md)|
|
||||
|[Indonesian](README-id.md)|[Spanish](README-es.md)|
|
||||
|[Italian](README-it.md)|[Ukrainian](README-uk.md)|
|
||||
|[Japanese](README-ja.md)|[Vietnamese](README-vi.md)|
|
||||
|
||||
# Code of conduct
|
||||
|
||||
Participation in the Kubernetes community is governed by the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
|
||||
|
||||
# Thank you!
|
||||
|
||||
Kubernetes thrives on community participation, and we appreciate your contributions to our website and our documentation!
|
||||
Kubernetes thrives on community participation, and we really appreciate your contributions to our site and our documentation!
|
||||
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
# Security Policy
|
||||
|
||||
## Security Announcements
|
||||
|
||||
Join the [kubernetes-security-announce] group for security and vulnerability announcements.
|
||||
|
||||
You can also subscribe to an RSS feed of the above using [this link][kubernetes-security-announce-rss].
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Instructions for reporting a vulnerability can be found on the
|
||||
[Kubernetes Security and Disclosure Information] page.
|
||||
|
||||
## Supported Versions
|
||||
|
||||
Information about supported Kubernetes versions can be found on the
|
||||
[Kubernetes version and version skew support policy] page on the Kubernetes website.
|
||||
|
||||
[kubernetes-security-announce]: https://groups.google.com/forum/#!forum/kubernetes-security-announce
|
||||
[kubernetes-security-announce-rss]: https://groups.google.com/forum/feed/kubernetes-security-announce/msgs/rss_v2_0.xml?num=50
|
||||
[Kubernetes version and version skew support policy]: https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions
|
||||
[Kubernetes Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/#report-a-vulnerability
|
||||
+4
-4
@@ -1,15 +1,15 @@
|
||||
# Defined below are the security contacts for this repo.
|
||||
#
|
||||
# They are the contact point for the Product Security Committee to reach out
|
||||
# They are the contact point for the Product Security Team to reach out
|
||||
# to for triaging and handling of incoming issues.
|
||||
#
|
||||
# The below names agree to abide by the
|
||||
# [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy)
|
||||
# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy)
|
||||
# and will be removed and replaced if they violate that agreement.
|
||||
#
|
||||
# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE
|
||||
# INSTRUCTIONS AT https://kubernetes.io/security/
|
||||
|
||||
jimangel
|
||||
kbarnard10
|
||||
chenopis
|
||||
bradamant3
|
||||
zacharysarah
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
content_type: concept
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
<!-- body -->
|
||||
|
||||
<!-- Optional section; add links to information related to this topic. -->
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
@@ -1,21 +0,0 @@
|
||||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
content_type: task
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
## {{% heading "prerequisites" %}}
|
||||
|
||||
{{< include "task-tutorial-prereqs.md" >}}
|
||||
|
||||
<!-- If you set the min-kubernetes-server-version parameter in the page's front matter,
|
||||
add the version check shortcode {{< version-check >}}.
|
||||
-->
|
||||
|
||||
<!-- steps -->
|
||||
|
||||
<!-- discussion -->
|
||||
|
||||
<!-- Optional section; add links to information related to this topic. -->
|
||||
## {{% heading "whatsnext" %}}
|
||||
@@ -1,19 +0,0 @@
|
||||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
content_type: tutorial
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
## {{% heading "prerequisites" %}}
|
||||
|
||||
{{< include "task-tutorial-prereqs.md" >}}
|
||||
|
||||
## {{% heading "objectives" %}}
|
||||
|
||||
<!-- lessoncontent -->
|
||||
|
||||
## {{% heading "cleanup" %}}
|
||||
|
||||
<!-- Optional section; add links to information related to this topic. -->
|
||||
## {{% heading "whatsnext" %}}
|
||||
@@ -1,110 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 503.1 89.5" style="enable-background:new 0 0 503.1 89.5;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;stroke:#FFFFFF;stroke-width:5;stroke-miterlimit:10;}
|
||||
.st1{fill:#326DE6;}
|
||||
.st2{fill:#FFFFFF;}
|
||||
</style>
|
||||
<title>Kubernetes_Logo_Hrz_lockup_REV</title>
|
||||
<g id="Layer_2">
|
||||
<g id="Layer_1-2">
|
||||
<path class="st0" d="M82.3,21.3c-0.5-1.6-1.7-2.9-3.2-3.7L48.6,3c-0.8-0.4-1.7-0.5-2.5-0.5c-0.8,0-1.7,0-2.5,0.2L13.1,17.4
|
||||
c-1.5,0.7-2.6,2-3,3.7L2.6,54c-0.3,1.7,0.1,3.4,1.1,4.8l21.1,26.1c1.2,1.2,2.9,2,4.6,2.1H63c1.8,0.2,3.5-0.6,4.6-2.1l21.1-26.1
|
||||
c1-1.4,1.4-3.1,1.2-4.8L82.3,21.3z"/>
|
||||
<path class="st1" d="M82.3,21.3c-0.5-1.6-1.7-2.9-3.2-3.7L48.6,3c-0.8-0.4-1.7-0.5-2.5-0.5c-0.8,0-1.7,0-2.5,0.2L13.1,17.4
|
||||
c-1.5,0.7-2.6,2-3,3.7L2.6,54c-0.3,1.7,0.1,3.4,1.1,4.8l21.1,26.1c1.2,1.2,2.9,2,4.6,2.1H63c1.8,0.2,3.5-0.6,4.6-2.1l21.1-26.1
|
||||
c1-1.4,1.4-3.1,1.2-4.8L82.3,21.3z"/>
|
||||
<path class="st2" d="M77.6,52.7L77.6,52.7c-0.1,0-0.2,0-0.2-0.1s-0.2-0.1-0.4-0.1c-0.4-0.1-0.8-0.1-1.2-0.1c-0.2,0-0.4,0-0.6-0.1
|
||||
h-0.1c-1.1-0.1-2.3-0.3-3.4-0.6c-0.3-0.1-0.6-0.4-0.7-0.7C71.1,51,71,51,71,51l0,0l-0.8-0.2c0.4-2.9,0.2-5.9-0.4-8.8
|
||||
c-0.7-2.9-1.9-5.7-3.5-8.2l0.6-0.6l0,0v-0.1c0-0.3,0.1-0.7,0.3-0.9c0.9-0.8,1.8-1.4,2.8-2l0,0c0.2-0.1,0.4-0.2,0.6-0.3
|
||||
c0.4-0.2,0.7-0.4,1.1-0.6c0.1-0.1,0.2-0.1,0.3-0.2S72,29,72,28.9l0,0c0.9-0.7,1.1-1.9,0.4-2.8c-0.3-0.4-0.9-0.7-1.4-0.7
|
||||
c-0.5,0-1,0.2-1.4,0.5l0,0l-0.1,0.1c-0.1,0.1-0.2,0.2-0.3,0.2c-0.3,0.3-0.6,0.6-0.8,0.9c-0.1,0.2-0.3,0.3-0.4,0.4l0,0
|
||||
c-0.7,0.8-1.6,1.6-2.5,2.2c-0.2,0.1-0.4,0.2-0.6,0.2c-0.1,0-0.3,0-0.4-0.1h-0.1l-0.8,0.5c-0.8-0.8-1.7-1.6-2.5-2.4
|
||||
c-3.7-2.9-8.3-4.7-13-5.2l-0.1-0.8l0,0L48,22c-0.3-0.2-0.4-0.5-0.5-0.8c0-1.1,0-2.2,0.2-3.4v-0.1c0-0.2,0.1-0.4,0.1-0.6
|
||||
c0.1-0.4,0.1-0.8,0.2-1.2v-0.6l0,0c0.1-1-0.7-2-1.7-2.1c-0.6-0.1-1.2,0.2-1.7,0.7c-0.4,0.4-0.6,0.9-0.6,1.4l0,0v0.5
|
||||
c0,0.4,0.1,0.8,0.2,1.2c0.1,0.2,0.1,0.4,0.1,0.6v0.1c0.2,1.1,0.2,2.2,0.2,3.4c-0.1,0.3-0.2,0.6-0.5,0.8L44,22.1l0,0l-0.1,0.8
|
||||
c-1.1,0.1-2.2,0.3-3.4,0.5c-4.7,1-9,3.5-12.3,7L27.6,30h-0.1c-0.1,0-0.2,0.1-0.4,0.1c-0.2,0-0.4-0.1-0.6-0.2
|
||||
c-0.9-0.7-1.8-1.5-2.5-2.3l0,0c-0.1-0.2-0.3-0.3-0.4-0.4c-0.3-0.3-0.5-0.6-0.8-0.9c-0.1-0.1-0.2-0.1-0.3-0.2s-0.1-0.1-0.1-0.1l0,0
|
||||
c-0.4-0.3-0.9-0.5-1.4-0.5c-0.6,0-1.1,0.2-1.4,0.7c-0.6,0.9-0.4,2.1,0.4,2.8l0,0c0.1,0,0.1,0.1,0.1,0.1s0.2,0.2,0.3,0.2
|
||||
c0.3,0.2,0.7,0.4,1.1,0.6c0.2,0.1,0.4,0.2,0.6,0.3l0,0c1,0.6,2,1.2,2.8,2c0.2,0.2,0.4,0.6,0.3,0.9V33l0,0l0.6,0.6
|
||||
c-0.1,0.2-0.2,0.3-0.3,0.5C22.4,39,21.1,44.8,22,50.5l-0.8,0.2l0,0c0,0.1-0.1,0.1-0.1,0.1c-0.1,0.3-0.4,0.5-0.7,0.7
|
||||
c-1.1,0.3-2.2,0.5-3.4,0.6H17c-0.2,0-0.4,0-0.6,0.1c-0.4,0-0.8,0.1-1.2,0.1c-0.1,0-0.2,0.1-0.4,0.1c-0.1,0-0.1,0-0.2,0.1l0,0
|
||||
c-1.1,0.2-1.8,1.2-1.6,2.3c0,0,0,0,0,0c0.2,0.9,1.1,1.5,2,1.4c0.2,0,0.3,0,0.5-0.1l0,0c0.1,0,0.1,0,0.1-0.1S15.9,56,16,56
|
||||
c0.4-0.1,0.8-0.3,1.1-0.4c0.2-0.1,0.4-0.2,0.6-0.2h0.1c1.1-0.4,2.1-0.7,3.3-0.9h0.1c0.3,0,0.6,0.1,0.8,0.3c0.1,0,0.1,0.1,0.1,0.1
|
||||
l0,0l0.9-0.1c1.5,4.6,4.3,8.7,8.2,11.7c0.9,0.7,1.7,1.3,2.7,1.8L33.4,69l0,0c0,0.1,0.1,0.1,0.1,0.1c0.2,0.3,0.2,0.7,0.1,1
|
||||
c-0.4,1-1,2-1.6,2.9v0.1c-0.1,0.2-0.2,0.3-0.4,0.5s-0.4,0.6-0.7,1c-0.1,0.1-0.1,0.2-0.2,0.3c0,0,0,0.1-0.1,0.1l0,0
|
||||
c-0.5,1-0.1,2.2,0.8,2.7c0.2,0.1,0.5,0.2,0.7,0.2c0.8,0,1.5-0.5,1.9-1.2l0,0c0,0,0-0.1,0.1-0.1c0-0.1,0.1-0.2,0.2-0.3
|
||||
c0.1-0.4,0.3-0.7,0.4-1.1l0.2-0.6l0,0c0.3-1.1,0.8-2.1,1.3-3.1c0.2-0.3,0.5-0.5,0.8-0.6c0.1,0,0.1,0,0.1-0.1l0,0l0.4-0.8
|
||||
c2.8,1.1,5.7,1.6,8.7,1.6c1.8,0,3.6-0.2,5.4-0.7c1.1-0.2,2.2-0.6,3.2-0.9l0.4,0.7l0,0c0.1,0,0.1,0,0.1,0.1
|
||||
c0.3,0.1,0.6,0.3,0.8,0.6c0.5,1,1,2,1.3,3.1v0.1l0.2,0.6c0.1,0.4,0.2,0.8,0.4,1.1c0.1,0.1,0.1,0.2,0.2,0.3c0,0,0,0.1,0.1,0.1l0,0
|
||||
c0.4,0.7,1.1,1.2,1.9,1.2c0.3,0,0.5-0.1,0.8-0.2c0.4-0.2,0.8-0.6,0.9-1.1c0.1-0.5,0.1-1-0.1-1.5l0,0c0-0.1-0.1-0.1-0.1-0.1
|
||||
c0-0.1-0.1-0.2-0.2-0.3c-0.2-0.4-0.4-0.7-0.7-1c-0.1-0.2-0.2-0.3-0.4-0.5V73c-0.7-0.9-1.2-1.9-1.6-2.9c-0.1-0.3-0.1-0.7,0.1-1
|
||||
c0-0.1,0.1-0.1,0.1-0.1l0,0l-0.3-0.8c5.1-3.1,9-7.9,10.8-13.6l0.8,0.1l0,0c0.1,0,0.1-0.1,0.1-0.1c0.2-0.2,0.5-0.3,0.8-0.3h0.1
|
||||
c1.1,0.2,2.2,0.5,3.2,0.9h0.1c0.2,0.1,0.4,0.2,0.6,0.2c0.4,0.2,0.7,0.4,1.1,0.5c0.1,0,0.2,0.1,0.4,0.1c0.1,0,0.1,0,0.2,0.1l0,0
|
||||
c0.2,0.1,0.3,0.1,0.5,0.1c0.9,0,1.7-0.6,2-1.4C79.3,53.7,78.5,52.9,77.6,52.7z M48.7,49.6L46,50.9l-2.7-1.3l-0.7-2.9l1.9-2.4h3
|
||||
l1.9,2.4L48.7,49.6z M65,43.1c0.5,2.1,0.6,4.2,0.4,6.3l-9.5-2.7l0,0c-0.9-0.2-1.4-1.1-1.2-2c0.1-0.3,0.2-0.5,0.4-0.7l7.5-6.8
|
||||
C63.7,39,64.5,41,65,43.1z M59.6,33.5l-8.2,5.8c-0.7,0.4-1.7,0.3-2.2-0.4c-0.2-0.2-0.3-0.4-0.3-0.7l-0.6-10.1
|
||||
C52.7,28.6,56.6,30.5,59.6,33.5L59.6,33.5z M41.5,28.4l2-0.4L43,38l0,0c0,0.9-0.8,1.6-1.7,1.6c-0.3,0-0.5-0.1-0.8-0.2l-8.3-5.9
|
||||
C34.8,31,38,29.2,41.5,28.4z M29.3,37.2l7.4,6.6l0,0c0.7,0.6,0.8,1.6,0.2,2.3c-0.2,0.3-0.4,0.4-0.8,0.5l-9.7,2.8
|
||||
C26.1,45.2,27.1,40.9,29.3,37.2z M27.6,54.1l9.9-1.7c0.8,0,1.6,0.5,1.7,1.3c0.1,0.3,0.1,0.7-0.1,1l0,0l-3.8,9.2
|
||||
C31.8,61.6,29,58.1,27.6,54.1z M50.3,66.5C48.9,66.8,47.5,67,46,67c-2.1,0-4.3-0.4-6.3-1l4.9-8.9c0.5-0.6,1.3-0.8,2-0.4
|
||||
c0.3,0.2,0.5,0.4,0.8,0.7l0,0l4.8,8.7C51.6,66.2,51,66.3,50.3,66.5z M62.5,57.8c-1.5,2.4-3.6,4.5-6,6l-3.9-9.4
|
||||
c-0.2-0.8,0.2-1.6,0.9-1.9c0.3-0.1,0.6-0.2,0.9-0.2l10,1.7C63.9,55.4,63.3,56.7,62.5,57.8z"/>
|
||||
<g id="layer1">
|
||||
<g id="text4373">
|
||||
<path id="path2985" class="st2" d="M128.1,48.4c1.1-1.2,2.1-2.4,3.3-3.6c1.1-1.3,2.2-2.5,3.3-3.7c1.1-1.3,2.1-2.4,3-3.5
|
||||
s1.8-2.1,2.5-2.9H153c-2.6,2.9-5.1,5.8-7.5,8.5c-2.5,2.7-5.1,5.5-8,8.3c1.6,1.5,3.1,3,4.5,4.7c1.5,1.8,3,3.6,4.5,5.6
|
||||
c1.4,1.9,2.8,3.9,4,5.8c1.2,1.9,2.2,3.7,3,5.3h-12.4c-0.8-1.3-1.7-2.6-2.7-4.1s-2.1-3-3.1-4.6c-1.1-1.5-2.3-3-3.6-4.4
|
||||
c-1.1-1.3-2.3-2.5-3.6-3.5v16.7h-10.8V18.2l10.8-1.7L128.1,48.4"/>
|
||||
<path id="path2987" class="st2" d="M191.1,71.4c-2.3,0.6-4.7,1.1-7.1,1.4c-3,0.5-6.1,0.7-9.1,0.7c-2.8,0.1-5.5-0.4-8.1-1.3
|
||||
c-2-0.8-3.7-2-5.1-3.6c-1.3-1.7-2.2-3.6-2.7-5.7c-0.6-2.3-0.8-4.8-0.8-7.2V34.6H169v19.9c0,3.5,0.5,6,1.4,7.5s2.6,2.3,5.1,2.3
|
||||
c0.8,0,1.6,0,2.5-0.1s1.6-0.1,2.3-0.3V34.6h10.8L191.1,71.4"/>
|
||||
<path id="path2989" class="st2" d="M225.7,53.4c0-7-2.6-10.4-7.7-10.4c-1.1,0-2.2,0.1-3.3,0.4c-0.9,0.2-1.8,0.6-2.6,1.1v19.6
|
||||
c0.5,0.1,1.2,0.2,2,0.3c0.8,0.1,1.7,0.1,2.7,0.1c2.6,0.2,5.1-0.9,6.7-3C225,59.1,225.8,56.3,225.7,53.4 M236.7,53.8
|
||||
c0,2.8-0.4,5.6-1.4,8.3c-0.8,2.4-2.1,4.5-3.8,6.3c-1.8,1.8-3.9,3.2-6.2,4.1c-2.7,1-5.5,1.4-8.4,1.4c-1.3,0-2.7-0.1-4.1-0.2
|
||||
c-1.4-0.1-2.8-0.3-4.2-0.4c-1.3-0.2-2.6-0.4-3.9-0.7c-1.3-0.2-2.4-0.5-3.3-0.9V18.2l10.8-1.7v19c1.2-0.5,2.5-0.9,3.8-1.2
|
||||
c1.4-0.3,2.8-0.4,4.2-0.4c2.5,0,4.9,0.4,7.2,1.5c2,0.9,3.8,2.3,5.2,4c1.5,1.9,2.6,4,3.2,6.3C236.4,48.2,236.7,51,236.7,53.8"/>
|
||||
<path id="path2991" class="st2" d="M243.2,54c-0.1-3,0.5-6,1.5-8.8c0.9-2.4,2.3-4.5,4.1-6.4c1.7-1.7,3.6-3,5.8-3.8
|
||||
c2.2-0.9,4.5-1.3,6.8-1.3c5.4,0,9.7,1.7,12.8,5c3.1,3.3,4.7,8.2,4.7,14.5c0,0.6,0,1.3-0.1,2.1s-0.1,1.4-0.1,2h-24.5
|
||||
c0.2,2.1,1.3,4.1,3.1,5.3c2.2,1.4,4.8,2.1,7.4,2c1.9,0,3.9-0.2,5.8-0.5c1.6-0.3,3.2-0.8,4.7-1.4l1.5,8.8
|
||||
c-0.7,0.4-1.5,0.6-2.3,0.9c-1.1,0.3-2.2,0.6-3.3,0.7c-1.2,0.2-2.4,0.4-3.8,0.6c-1.3,0.1-2.7,0.2-4.1,0.2c-3.1,0.1-6.1-0.4-9-1.5
|
||||
c-2.4-0.9-4.5-2.3-6.3-4.1c-1.7-1.8-2.9-4-3.7-6.3C243.6,59.3,243.2,56.7,243.2,54 M268.6,49.9c0-0.9-0.2-1.8-0.5-2.7
|
||||
c-0.2-0.9-0.7-1.6-1.2-2.3c-0.6-0.7-1.3-1.3-2.1-1.7c-1-0.5-2-0.7-3.1-0.7c-1.1,0-2.1,0.2-3.1,0.7c-0.8,0.4-1.6,0.9-2.2,1.6
|
||||
c-0.6,0.7-1.1,1.5-1.4,2.4c-0.3,0.9-0.5,1.8-0.6,2.7L268.6,49.9"/>
|
||||
<path id="path2993" class="st2" d="M310.3,44.2c-1-0.2-2.1-0.5-3.4-0.7c-1.4-0.3-2.8-0.4-4.2-0.4c-0.8,0-1.6,0.1-2.5,0.2
|
||||
c-0.7,0.1-1.4,0.2-2.1,0.4v29.1h-10.8V36.6c2.2-0.8,4.5-1.4,6.8-1.9c2.9-0.7,5.9-1,8.8-0.9c0.7,0,1.4,0.1,2.1,0.1
|
||||
c0.8,0,1.6,0.1,2.5,0.3c0.8,0.1,1.6,0.2,2.5,0.4c0.7,0.1,1.4,0.3,2.1,0.6L310.3,44.2"/>
|
||||
<path id="path2995" class="st2" d="M317.9,35.9c2.3-0.6,4.7-1.1,7.1-1.5c3-0.5,6.1-0.7,9.1-0.7c2.7-0.1,5.4,0.4,8,1.3
|
||||
c2,0.7,3.8,1.9,5.1,3.5c1.3,1.6,2.2,3.5,2.7,5.5c0.6,2.3,0.8,4.7,0.8,7.1v21.5H340V52.5c0-3.5-0.5-5.9-1.4-7.4
|
||||
c-0.9-1.4-2.6-2.2-5.1-2.2c-0.8,0-1.6,0-2.5,0.1c-0.9,0-1.6,0.1-2.3,0.2v29.4h-10.8L317.9,35.9"/>
|
||||
<path id="path2997" class="st2" d="M358.9,54c-0.1-3,0.5-6,1.5-8.8c0.9-2.4,2.3-4.5,4.1-6.4c1.7-1.7,3.6-3,5.8-3.8
|
||||
c2.2-0.9,4.5-1.3,6.8-1.3c5.4,0,9.7,1.7,12.8,5c3.1,3.3,4.7,8.2,4.7,14.6c0,0.6,0,1.3-0.1,2.1s-0.1,1.4-0.1,2h-24.5
|
||||
c0.2,2.1,1.3,4.1,3.1,5.3c2.2,1.4,4.8,2.1,7.4,2c1.9,0,3.9-0.2,5.8-0.5c1.6-0.3,3.2-0.8,4.8-1.5l1.5,8.8
|
||||
c-0.7,0.4-1.5,0.6-2.3,0.9c-1.1,0.3-2.2,0.6-3.3,0.7c-1.2,0.2-2.4,0.4-3.8,0.6c-1.3,0.1-2.7,0.2-4.1,0.2c-3.1,0.1-6.1-0.4-9-1.5
|
||||
c-2.4-0.9-4.5-2.3-6.3-4.1c-1.7-1.8-2.9-4-3.7-6.3C359.2,59.3,358.8,56.6,358.9,54 M384.2,49.9c0-0.9-0.2-1.8-0.5-2.7
|
||||
c-0.2-0.9-0.7-1.6-1.2-2.3c-0.6-0.7-1.3-1.3-2.1-1.7c-1-0.5-2-0.7-3.1-0.7c-1.1,0-2.1,0.2-3.1,0.7c-0.8,0.4-1.5,0.9-2.1,1.6
|
||||
c-0.6,0.7-1.1,1.5-1.4,2.4c-0.3,0.9-0.5,1.8-0.6,2.7L384.2,49.9"/>
|
||||
<path id="path2999" class="st2" d="M402.6,25.1l10.8-1.7v11.2h13v9h-13V57c-0.1,1.9,0.3,3.8,1.2,5.4c0.8,1.3,2.4,2,4.9,2
|
||||
c1.2,0,2.4-0.1,3.5-0.3c1.2-0.2,2.3-0.5,3.4-0.9l1.5,8.4c-1.4,0.6-2.9,1-4.4,1.4c-1.9,0.4-3.9,0.6-5.9,0.6
|
||||
c-2.5,0.1-5-0.3-7.3-1.2c-1.8-0.7-3.4-1.9-4.6-3.3c-1.2-1.5-2-3.3-2.5-5.2c-0.5-2.2-0.7-4.5-0.6-6.7V25.1"/>
|
||||
<path id="path3001" class="st2" d="M431.9,54c-0.1-3,0.5-6,1.5-8.8c0.9-2.4,2.3-4.5,4.1-6.4c1.7-1.7,3.6-3,5.8-3.8
|
||||
c2.2-0.9,4.5-1.3,6.8-1.3c5.4,0,9.7,1.7,12.8,5s4.7,8.2,4.7,14.6c0,0.6,0,1.3-0.1,2.1c0,0.8-0.1,1.4-0.1,2H443
|
||||
c0.2,2.1,1.3,4.1,3.1,5.3c2.2,1.4,4.8,2.1,7.4,2c1.9,0,3.9-0.2,5.8-0.5c1.6-0.3,3.2-0.8,4.7-1.5l1.5,8.8
|
||||
c-0.7,0.4-1.5,0.6-2.3,0.9c-1.1,0.3-2.2,0.6-3.3,0.7c-1.2,0.2-2.4,0.4-3.8,0.6c-1.3,0.1-2.7,0.2-4.1,0.2c-3.1,0.1-6.1-0.4-9-1.5
|
||||
c-2.4-0.9-4.5-2.3-6.3-4.1c-1.7-1.8-2.9-4-3.7-6.3C432.3,59.3,431.9,56.6,431.9,54 M457.2,49.9c0-0.9-0.2-1.8-0.5-2.7
|
||||
c-0.2-0.9-0.7-1.6-1.2-2.3c-0.6-0.7-1.3-1.3-2.1-1.7c-1-0.5-2-0.7-3.1-0.7c-1.1,0-2.1,0.2-3.1,0.7c-0.8,0.4-1.6,0.9-2.2,1.6
|
||||
c-0.6,0.7-1.1,1.5-1.4,2.4c-0.3,0.9-0.5,1.8-0.6,2.7L457.2,49.9"/>
|
||||
<path id="path3003" class="st2" d="M487,65c1.4,0.1,2.9-0.1,4.2-0.6c0.8-0.4,1.3-1.3,1.2-2.2c-0.1-1-0.7-1.9-1.6-2.2
|
||||
c-1.5-0.9-3.2-1.7-4.9-2.2c-1.7-0.6-3.2-1.3-4.6-2c-1.3-0.6-2.4-1.4-3.5-2.4c-1-1-1.7-2.1-2.2-3.4c-0.6-1.5-0.8-3.1-0.8-4.7
|
||||
c-0.1-3.3,1.4-6.5,4-8.5c2.7-2.1,6.3-3.1,10.9-3.1c2.2,0,4.5,0.2,6.7,0.7c1.7,0.3,3.4,0.7,5.1,1.3l-1.9,8.5
|
||||
c-1.4-0.5-2.7-0.8-4.1-1.2c-1.6-0.4-3.3-0.5-4.9-0.5c-3.4,0-5.1,0.9-5.1,2.8c0,0.4,0.1,0.8,0.2,1.2c0.2,0.4,0.5,0.7,0.9,1
|
||||
c0.4,0.3,1,0.6,1.7,1c0.7,0.4,1.7,0.8,2.9,1.2c2,0.7,4,1.6,5.8,2.6c1.4,0.7,2.6,1.6,3.6,2.8c0.9,0.9,1.5,2,1.9,3.3
|
||||
c0.4,1.4,0.6,2.8,0.6,4.2c0.2,3.4-1.4,6.7-4.3,8.6c-2.8,1.9-6.8,2.9-12,2.9c-2.9,0.1-5.7-0.2-8.5-0.9c-1.6-0.4-3.1-0.9-4.6-1.4
|
||||
l1.8-8.8c1.8,0.7,3.7,1.3,5.6,1.7C483.1,64.8,485,65,487,65"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 11 KiB |
@@ -1,108 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 500.6 84.5" style="enable-background:new 0 0 500.6 84.5;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#326DE6;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
.st2{fill:#326DE5;}
|
||||
</style>
|
||||
<title>Kubernetes_Logo_Hrz_lockup_POS</title>
|
||||
<g id="Layer_2">
|
||||
<g id="Layer_1-2">
|
||||
<path class="st0" d="M79.8,18.8c-0.5-1.6-1.7-2.9-3.2-3.7L46.1,0.5c-0.8-0.4-1.7-0.5-2.5-0.5c-0.8,0-1.7,0-2.5,0.2L10.6,14.9
|
||||
c-1.5,0.7-2.6,2-3,3.7L0,51.5c-0.3,1.7,0.1,3.4,1.1,4.8l21.1,26.1c1.2,1.2,2.9,2,4.6,2.1h33.7c1.8,0.2,3.5-0.6,4.6-2.1l21.1-26.1
|
||||
c1-1.4,1.4-3.1,1.2-4.8L79.8,18.8z"/>
|
||||
<path class="st1" d="M75,50.2L75,50.2c-0.1,0-0.1,0-0.1-0.1S74.6,50,74.5,50c-0.4-0.1-0.8-0.1-1.2-0.1c-0.2,0-0.4,0-0.6-0.1h-0.1
|
||||
c-1.1-0.1-2.3-0.3-3.4-0.6c-0.3-0.1-0.6-0.4-0.7-0.7c0-0.1-0.1-0.1-0.1-0.1l0,0l-0.8-0.2c0.4-2.9,0.2-5.9-0.4-8.8
|
||||
c-0.7-2.9-1.9-5.7-3.5-8.2l0.6-0.6l0,0v-0.1c0-0.3,0.1-0.7,0.3-0.9c0.9-0.7,1.8-1.4,2.8-1.9l0,0c0.2-0.1,0.4-0.2,0.6-0.3
|
||||
c0.4-0.2,0.7-0.4,1.1-0.6c0.1-0.1,0.2-0.1,0.3-0.2s0.1-0.1,0.1-0.1l0,0c0.9-0.7,1.1-1.9,0.4-2.8c-0.3-0.4-0.9-0.7-1.4-0.7
|
||||
c-0.5,0-1,0.2-1.4,0.5l0,0l-0.1,0.1c-0.1,0.1-0.2,0.2-0.3,0.2c-0.3,0.3-0.6,0.6-0.8,0.9c-0.1,0.2-0.3,0.3-0.4,0.4l0,0
|
||||
c-0.8,0.8-1.6,1.6-2.5,2.2c-0.2,0.1-0.4,0.2-0.6,0.2c-0.1,0-0.3,0-0.4-0.1H62L61.2,28c-0.8-0.8-1.7-1.6-2.5-2.4
|
||||
c-3.7-2.9-8.3-4.7-13-5.2l-0.1-0.8l0,0l-0.1-0.1c-0.3-0.2-0.4-0.5-0.5-0.8c0-1.1,0-2.2,0.2-3.4v-0.1c0-0.2,0.1-0.4,0.1-0.6
|
||||
c0.1-0.4,0.1-0.8,0.2-1.2v-0.6l0,0c0.1-1-0.7-2-1.7-2c-0.6,0-1.2,0.2-1.6,0.6c-0.4,0.4-0.6,0.9-0.6,1.4l0,0v0.5
|
||||
c0,0.4,0.1,0.8,0.2,1.2c0.1,0.2,0.1,0.4,0.1,0.6v0.1c0.2,1.1,0.2,2.2,0.2,3.4c-0.1,0.3-0.2,0.6-0.5,0.8l-0.1,0.1l0,0l-0.1,0.8
|
||||
c-1.1,0.1-2.2,0.3-3.4,0.5c-4.7,1-9,3.5-12.3,7l-0.6-0.4H25c-0.1,0-0.2,0.1-0.4,0.1c-0.2,0-0.5-0.1-0.6-0.2
|
||||
c-0.9-0.7-1.7-1.5-2.5-2.3l0,0c-0.1-0.2-0.3-0.3-0.4-0.4c-0.3-0.3-0.5-0.6-0.8-0.9c-0.1-0.1-0.2-0.1-0.3-0.2s-0.1-0.1-0.1-0.1l0,0
|
||||
c-0.4-0.3-0.9-0.5-1.4-0.5c-0.6,0-1.1,0.2-1.5,0.7c-0.6,0.9-0.4,2.1,0.4,2.8l0,0c0.1,0,0.1,0.1,0.1,0.1s0.2,0.2,0.3,0.2
|
||||
c0.3,0.2,0.7,0.4,1.1,0.6c0.2,0.1,0.4,0.2,0.6,0.3l0,0c1,0.6,1.9,1.2,2.8,1.9c0.2,0.2,0.4,0.6,0.3,0.9v0.1l0,0l0.6,0.6
|
||||
c-0.1,0.2-0.2,0.3-0.3,0.5c-3.1,4.9-4.3,10.7-3.4,16.4l-0.8,0.2l0,0c0,0.1-0.1,0.1-0.1,0.1c-0.1,0.3-0.4,0.5-0.7,0.7
|
||||
c-1.1,0.3-2.2,0.5-3.4,0.6h-0.1c-0.2,0-0.4,0-0.6,0.1c-0.4,0-0.8,0.1-1.2,0.1c-0.1,0-0.2,0.1-0.4,0.1c-0.1,0-0.1,0-0.2,0.1l0,0
|
||||
c-1.1,0.2-1.8,1.2-1.6,2.3c0.2,0.9,1.1,1.5,2,1.4c0.2,0,0.3,0,0.5-0.1l0,0c0.1,0,0.1,0,0.1-0.1s0.2-0.1,0.4-0.1
|
||||
c0.4-0.1,0.8-0.3,1.1-0.4c0.2-0.1,0.4-0.2,0.6-0.2h0.1c1-0.4,2.1-0.7,3.2-0.9h0.1c0.3,0,0.6,0.1,0.8,0.3c0.1,0,0.1,0.1,0.1,0.1
|
||||
l0,0l0.9-0.1c1.5,4.6,4.3,8.7,8.2,11.7c0.9,0.7,1.7,1.3,2.7,1.8l-0.4,0.8l0,0c0,0.1,0.1,0.1,0.1,0.1c0.2,0.3,0.2,0.7,0.1,1
|
||||
c-0.4,1-1,2-1.6,2.9v0.1c-0.1,0.2-0.2,0.3-0.4,0.5s-0.4,0.6-0.7,1c-0.1,0.1-0.1,0.2-0.2,0.3c0,0,0,0.1-0.1,0.1l0,0
|
||||
c-0.5,1-0.1,2.2,0.8,2.7c0.2,0.1,0.5,0.2,0.8,0.2c0.8,0,1.5-0.5,1.9-1.2l0,0c0,0,0-0.1,0.1-0.1c0-0.1,0.1-0.2,0.2-0.3
|
||||
c0.1-0.4,0.3-0.7,0.4-1.1l0.2-0.6l0,0c0.3-1.1,0.8-2.1,1.3-3.1c0.2-0.3,0.5-0.5,0.8-0.6c0.1,0,0.1,0,0.1-0.1l0,0l0.4-0.8
|
||||
c2.8,1.1,5.7,1.6,8.7,1.6c1.8,0,3.6-0.2,5.4-0.6c1.1-0.2,2.2-0.6,3.2-0.9l0.4,0.7l0,0c0.1,0,0.1,0,0.1,0.1
|
||||
c0.3,0.1,0.6,0.3,0.8,0.6c0.5,1,0.9,2,1.3,3v0.1l0.2,0.6c0.1,0.4,0.2,0.8,0.4,1.1c0.1,0.1,0.1,0.2,0.2,0.3c0,0,0,0.1,0.1,0.1l0,0
|
||||
c0.4,0.7,1.1,1.2,1.9,1.2c0.3,0,0.5-0.1,0.8-0.2c0.4-0.2,0.8-0.6,0.9-1.1c0.1-0.5,0.1-1.1-0.1-1.6l0,0c0-0.1-0.1-0.1-0.1-0.1
|
||||
c0-0.1-0.1-0.2-0.2-0.3c-0.2-0.4-0.4-0.7-0.7-1c-0.1-0.2-0.2-0.3-0.4-0.5v-0.1c-0.7-0.9-1.2-1.9-1.6-2.9c-0.1-0.3-0.1-0.7,0.1-1
|
||||
c0-0.1,0.1-0.1,0.1-0.1l0,0l-0.3-0.8c5.2-3.1,9-7.9,10.9-13.6l0.8,0.1l0,0c0.1,0,0.1-0.1,0.1-0.1c0.2-0.2,0.5-0.3,0.8-0.3h0.1
|
||||
c1.1,0.2,2.2,0.5,3.2,0.9h0.1c0.2,0.1,0.4,0.2,0.6,0.2c0.4,0.2,0.7,0.3,1.1,0.4c0.1,0,0.2,0.1,0.4,0.1c0.1,0,0.1,0,0.2,0.1l0,0
|
||||
c0.2,0.1,0.3,0.1,0.5,0.1c0.9,0,1.7-0.6,2-1.4C76.7,51.2,76,50.4,75,50.2z M46.2,47.1l-2.7,1.3l-2.7-1.3L40,44.2l1.9-2.4H45
|
||||
l1.9,2.4L46.2,47.1z M62.5,40.6c0.5,2.1,0.6,4.2,0.4,6.3l-9.5-2.7l0,0c-0.9-0.2-1.4-1.1-1.2-2c0.1-0.3,0.2-0.5,0.4-0.7l7.5-6.8
|
||||
C61.2,36.5,62,38.5,62.5,40.6L62.5,40.6z M57.1,31L49,36.8c-0.7,0.4-1.7,0.3-2.2-0.4c-0.2-0.2-0.3-0.4-0.3-0.7l-0.6-10.1
|
||||
C50.1,26.1,54.1,28,57.1,31z M39,25.9l2-0.4l-0.6,10l0,0c0,0.9-0.8,1.6-1.7,1.6c-0.3,0-0.5-0.1-0.8-0.2L29.8,31
|
||||
C32.3,28.5,35.5,26.7,39,25.9z M26.8,34.7l7.4,6.6l0,0c0.7,0.6,0.8,1.6,0.2,2.3c-0.2,0.3-0.4,0.4-0.8,0.5L24,46.9
|
||||
C23.6,42.7,24.6,38.4,26.8,34.7z M25.1,51.6l9.9-1.7c0.8,0,1.6,0.5,1.7,1.3c0.1,0.3,0.1,0.7-0.1,1l0,0l-3.8,9.2
|
||||
C29.3,59.1,26.5,55.6,25.1,51.6z M47.8,64c-1.4,0.3-2.9,0.5-4.4,0.5c-2.1,0-4.3-0.4-6.3-1l4.9-8.9c0.5-0.6,1.3-0.8,2-0.4
|
||||
c0.3,0.2,0.5,0.4,0.8,0.7l0,0l4.8,8.7C49.1,63.7,48.5,63.8,47.8,64z M60,55.3c-1.5,2.4-3.6,4.5-6,6L50.1,52
|
||||
c-0.2-0.8,0.1-1.6,0.9-2c0.3-0.1,0.6-0.2,0.9-0.2l10,1.7C61.4,52.9,60.8,54.2,60,55.3z"/>
|
||||
<g id="layer1">
|
||||
<g id="text4373">
|
||||
<path id="path2985" class="st2" d="M125.7,45.9c1.1-1.2,2.1-2.4,3.3-3.6c1.1-1.3,2.2-2.5,3.3-3.7c1.1-1.3,2.1-2.4,3-3.5
|
||||
s1.8-2.1,2.5-2.9h12.8c-2.6,2.9-5.1,5.8-7.5,8.5c-2.5,2.7-5.1,5.5-8,8.3c1.6,1.5,3.1,3,4.5,4.7c1.5,1.8,3,3.6,4.5,5.6
|
||||
c1.4,1.9,2.8,3.9,4,5.8c1.2,1.9,2.2,3.7,3,5.3h-12.3c-0.8-1.3-1.7-2.6-2.7-4.1s-2.1-3-3.1-4.6c-1.1-1.5-2.3-3-3.6-4.4
|
||||
c-1.1-1.3-2.3-2.5-3.6-3.5v16.7h-10.8V15.7l10.8-1.7V45.9"/>
|
||||
<path id="path2987" class="st2" d="M188.6,68.9c-2.3,0.6-4.7,1.1-7.1,1.4c-3,0.5-6.1,0.7-9.1,0.7c-2.8,0.1-5.5-0.4-8.1-1.3
|
||||
c-2-0.8-3.7-2-5.1-3.6c-1.3-1.7-2.2-3.6-2.7-5.7c-0.6-2.3-0.8-4.8-0.8-7.2V32.1h10.8V52c0,3.5,0.5,6,1.4,7.5
|
||||
c0.9,1.5,2.6,2.3,5.1,2.4c0.8,0,1.6,0,2.5-0.1s1.6-0.1,2.3-0.3V32.1h10.8L188.6,68.9"/>
|
||||
<path id="path2989" class="st2" d="M223.2,50.9c0-7-2.6-10.4-7.7-10.4c-1.1,0-2.2,0.1-3.3,0.4c-0.9,0.2-1.8,0.6-2.6,1.1v19.6
|
||||
c0.5,0.1,1.2,0.2,2,0.3c0.8,0.1,1.7,0.1,2.7,0.1c2.6,0.2,5.1-0.9,6.7-3C222.5,56.6,223.3,53.8,223.2,50.9 M234.2,51.3
|
||||
c0,2.8-0.4,5.6-1.4,8.3c-0.8,2.4-2.1,4.5-3.8,6.3c-1.8,1.8-3.9,3.2-6.2,4.1c-2.7,1-5.5,1.4-8.4,1.4c-1.3,0-2.7-0.1-4.1-0.2
|
||||
c-1.4-0.1-2.8-0.3-4.2-0.4c-1.3-0.2-2.6-0.4-3.9-0.7c-1.3-0.2-2.4-0.6-3.3-1V15.7l10.8-1.7v19c1.2-0.5,2.5-0.9,3.8-1.2
|
||||
c1.4-0.3,2.8-0.4,4.2-0.4c2.5,0,4.9,0.4,7.2,1.5c2,0.9,3.8,2.3,5.2,4c1.5,1.9,2.6,4,3.2,6.3C233.9,45.7,234.3,48.5,234.2,51.3"
|
||||
/>
|
||||
<path id="path2991" class="st2" d="M240.7,51.5c-0.1-3,0.5-6,1.5-8.8c0.9-2.4,2.3-4.5,4.1-6.4c1.7-1.7,3.6-3,5.8-3.8
|
||||
c2.2-0.9,4.5-1.3,6.8-1.3c5.4,0,9.7,1.7,12.8,5c3.1,3.3,4.7,8.2,4.7,14.6c0,0.6,0,1.3-0.1,2.1s-0.1,1.4-0.1,2h-24.5
|
||||
c0.2,2.1,1.3,4,3.1,5.2c2.2,1.4,4.8,2.1,7.4,2c1.9,0,3.9-0.2,5.8-0.5c1.6-0.3,3.2-0.8,4.7-1.4l1.5,8.8c-0.7,0.4-1.5,0.6-2.3,0.9
|
||||
c-1.1,0.3-2.2,0.6-3.3,0.7c-1.2,0.2-2.4,0.4-3.8,0.6c-1.3,0.1-2.7,0.2-4.1,0.2c-3.1,0.1-6.1-0.4-9-1.5c-2.4-0.9-4.5-2.3-6.3-4.1
|
||||
c-1.7-1.8-2.9-4-3.7-6.3C241.1,56.8,240.7,54.1,240.7,51.5 M266,47.4c0-0.9-0.2-1.8-0.5-2.7c-0.2-0.9-0.7-1.6-1.2-2.3
|
||||
c-0.6-0.7-1.3-1.3-2.1-1.7c-1-0.5-2-0.7-3.1-0.7c-1.1,0-2.1,0.2-3.1,0.7c-0.8,0.4-1.6,0.9-2.2,1.6c-0.6,0.7-1.1,1.5-1.4,2.4
|
||||
c-0.3,0.9-0.5,1.8-0.6,2.7L266,47.4"/>
|
||||
<path id="path2993" class="st2" d="M307.8,41.7c-1-0.2-2.1-0.5-3.4-0.7c-1.4-0.3-2.8-0.4-4.2-0.4c-0.8,0-1.6,0.1-2.5,0.2
|
||||
c-0.7,0.1-1.4,0.2-2.1,0.4v29.1h-10.8V34.1c2.2-0.8,4.5-1.4,6.8-1.9c2.9-0.7,5.9-1,8.8-0.9c0.7,0,1.4,0.1,2.1,0.1
|
||||
c0.8,0,1.6,0.1,2.5,0.3c0.8,0.1,1.6,0.2,2.5,0.4c0.7,0.1,1.4,0.3,2.1,0.6L307.8,41.7"/>
|
||||
<path id="path2995" class="st2" d="M315.4,33.4c2.3-0.6,4.7-1.1,7.1-1.5c3-0.5,6.1-0.7,9.1-0.7c2.7-0.1,5.4,0.4,8,1.3
|
||||
c2,0.7,3.8,1.9,5.1,3.5c1.3,1.6,2.2,3.5,2.7,5.5c0.6,2.3,0.8,4.7,0.8,7.1v21.5h-10.8V50c0-3.5-0.5-5.9-1.4-7.4
|
||||
c-0.9-1.4-2.6-2.2-5.1-2.2c-0.8,0-1.6,0-2.5,0.1c-0.9,0-1.6,0.1-2.3,0.2v29.4h-10.8L315.4,33.4"/>
|
||||
<path id="path2997" class="st2" d="M356.4,51.5c-0.1-3,0.5-6,1.5-8.8c0.9-2.4,2.3-4.5,4.1-6.4c1.7-1.7,3.6-3,5.8-3.8
|
||||
c2.2-0.9,4.5-1.3,6.8-1.3c5.4,0,9.7,1.7,12.8,5c3.1,3.3,4.7,8.2,4.7,14.6c0,0.6,0,1.3-0.1,2.1c0,0.8-0.1,1.4-0.1,2h-24.5
|
||||
c0.2,2.1,1.3,4,3.1,5.2c2.2,1.4,4.8,2.1,7.4,2c1.9,0,3.9-0.2,5.8-0.5c1.6-0.3,3.2-0.8,4.7-1.4l1.5,8.8c-0.7,0.4-1.5,0.6-2.3,0.9
|
||||
c-1.1,0.3-2.2,0.6-3.3,0.7c-1.2,0.2-2.4,0.4-3.8,0.6c-1.3,0.1-2.7,0.2-4.1,0.2c-3.1,0.1-6.1-0.4-9-1.5c-2.4-0.9-4.5-2.3-6.3-4.1
|
||||
c-1.7-1.8-2.9-4-3.7-6.3C356.7,56.8,356.3,54.1,356.4,51.5 M381.7,47.4c0-0.9-0.2-1.8-0.5-2.7c-0.2-0.9-0.6-1.7-1.2-2.4
|
||||
c-0.6-0.7-1.3-1.3-2.1-1.7c-1-0.5-2-0.7-3.1-0.7c-1.1,0-2.1,0.2-3.1,0.7c-0.8,0.4-1.6,0.9-2.2,1.6c-0.6,0.7-1.1,1.5-1.4,2.4
|
||||
c-0.3,0.9-0.5,1.8-0.6,2.7L381.7,47.4"/>
|
||||
<path id="path2999" class="st2" d="M400.1,22.6l10.8-1.7v11.2h13v9h-13v13.4c-0.1,1.9,0.3,3.8,1.2,5.4c0.8,1.3,2.4,2,4.9,2
|
||||
c1.2,0,2.4-0.1,3.5-0.3c1.2-0.2,2.3-0.5,3.4-0.9l1.5,8.4c-1.4,0.6-2.9,1-4.4,1.4c-1.9,0.4-3.9,0.6-5.9,0.6
|
||||
c-2.5,0.1-5-0.3-7.3-1.2c-1.8-0.7-3.4-1.9-4.6-3.3c-1.2-1.5-2-3.3-2.5-5.2c-0.5-2.2-0.7-4.5-0.6-6.7L400.1,22.6"/>
|
||||
<path id="path3001" class="st2" d="M429.4,51.5c-0.1-3,0.5-6,1.5-8.8c0.9-2.4,2.3-4.5,4.1-6.4c1.7-1.7,3.6-3,5.8-3.8
|
||||
c2.2-0.9,4.5-1.3,6.8-1.3c5.4,0,9.7,1.7,12.8,5c3.1,3.3,4.7,8.2,4.7,14.6c0,0.6,0,1.3-0.1,2.1c0,0.8-0.1,1.4-0.1,2h-24.5
|
||||
c0.2,2.1,1.4,4,3.1,5.2c2.2,1.4,4.8,2.1,7.4,2c1.9,0,3.9-0.2,5.8-0.5c1.6-0.3,3.2-0.8,4.7-1.4l1.5,8.8c-0.7,0.4-1.5,0.6-2.3,0.9
|
||||
c-1.1,0.3-2.2,0.6-3.3,0.7c-1.2,0.2-2.4,0.4-3.8,0.6c-1.3,0.1-2.7,0.2-4.1,0.2c-3.1,0.1-6.1-0.4-9-1.5c-2.4-0.9-4.5-2.3-6.3-4.1
|
||||
c-1.7-1.8-2.9-4-3.7-6.3C429.8,56.8,429.4,54.1,429.4,51.5 M454.8,47.4c0-0.9-0.2-1.8-0.5-2.7c-0.2-0.9-0.7-1.7-1.2-2.4
|
||||
c-0.6-0.7-1.3-1.3-2.1-1.7c-1-0.5-2-0.7-3.1-0.7c-1.1,0-2.1,0.2-3.1,0.7c-0.8,0.4-1.6,0.9-2.2,1.6c-0.6,0.7-1.1,1.5-1.4,2.4
|
||||
c-0.3,0.9-0.5,1.8-0.6,2.7L454.8,47.4"/>
|
||||
<path id="path3003" class="st2" d="M484.5,62.5c1.4,0.1,2.9-0.1,4.2-0.6c0.8-0.4,1.3-1.3,1.2-2.2c-0.1-1-0.7-1.9-1.6-2.2
|
||||
c-1.5-0.9-3.2-1.7-4.9-2.2c-1.7-0.6-3.2-1.3-4.6-2c-1.3-0.6-2.4-1.4-3.5-2.4c-1-1-1.7-2.1-2.2-3.4c-0.6-1.5-0.8-3.1-0.8-4.7
|
||||
c-0.1-3.3,1.4-6.5,4-8.5c2.7-2.1,6.3-3.1,10.9-3.1c2.2,0,4.5,0.2,6.7,0.6c1.7,0.3,3.4,0.7,5.1,1.3l-1.9,8.4
|
||||
c-1.4-0.5-2.7-0.8-4.1-1.2c-1.6-0.3-3.3-0.5-4.9-0.4c-3.4,0-5.1,0.9-5.1,2.8c0,0.4,0.1,0.8,0.2,1.2c0.2,0.4,0.5,0.7,0.9,1
|
||||
c0.4,0.3,1,0.6,1.7,1c0.7,0.4,1.7,0.8,2.9,1.2c2,0.7,4,1.6,5.9,2.6c1.4,0.7,2.6,1.6,3.6,2.8c0.9,0.9,1.5,2.1,1.9,3.3
|
||||
c0.4,1.4,0.6,2.8,0.6,4.2c0.2,3.4-1.4,6.7-4.3,8.6c-2.8,1.9-6.8,2.9-12,2.9c-2.9,0.1-5.7-0.2-8.5-0.9c-1.6-0.4-3.1-0.9-4.6-1.4
|
||||
l1.8-8.8c1.8,0.7,3.7,1.3,5.6,1.7C480.5,62.3,482.4,62.5,484.5,62.5"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 10 KiB |
@@ -1,36 +0,0 @@
|
||||
/*
|
||||
Copyright 2018 Google LLC
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
https://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
"use strict";
|
||||
|
||||
var Search = {
|
||||
init: function () {
|
||||
$(document).ready(function () {
|
||||
$(document).on("keypress", ".td-search-input", function (e) {
|
||||
if (e.keyCode !== 13) {
|
||||
return;
|
||||
}
|
||||
|
||||
var query = $(this).val();
|
||||
var searchPage = "{{ "docs/search/" | absURL }}?q=" + query;
|
||||
document.location = searchPage;
|
||||
|
||||
return false;
|
||||
});
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
Search.init();
|
||||
})(jQuery);
|
||||
@@ -1,847 +0,0 @@
|
||||
@import "reset";
|
||||
|
||||
// header
|
||||
$full-width-paddingX: 20px;
|
||||
|
||||
$main-width: 100%;
|
||||
$main-max-width: 100%;
|
||||
|
||||
$header-height: 80px;
|
||||
|
||||
$logo-width: 180px;
|
||||
|
||||
$nav-buttons-margin-left: 30px;
|
||||
|
||||
$hamburger-size: 50px;
|
||||
|
||||
// main nav
|
||||
$main-nav-padding: 140px 0 30px;
|
||||
$main-nav-h5-margin-bottom: 1em;
|
||||
$main-nav-h3-margin-bottom: 0.6em;
|
||||
$nav-box-width: 20%;
|
||||
$nav-box-sibling-margin-left: calc(20% / 3);
|
||||
$main-nav-main-sibling-margin-top: 60px;
|
||||
$main-nav-left-button-size: 50px;
|
||||
$main-nav-left-button-font-size: 18px;
|
||||
|
||||
// hero
|
||||
$hero-padding-top: 80px;
|
||||
$headline-wrapper-margin-bottom: 40px;
|
||||
$quickstart-button-padding: 0 50px;
|
||||
$vendor-strip-height: 88px;
|
||||
$vendor-strip-font-size: 16px;
|
||||
|
||||
// video
|
||||
$video-section-height: 200px;
|
||||
|
||||
@import "size";
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
body {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
section {
|
||||
position: relative;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
section,
|
||||
header,
|
||||
footer {
|
||||
.main-section {
|
||||
position: relative;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.button {
|
||||
display: inline-block;
|
||||
border-radius: 6px;
|
||||
padding: 6px 20px;
|
||||
line-height: 1.3rem;
|
||||
color: white;
|
||||
background-color: $blue;
|
||||
text-decoration: none;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
#cellophane {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
// HEADER
|
||||
|
||||
#hamburger {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
margin-left: auto;
|
||||
vertical-align: middle;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
background: none;
|
||||
|
||||
div,
|
||||
&:before,
|
||||
&:after {
|
||||
position: absolute;
|
||||
left: 15%;
|
||||
width: 70%;
|
||||
height: 2px;
|
||||
background-color: $blue;
|
||||
transition: 0.3s;
|
||||
content: "";
|
||||
}
|
||||
|
||||
div {
|
||||
top: calc(50% - 1px);
|
||||
}
|
||||
|
||||
&:before {
|
||||
top: 24%;
|
||||
}
|
||||
|
||||
&:after {
|
||||
bottom: 24%;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
div,
|
||||
&:before,
|
||||
&:after {
|
||||
background-color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// HERO
|
||||
.header-hero {
|
||||
background-image: url(/images/texture.png);
|
||||
background-color: $dark-grey;
|
||||
text-align: center;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
margin-bottom: 0;
|
||||
position: relative;
|
||||
|
||||
&.bot-bar:after {
|
||||
display: block;
|
||||
margin-bottom: -24px;
|
||||
height: 8px;
|
||||
width: 100%;
|
||||
background-color: transparentize(white, 0.9);
|
||||
content: "";
|
||||
}
|
||||
|
||||
&.no-sub {
|
||||
h5 {
|
||||
display: none;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.td-home .header-hero:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.header-hero {
|
||||
background-color: $dark-grey;
|
||||
|
||||
h5 {
|
||||
margin: 20px 0;
|
||||
line-height: 28px;
|
||||
}
|
||||
}
|
||||
|
||||
#vendorStrip {
|
||||
position: relative;
|
||||
|
||||
ul {
|
||||
float: left;
|
||||
}
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
a {
|
||||
display: block;
|
||||
height: 100%;
|
||||
color: white;
|
||||
font-size: 0.75em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
li + li {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.pi-accordion {
|
||||
& > .container:first-child > .item:first-child > .title:first-child {
|
||||
padding-left: 0;
|
||||
font-size: 1.5em;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
& > .container:first-child > .item.yah:first-child > .title:first-child {
|
||||
margin-left: -20px !important;
|
||||
}
|
||||
|
||||
.item {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.title {
|
||||
color: $dark-grey;
|
||||
position: relative;
|
||||
padding: 7.5px 10px 7.5px 18px;
|
||||
cursor: pointer;
|
||||
transition: 0.3s;
|
||||
|
||||
&:hover {
|
||||
color: $blue;
|
||||
}
|
||||
}
|
||||
|
||||
a.item > .title {
|
||||
color: black;
|
||||
|
||||
&:hover {
|
||||
color: $blue;
|
||||
}
|
||||
}
|
||||
|
||||
div.item > .title {
|
||||
&:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 12px;
|
||||
left: 2px;
|
||||
border-style: solid;
|
||||
border-width: 5px 0 5px 8px;
|
||||
border-color: transparent transparent transparent $blue;
|
||||
transform: rotate(0deg);
|
||||
transition: 0.3s;
|
||||
}
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
transition: height 0.3s;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding-left: 20px;
|
||||
opacity: 0;
|
||||
transition: 0.3s;
|
||||
}
|
||||
|
||||
.item.on {
|
||||
& > .title:before {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
|
||||
& > .wrapper > .content {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dt {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.pi-pushmenu {
|
||||
display: none;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s;
|
||||
|
||||
&.on {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
.sled {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 0;
|
||||
height: 100%;
|
||||
background-color: white;
|
||||
overflow: auto;
|
||||
transition: 0.3s;
|
||||
}
|
||||
|
||||
&.on .sled {
|
||||
width: 400px;
|
||||
max-width: 100vw;
|
||||
}
|
||||
|
||||
.top-bar {
|
||||
height: 0;
|
||||
line-height: 60px;
|
||||
background-color: #444;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin-top: 25px;
|
||||
}
|
||||
|
||||
li {
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 100%;
|
||||
min-height: 45px;
|
||||
padding: 0 60px 0 20px;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
}
|
||||
|
||||
a {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
height: 45px;
|
||||
line-height: 45px;
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-size: 20px;
|
||||
color: $blue;
|
||||
}
|
||||
|
||||
.button {
|
||||
background: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ul ul {
|
||||
padding: 0 20px;
|
||||
|
||||
li {
|
||||
min-height: 40px;
|
||||
}
|
||||
|
||||
a {
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
font-size: 18px;
|
||||
color: lighten(#222222, 20%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.push-menu-close-button {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: calc(50% - 1px);
|
||||
left: 25%;
|
||||
width: 50%;
|
||||
height: 2px;
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
&:before {
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
&:after {
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
}
|
||||
|
||||
// ocean nodes
|
||||
$ocean-nodes-padding-Y: 60px;
|
||||
$ocean-nodes-main-margin-bottom: 60px;
|
||||
$ocean-nodes-h3-margin-bottom: 30px;
|
||||
|
||||
// video
|
||||
$video-section-height: 200px;
|
||||
|
||||
// features
|
||||
$features-h3-margin-bottom: 20px;
|
||||
$feature-box-div-width: 100%;
|
||||
$feature-box-margin-bottom: 0;
|
||||
$feature-box-div-margin-bottom: 40px;
|
||||
|
||||
// Home-specific
|
||||
|
||||
.td-home {
|
||||
&.flip-nav,
|
||||
&.open-nav {
|
||||
.logo {
|
||||
background-image: url(/images/nav_logo2.svg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.header-hero {
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 1px;
|
||||
|
||||
.main-section {
|
||||
padding: 0 10px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
#vendorStrip {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
// Add logo to CNCF section
|
||||
section#cncf {
|
||||
padding-top: 60px;
|
||||
padding-bottom: 140px;
|
||||
background-image: url(/images/cncf-color.svg);
|
||||
background-position: center 100px;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 300px;
|
||||
}
|
||||
|
||||
// OCEAN NODES
|
||||
#oceanNodes {
|
||||
padding-top: $ocean-nodes-padding-Y;
|
||||
padding-bottom: $ocean-nodes-padding-Y;
|
||||
|
||||
a {
|
||||
color: $blue;
|
||||
}
|
||||
|
||||
.main-section {
|
||||
margin-bottom: $ocean-nodes-padding-Y;
|
||||
min-height: 160px;
|
||||
}
|
||||
|
||||
.image-wrapper {
|
||||
max-width: 75%;
|
||||
margin: 0 auto 20px;
|
||||
text-align: center;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
max-width: 160px;
|
||||
}
|
||||
}
|
||||
|
||||
.main-section:first-child {
|
||||
.image-wrapper {
|
||||
max-width: 100%;
|
||||
|
||||
img {
|
||||
max-width: 491px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-bottom: $ocean-nodes-h3-margin-bottom;
|
||||
}
|
||||
}
|
||||
|
||||
// Video thingy
|
||||
#video {
|
||||
height: $video-section-height;
|
||||
}
|
||||
|
||||
#video {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
background-position: center center;
|
||||
background-size: cover;
|
||||
|
||||
& > .light-text {
|
||||
display: none;
|
||||
// position: absolute;
|
||||
// top: 50%;
|
||||
// left: 75%;
|
||||
width: 500px;
|
||||
padding-top: 2rem;
|
||||
// transform: translate(-50%, -50%);
|
||||
color: white;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 32px;
|
||||
line-height: 44px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#desktopKCButton {
|
||||
position: absolute;
|
||||
font-size: 18px;
|
||||
background-color: $dark-grey;
|
||||
border-radius: 8px;
|
||||
color: $white;
|
||||
padding: 20px 10px 20px 10px;
|
||||
}
|
||||
|
||||
#desktopShowVideoButton {
|
||||
position: relative;
|
||||
font-size: 24px;
|
||||
background-color: white;
|
||||
border-radius: 8px;
|
||||
color: $blue;
|
||||
padding: 15px 30px 15px 80px;
|
||||
margin-bottom: 15px;
|
||||
|
||||
&:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
@include pureCenter(40px);
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-style: solid;
|
||||
border-width: 10px 0 10px 20px;
|
||||
border-color: transparent transparent transparent $blue;
|
||||
}
|
||||
}
|
||||
|
||||
#mobileShowVideoButton {
|
||||
@include pureCenter;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 50%;
|
||||
background-color: transparent;
|
||||
border: 5px solid rgba(255, 255, 255, 0.2);
|
||||
overflow: visible;
|
||||
|
||||
&:after {
|
||||
@include pureCenter;
|
||||
left: 40px;
|
||||
content: "";
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-style: solid;
|
||||
border-width: 20px 0 20px 30px;
|
||||
border-color: transparent transparent transparent #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#videoPlayer {
|
||||
@include fullScreen;
|
||||
background-color: rgba(0, 0, 0, 0.9);
|
||||
display: none;
|
||||
|
||||
iframe {
|
||||
@include pureCenter;
|
||||
@include maintain-aspect-ratio;
|
||||
}
|
||||
|
||||
#closeButton {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border: 2px solid transparent;
|
||||
transition: 0.3s;
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: calc(50% - 1px);
|
||||
left: 10%;
|
||||
width: 80%;
|
||||
height: 2px;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
&:before {
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
&:after {
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
|
||||
&:hover {
|
||||
border-color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// KubeWeekly
|
||||
#kubeweekly {
|
||||
background-color: $light-grey;
|
||||
padding-top: 30px;
|
||||
padding-bottom: 80px;
|
||||
background-size: auto;
|
||||
// font-family: "Roboto Mono", monospace !important;
|
||||
font-size: 24px;
|
||||
// font-weight: bold;
|
||||
|
||||
h5 {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.subscribe-button {
|
||||
border-radius: 6px;
|
||||
padding: 0 20px;
|
||||
line-height: 31px;
|
||||
color: white;
|
||||
background-color: blue;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
// Features
|
||||
#features {
|
||||
padding-top: 140px;
|
||||
background-color: $light-grey;
|
||||
background-image: url(/images/wheel.svg);
|
||||
background-position: center 60px;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 60px;
|
||||
}
|
||||
|
||||
.feature-box {
|
||||
//padding: 50px 0
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
clear: both;
|
||||
|
||||
h4 {
|
||||
line-height: normal;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
& > div:first-child {
|
||||
float: left;
|
||||
}
|
||||
|
||||
& > div:last-child {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
|
||||
#features {
|
||||
h3 {
|
||||
margin-bottom: $features-h3-margin-bottom;
|
||||
}
|
||||
|
||||
.feature-box {
|
||||
margin-bottom: $feature-box-margin-bottom;
|
||||
|
||||
& > div {
|
||||
width: $feature-box-div-width;
|
||||
margin-bottom: $feature-box-div-margin-bottom;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Talk to us
|
||||
#talkToUs {
|
||||
h3,
|
||||
h4 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
h4 {
|
||||
line-height: normal;
|
||||
margin-bottom: 50px;
|
||||
|
||||
br {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
#bigSocial {
|
||||
overflow: hidden;
|
||||
|
||||
div {
|
||||
width: 100%;
|
||||
float: left;
|
||||
padding: 30px;
|
||||
padding-top: 110px;
|
||||
background-position: center top;
|
||||
background-size: auto;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
div:nth-child(1) {
|
||||
background-image: url(/images/twitter_icon.png);
|
||||
}
|
||||
|
||||
div:nth-child(2) {
|
||||
background-image: url(/images/github_icon.png);
|
||||
}
|
||||
|
||||
div:nth-child(3) {
|
||||
background-image: url(/images/slack_icon.png);
|
||||
}
|
||||
|
||||
div:nth-child(4) {
|
||||
background-image: url(/images/stackoverflow_icon.png);
|
||||
}
|
||||
|
||||
div + div {
|
||||
margin-top: 20px;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
display: inline-block;
|
||||
color: $blue;
|
||||
font-size: 24px;
|
||||
font-weight: 400;
|
||||
text-decoration: none;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
a,
|
||||
p {
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.td-home {
|
||||
#talkToUs {
|
||||
.main-section {
|
||||
padding: 30px 0;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
#caseStudiesWrapper {
|
||||
position: relative;
|
||||
text-align: center;
|
||||
margin-bottom: 30px;
|
||||
|
||||
img {
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
div {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
width: 100%;
|
||||
min-height: 230px;
|
||||
margin-bottom: 60px;
|
||||
padding-right: 1rem;
|
||||
background-position: top center;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
a {
|
||||
position: absolute;
|
||||
bottom: -30px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
color: $blue;
|
||||
font-weight: 400;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Docs specific
|
||||
|
||||
#editPageButton {
|
||||
position: absolute;
|
||||
top: 50px;
|
||||
right: 25px;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
border-radius: 50%;
|
||||
white-space: nowrap;
|
||||
text-indent: 50px;
|
||||
overflow: hidden;
|
||||
background: $blue url(/images/icon-pencil.svg) no-repeat;
|
||||
background-position: 12px 10px;
|
||||
background-size: 29px 29px;
|
||||
}
|
||||
|
||||
.feedback--response__hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
// GitHub info/edit buttons
|
||||
#pre-footer {
|
||||
margin-top: 2rem;
|
||||
|
||||
.button {
|
||||
font-size: 1.1rem;
|
||||
|
||||
&:first-of-type {
|
||||
margin-right: 0.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.lastedit {
|
||||
margin-top: 1rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
/* DOCUMENTATION */
|
||||
|
||||
body.td-documentation {
|
||||
header > .header-filler {
|
||||
height: $hero-padding-top;
|
||||
background-color: black;
|
||||
}
|
||||
/* Special case for if an announcement is active */
|
||||
header section#announcement ~ .header-filler {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@@ -1,142 +0,0 @@
|
||||
// SASS for Case Studies pages go here:
|
||||
|
||||
hr {
|
||||
background-color: #999999;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-bottom: 15px !important;
|
||||
}
|
||||
|
||||
.subhead {
|
||||
padding-bottom: 2% !important;
|
||||
padding-top: 0% !important;
|
||||
}
|
||||
|
||||
.details {
|
||||
margin-left: 1.9%;
|
||||
padding-right: 5%;
|
||||
font-size: 16px !important;
|
||||
padding-bottom: 2% !important;
|
||||
}
|
||||
|
||||
.section1 {
|
||||
margin-bottom: 3%;
|
||||
|
||||
.cols {
|
||||
width: 80% !important;
|
||||
margin-left: 6.8%;
|
||||
padding-top: 1.5%;
|
||||
|
||||
.col1 {
|
||||
width: 52% !important;
|
||||
font-weight: 300 !important;
|
||||
}
|
||||
|
||||
.col2 {
|
||||
width: 46% !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.banner2text {
|
||||
width: 63%;
|
||||
padding-top: 10%;
|
||||
padding-left: 0% !important;
|
||||
float: initial !important;
|
||||
text-align: center;
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.banner3text,
|
||||
.banner4text,
|
||||
.banner5text {
|
||||
width: 63%;
|
||||
padding-left: 0% !important;
|
||||
float: initial !important;
|
||||
text-align: center;
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.fullcol {
|
||||
float: initial !important;
|
||||
}
|
||||
|
||||
body footer {
|
||||
background-color: #585858 !important;
|
||||
}
|
||||
|
||||
.section1 {
|
||||
float: left !important;
|
||||
}
|
||||
|
||||
.banner1 {
|
||||
padding-left: 11.9% !important;
|
||||
}
|
||||
|
||||
.banner2 {
|
||||
float: initial !important;
|
||||
padding-bottom: 2% !important;
|
||||
}
|
||||
|
||||
footer {
|
||||
padding: 0% 7%;
|
||||
}
|
||||
|
||||
.banner4,
|
||||
.banner3,
|
||||
.banner5 {
|
||||
float: initial !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 910px) {
|
||||
.banner2text {
|
||||
width: 47%;
|
||||
padding-top: 45%;
|
||||
}
|
||||
|
||||
.details {
|
||||
margin-left: 0%;
|
||||
margin-bottom: 3%;
|
||||
}
|
||||
|
||||
.subhead {
|
||||
padding-bottom: 0% !important;
|
||||
padding-top: 0% !important;
|
||||
}
|
||||
|
||||
.banner3 {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 780px) {
|
||||
.section1 .cols {
|
||||
width: 100% !important;
|
||||
margin-left: 0%;
|
||||
padding-top: 5%;
|
||||
|
||||
.col1,
|
||||
.col2 {
|
||||
width: 100% !important;
|
||||
margin-left: 0% !important;
|
||||
|
||||
.fullcol {
|
||||
width: 90% !important;
|
||||
margin-left: 5% !important;
|
||||
|
||||
.banner1 {
|
||||
padding-left: 10% !important;
|
||||
margin-bottom: 6% !important;
|
||||
|
||||
.banner2text {
|
||||
padding-top: 60% !important;
|
||||
padding-bottom: 2% !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,514 +0,0 @@
|
||||
$announcement-size-adjustment: 8px;
|
||||
|
||||
/* GLOBAL */
|
||||
.td-main {
|
||||
.row {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
main {
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
table {
|
||||
margin-bottom: 1rem;
|
||||
display: initial;
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px) {
|
||||
padding-top: 2rem !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
section {
|
||||
.main-section {
|
||||
@media only screen and (min-width: 1024px) {
|
||||
max-width: 1200px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.td-outer {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
#desktopShowVideoButton {
|
||||
border: none
|
||||
}
|
||||
|
||||
#videoPlayer {
|
||||
#closeButton {
|
||||
background: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
/* HEADER */
|
||||
|
||||
.td-navbar {
|
||||
position: fixed !important;
|
||||
width: 100%;
|
||||
padding-bottom: 1rem !important;
|
||||
background: transparent !important;
|
||||
transition: 0.3s;
|
||||
|
||||
.navbar-brand {
|
||||
position: absolute;
|
||||
width: 45px;
|
||||
height: 44px;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
background-image: url("/images/favicon.png");
|
||||
}
|
||||
|
||||
#hamburger {
|
||||
&:focus {
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px) {
|
||||
.navbar-brand {
|
||||
background-image: url("/images/nav_logo.svg");
|
||||
top: 1.5rem;
|
||||
width: 180px;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.td-navbar-nav-scroll {
|
||||
overflow: visible !important;
|
||||
display: none;
|
||||
|
||||
.navbar-nav {
|
||||
overflow: visible !important;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-evenly;
|
||||
|
||||
.nav-item {
|
||||
position: relative;
|
||||
height: 10%;
|
||||
|
||||
.active::after {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 2px;
|
||||
content: "";
|
||||
bottom: -4px;
|
||||
left: 0;
|
||||
background: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px) {
|
||||
display: block;
|
||||
margin-top: 3.5rem !important;
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1075px) {
|
||||
margin-top: 1rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Flip-Nav
|
||||
.flip-nav .td-navbar {
|
||||
background-color: white !important;
|
||||
box-shadow: 0 1px 2px $medium-grey;
|
||||
|
||||
.navbar-nav {
|
||||
.nav-item {
|
||||
&.show .nav-link,
|
||||
.nav-link {
|
||||
color: $dark-grey;
|
||||
|
||||
&:hover {
|
||||
color: $medium-grey;
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown {
|
||||
&:hover {
|
||||
color: $medium-grey;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-nav .nav-item .active {
|
||||
color: $dark-grey;
|
||||
|
||||
&::after {
|
||||
background: $dark-grey;
|
||||
}
|
||||
}
|
||||
|
||||
#hamburger:hover {
|
||||
div,
|
||||
&:before,
|
||||
&:after {
|
||||
background-color: $dark-grey;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px) {
|
||||
.navbar-brand {
|
||||
background-image: url("/images/nav_logo2.svg");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* FOOTER */
|
||||
footer {
|
||||
background-color: #303030;
|
||||
background-image: url("/images/texture.png");
|
||||
padding: 1rem !important;
|
||||
min-height: initial !important;
|
||||
|
||||
.footer__links {
|
||||
width: 100%;
|
||||
margin: auto;
|
||||
padding-bottom: 1rem;
|
||||
|
||||
nav a {
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px) {
|
||||
nav {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-around;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
small {
|
||||
color: $light-grey;
|
||||
font-size: 0.64rem;
|
||||
|
||||
a {
|
||||
text-decoration: inherit;
|
||||
color: inherit;
|
||||
|
||||
&:hover {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* SIDE-DRAWER MENU */
|
||||
|
||||
.pi-pushmenu .sled {
|
||||
.content ul {
|
||||
padding: 0;
|
||||
|
||||
li {
|
||||
&:first-child {
|
||||
display: none;
|
||||
}
|
||||
|
||||
a.nav-link {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.push-menu-close-button {
|
||||
background: transparent;
|
||||
border: none;
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* DOCS */
|
||||
|
||||
.launch-cards {
|
||||
button {
|
||||
cursor: pointer;
|
||||
box-sizing: border-box;
|
||||
background: none;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
ul,
|
||||
li {
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// table of contents
|
||||
.td-toc {
|
||||
padding-top: 1.5rem !important;
|
||||
top: 5rem !important;
|
||||
|
||||
#TableOfContents {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
main {
|
||||
.td-content table code,
|
||||
.td-content>table td {
|
||||
word-break: break-word;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// blockquotes and callouts
|
||||
|
||||
blockquote {
|
||||
padding: 0.4rem 0.4rem 0.4rem 1rem !important;
|
||||
}
|
||||
|
||||
// callouts are contained in static CSS as well. these require override.
|
||||
|
||||
.caution {
|
||||
border-left-color: #f0ad4e !important;
|
||||
}
|
||||
|
||||
.note {
|
||||
border-left-color: #428bca !important;
|
||||
}
|
||||
|
||||
.warning {
|
||||
border-left-color: #d9534f !important;
|
||||
}
|
||||
|
||||
.deprecation-warning {
|
||||
padding: 20px;
|
||||
margin: 20px 0;
|
||||
background-color: #faf5b6;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
body.td-home .deprecation-warning, body.td-blog .deprecation-warning, body.td-documentation .deprecation-warning {
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
body.td-home #deprecation-warning {
|
||||
max-width: 1000px;
|
||||
margin-top: 2.5rem;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
#caseStudies body > #deprecation-warning, body.cid-casestudies > #deprecation-warning, body.cid-community > #deprecation-warning {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
position: relative;
|
||||
background-color: #326ce5; // Kubernetes blue
|
||||
color: #fff;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
width: 100vw;
|
||||
}
|
||||
#caseStudies body > #deprecation-warning, body.cid-casestudies > #deprecation-warning {
|
||||
padding-top: 32px;
|
||||
}
|
||||
body.cid-partners > #deprecation-warning {
|
||||
padding: 0;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
margin-top: 0;
|
||||
width: 100vw;
|
||||
}
|
||||
body.cid-partners > #deprecation-warning > .content {
|
||||
width: 100%;
|
||||
max-width: initial;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
margin-top: 0;
|
||||
padding-left: 5vw;
|
||||
padding-right: 5vw;
|
||||
padding-top: 2rem;
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
body.cid-community > #deprecation-warning > .deprecation-warning {
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
color: #faf5b6;
|
||||
background-color: inherit;
|
||||
}
|
||||
body.cid-community > #deprecation-warning > .deprecation-warning > * {
|
||||
color: inherit;
|
||||
background-color: inherit;
|
||||
}
|
||||
|
||||
#caseStudies body > #deprecation-warning > .deprecation-warning, body.cid-casestudies > #deprecation-warning > .deprecation-warning {
|
||||
color: inherit;
|
||||
background: inherit;
|
||||
width: 80%;
|
||||
margin: 0;
|
||||
margin-top: 120px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
border-radius: initial;
|
||||
}
|
||||
#deprecation-warning > .deprecation-warning a {
|
||||
background: transparent;
|
||||
color: inherit;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
// search & sidebar
|
||||
.td-sidebar {
|
||||
@media only screen and (min-width: 768px) {
|
||||
padding-top: 1.5rem !important;
|
||||
|
||||
.td-sidebar__inner {
|
||||
top: 8.5rem;
|
||||
|
||||
@media only screen and (min-width: 1075px) {
|
||||
top: 6.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.td-sidebar-nav {
|
||||
& > .td-sidebar-nav__section {
|
||||
padding-top: .5rem;
|
||||
padding-left: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.td-sidebar__inner {
|
||||
form.td-sidebar__search {
|
||||
|
||||
button.td-sidebar__toggle {
|
||||
&:hover {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
color: $blue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.no-underline {
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.hide {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.td-sidebar-link__page {
|
||||
&#m-docs-search {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&#m-docs-test {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
//Tutorials
|
||||
main.content {
|
||||
position: inherit;
|
||||
}
|
||||
|
||||
/* BLOG */
|
||||
|
||||
.td-blog {
|
||||
|
||||
.td-sidebar-nav {
|
||||
max-height: calc(100vh - 8rem);
|
||||
}
|
||||
|
||||
.widget-link {
|
||||
margin-bottom: 1rem;
|
||||
|
||||
.svg-inline--fa {
|
||||
width: 25px;
|
||||
}
|
||||
|
||||
span {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* COMMUNITY */
|
||||
|
||||
.newcommunitywrapper {
|
||||
.news {
|
||||
margin-left: 0;
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
margin-left: 10%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* CASE-STUDIES */
|
||||
|
||||
// Many of the case studies have small variations in markup and styles;
|
||||
// some issues cannot be addressed due to inlined !important rules.
|
||||
#caseStudies {
|
||||
section .cols {
|
||||
margin-left: 11%;
|
||||
|
||||
div {
|
||||
width: initial !important;
|
||||
h2 {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ANNOUNCEMENTS */
|
||||
section#fp-announcement ~ .header-hero {
|
||||
padding: $announcement-size-adjustment 0;
|
||||
|
||||
> div {
|
||||
margin-top: $announcement-size-adjustment;
|
||||
margin-bottom: $announcement-size-adjustment;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5 {
|
||||
margin: $announcement-size-adjustment 0;
|
||||
}
|
||||
}
|
||||
|
||||
section#announcement ~ .header-hero {
|
||||
padding: #{$announcement-size-adjustment / 2} 0;
|
||||
|
||||
> div {
|
||||
margin-top: #{$announcement-size-adjustment / 2};
|
||||
margin-bottom: #{$announcement-size-adjustment / 2};
|
||||
padding-bottom: #{$announcement-size-adjustment / 2};
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5 {
|
||||
margin: #{$announcement-size-adjustment / 2} 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* DOCUMENTATION */
|
||||
|
||||
/* Don't show lead text */
|
||||
body.td-documentation {
|
||||
main {
|
||||
@media only screen {
|
||||
> * {
|
||||
> .lead:first-of-type {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
$main-max-width: 1200px;
|
||||
$vendor-strip-height: 44px;
|
||||
$video-section-height: 550px;
|
||||
|
||||
@media screen and (min-width: 1024px) {
|
||||
|
||||
.td-home {
|
||||
.header-hero {
|
||||
#vendorStrip {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.td-home {
|
||||
|
||||
section,
|
||||
header,
|
||||
footer {
|
||||
.main-section {
|
||||
max-width: 1000px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#oceanNodes {
|
||||
.main-section {
|
||||
position: relative;
|
||||
|
||||
&:nth-child(1) {
|
||||
max-width: 1000px;
|
||||
padding-right: 475px;
|
||||
|
||||
h3,
|
||||
p {
|
||||
text-align: left
|
||||
}
|
||||
|
||||
.image-wrapper {
|
||||
position: absolute;
|
||||
max-width: 48%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
img {
|
||||
width: 425px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#video {
|
||||
height: $video-section-height;
|
||||
position: relative;
|
||||
background-position: center center;
|
||||
background-size: cover;
|
||||
|
||||
&>.light-text {
|
||||
margin-right: 10%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
#talkToUs {
|
||||
h4 {
|
||||
br {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
#bigSocial {
|
||||
div {
|
||||
width: calc(25% - 18px);
|
||||
}
|
||||
|
||||
div+div {
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.td-home #bigSocial {
|
||||
div {
|
||||
width: calc(33% - 15px);
|
||||
}
|
||||
|
||||
div:nth-child(3) {
|
||||
margin-top: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.td-home #caseStudiesWrapper {
|
||||
div {
|
||||
width: 24%;
|
||||
min-height: 260px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
// CONVENIENCE
|
||||
.clear {
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.light-text {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
//mixins
|
||||
@mixin fullScreen {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
@mixin pureCenter($left: 50%, $top: 50%) {
|
||||
position: absolute;
|
||||
top: $top;
|
||||
left: $left;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
@mixin maintain-aspect-ratio(
|
||||
$width-factor: 16,
|
||||
$height-factor: 9,
|
||||
$target-width: 80vw,
|
||||
$target-height: 80vh
|
||||
) {
|
||||
width: $target-width;
|
||||
height: $target-width * ($height-factor / $width-factor);
|
||||
max-width: $target-height * ($width-factor / $height-factor);
|
||||
max-height: $target-height;
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
section,
|
||||
#vendorStrip {
|
||||
padding-left: $full-width-paddingX;
|
||||
padding-right: $full-width-paddingX;
|
||||
}
|
||||
|
||||
#hamburger {
|
||||
width: $hamburger-size;
|
||||
height: $hamburger-size;
|
||||
}
|
||||
|
||||
.header-hero {
|
||||
padding-top: $hero-padding-top;
|
||||
}
|
||||
|
||||
#vendorStrip {
|
||||
height: $vendor-strip-height;
|
||||
line-height: $vendor-strip-height;
|
||||
font-size: $vendor-strip-font-size;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
$blue: #3371e3;
|
||||
$light-grey: #f7f7f7;
|
||||
$dark-grey: #303030;
|
||||
$medium-grey: #4c4c4c;
|
||||
$white: #ffffff;
|
||||
@@ -1,214 +0,0 @@
|
||||
// header
|
||||
$full-width-paddingX: 20px;
|
||||
|
||||
$main-width: 100%;
|
||||
$main-max-width: 100%;
|
||||
|
||||
$header-height: 80px;
|
||||
|
||||
$logo-width: 180px;
|
||||
|
||||
$nav-buttons-margin-left: 30px;
|
||||
|
||||
$hamburger-size: 50px;
|
||||
|
||||
// main nav
|
||||
$main-nav-padding: 140px 0 30px;
|
||||
$main-nav-h5-margin-bottom: 1em;
|
||||
$main-nav-h3-margin-bottom: 0.6em;
|
||||
$nav-box-width: 20%;
|
||||
$nav-box-sibling-margin-left: calc(20% / 3);
|
||||
$main-nav-main-sibling-margin-top: 60px;
|
||||
$main-nav-left-button-size: 50px;
|
||||
$main-nav-left-button-font-size: 18px;
|
||||
|
||||
// hero
|
||||
$hero-padding-top: 116px;
|
||||
$headline-wrapper-margin-bottom: 40px;
|
||||
$quickstart-button-padding: 0 50px;
|
||||
$vendor-strip-font-size: 16px;
|
||||
|
||||
//video
|
||||
$video-section-height: 400px;
|
||||
|
||||
//features
|
||||
$features-h3-margin-bottom: 40px;
|
||||
$feature-box-margin-bottom: 60px;
|
||||
$feature-box-div-margin-bottom: 0;
|
||||
$feature-box-div-width: 45%;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
@import "size";
|
||||
|
||||
#hamburger {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.td-home {
|
||||
#viewDocs,
|
||||
#tryKubernetes {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
#vendorStrip {
|
||||
display: block;
|
||||
text-align: center;
|
||||
|
||||
img {
|
||||
max-height: 24px;
|
||||
vertical-align: middle;
|
||||
margin: 0 30px;
|
||||
}
|
||||
}
|
||||
|
||||
#oceanNodes {
|
||||
h3 {
|
||||
text-align: left;
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
|
||||
main,
|
||||
.main-section {
|
||||
position: relative;
|
||||
clear: both;
|
||||
display: table;
|
||||
height: 160px;
|
||||
|
||||
.content {
|
||||
display: table-cell;
|
||||
position: relative;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.image-wrapper {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
max-width: 25%;
|
||||
max-height: 100%;
|
||||
transform: translateY(-50%);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&:nth-child(odd) {
|
||||
padding-right: 210px;
|
||||
|
||||
.image-wrapper {
|
||||
right: 0;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-child(even) {
|
||||
padding-left: 210px;
|
||||
|
||||
.image-wrapper {
|
||||
left: 0;
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-child(1) {
|
||||
padding-right: 0;
|
||||
|
||||
h3,
|
||||
p {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.image-wrapper {
|
||||
position: relative;
|
||||
display: block;
|
||||
float: none;
|
||||
max-width: 100%;
|
||||
transform: none;
|
||||
}
|
||||
|
||||
.content {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#video {
|
||||
height: $video-section-height;
|
||||
display: block;
|
||||
height: 500px;
|
||||
|
||||
& > .light-text {
|
||||
display: block;
|
||||
float: right;
|
||||
text-align: left;
|
||||
margin-right: 5%;
|
||||
}
|
||||
}
|
||||
|
||||
#mobileShowVideoButton {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#features {
|
||||
padding-bottom: 60px;
|
||||
|
||||
.feature-box {
|
||||
margin-bottom: 30px;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-bottom: $features-h3-margin-bottom;
|
||||
}
|
||||
|
||||
.feature-box {
|
||||
& > div {
|
||||
width: $feature-box-div-width;
|
||||
margin-bottom: $feature-box-div-margin-bottom;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#talkToUs {
|
||||
#bigSocial {
|
||||
div {
|
||||
width: calc(50% - 15px);
|
||||
}
|
||||
|
||||
div + div {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
div:nth-child(2) {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
div:nth-child(4) {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
a {
|
||||
display: inline-block;
|
||||
color: $blue;
|
||||
font-weight: 400;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.td-home #caseStudiesWrapper {
|
||||
div {
|
||||
width: 48%;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
/* This file is provided by Docsy as an entry point to styling.
|
||||
Add styles or override variables from the theme here. */
|
||||
|
||||
@import "reset";
|
||||
@import "skin";
|
||||
|
||||
//K8S-Docsy integration
|
||||
@import "custom";
|
||||
|
||||
//Media queries
|
||||
@import "base";
|
||||
@import "tablet";
|
||||
@import "desktop";
|
||||
@@ -1,3 +0,0 @@
|
||||
# Kubernetes Community Code of Conduct
|
||||
|
||||
Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md)
|
||||
+42
-339
@@ -1,28 +1,21 @@
|
||||
baseURL = "https://kubernetes.io"
|
||||
title = "Kubernetes"
|
||||
|
||||
# Hugo allows theme composition (and inheritance). The precedence is from left to right.
|
||||
theme = ["docsy"]
|
||||
|
||||
# Language settings
|
||||
contentDir = "content/en"
|
||||
defaultContentLanguage = "en"
|
||||
defaultContentLanguageInSubdir = false
|
||||
enableRobotsTXT = true
|
||||
disableBrowserError = true
|
||||
|
||||
disableKinds = ["taxonomy", "taxonomyTerm"]
|
||||
|
||||
ignoreFiles = [ "^OWNERS$", "README[-]+[a-z]*\\.md", "^node_modules$", "content/en/docs/doc-contributor-tools" ]
|
||||
|
||||
contentDir = "content/en"
|
||||
|
||||
timeout = 3000
|
||||
|
||||
# Highlighting config.
|
||||
pygmentsCodeFences = true
|
||||
pygmentsUseClasses = false
|
||||
# Use the new Chroma Go highlighter in Hugo.
|
||||
pygmentsUseClassic = false
|
||||
#pygmentsOptions = "linenos=table"
|
||||
# See https://help.farbox.com/pygments.html
|
||||
pygmentsStyle = "emacs"
|
||||
|
||||
@@ -30,35 +23,11 @@ pygmentsStyle = "emacs"
|
||||
enableGitInfo = true
|
||||
|
||||
# Norwegian ("no") is sometimes but not currently used for testing.
|
||||
# Hindi is disabled because it's currently in development.
|
||||
disableLanguages = ["hi", "no"]
|
||||
disableLanguages = ["no"]
|
||||
|
||||
[markup]
|
||||
[markup.goldmark]
|
||||
[markup.goldmark.extensions]
|
||||
definitionList = true
|
||||
table = true
|
||||
typographer = false
|
||||
[markup.goldmark.parser]
|
||||
attribute = true
|
||||
autoHeadingID = true
|
||||
autoHeadingIDType = "blackfriday"
|
||||
[markup.goldmark.renderer]
|
||||
unsafe = true
|
||||
[markup.highlight]
|
||||
codeFences = true
|
||||
guessSyntax = false
|
||||
hl_Lines = ""
|
||||
lineNoStart = 1
|
||||
lineNos = false
|
||||
lineNumbersInTable = true
|
||||
noClasses = true
|
||||
style = "emacs"
|
||||
tabWidth = 4
|
||||
[markup.tableOfContents]
|
||||
endLevel = 3
|
||||
ordered = false
|
||||
startLevel = 2
|
||||
[blackfriday]
|
||||
hrefTargetBlank = true
|
||||
fractions = false
|
||||
|
||||
[frontmatter]
|
||||
date = ["date", ":filename", "publishDate", "lastmod"]
|
||||
@@ -88,63 +57,30 @@ baseName = "_headers"
|
||||
isPlainText = true
|
||||
notAlternative = true
|
||||
|
||||
# Image processing configuration.
|
||||
[imaging]
|
||||
resampleFilter = "CatmullRom"
|
||||
quality = 75
|
||||
anchor = "smart"
|
||||
|
||||
[services]
|
||||
[services.googleAnalytics]
|
||||
# Comment out the next line to disable GA tracking. Also disables the feature described in [params.ui.feedback].
|
||||
id = "UA-00000000-0"
|
||||
|
||||
[params]
|
||||
copyright_k8s = "The Kubernetes Authors"
|
||||
copyright_linux = "Copyright © 2020 The Linux Foundation ®."
|
||||
# privacy_policy = "https://policies.google.com/privacy"
|
||||
|
||||
# First one is picked as the Twitter card image if not set on page.
|
||||
# images = ["images/project-illustration.png"]
|
||||
|
||||
# Menu title if your navbar has a versions selector to access old versions of your site.
|
||||
# This menu appears only if you have at least one [params.versions] set.
|
||||
version_menu = "Versions"
|
||||
|
||||
time_format_blog = "Monday, January 02, 2006"
|
||||
description = "Production-Grade Container Orchestration"
|
||||
showedit = true
|
||||
|
||||
latest = "v1.19"
|
||||
latest = "v1.16"
|
||||
|
||||
fullversion = "v1.19.0"
|
||||
version = "v1.19"
|
||||
githubbranch = "master"
|
||||
docsbranch = "master"
|
||||
deprecated = false
|
||||
fullversion = "v1.12.10"
|
||||
version = "v1.12"
|
||||
githubbranch = "v1.12.10"
|
||||
docsbranch = "release-1.12"
|
||||
deprecated = true
|
||||
currentUrl = "https://kubernetes.io/docs/home/"
|
||||
nextUrl = "https://kubernetes-io-vnext-staging.netlify.com/"
|
||||
githubWebsiteRepo = "github.com/kubernetes/website"
|
||||
githubWebsiteRaw = "raw.githubusercontent.com/kubernetes/website"
|
||||
|
||||
# param for displaying an announcement block on every page.
|
||||
# See /i18n/en.toml for message text and title.
|
||||
announcement = true
|
||||
announcement_bg = "#000000" #choose a dark color – text is white
|
||||
|
||||
#Searching
|
||||
k8s_search = true
|
||||
|
||||
#The following search parameters are specific to Docsy's implementation. Kubernetes implementes its own search-related partials and scripts.
|
||||
|
||||
# Google Custom Search Engine ID. Remove or comment out to disable search.
|
||||
#gcs_engine_id = "011737558837375720776:fsdu1nryfng"
|
||||
|
||||
# Enable Algolia DocSearch
|
||||
algolia_docsearch = false
|
||||
|
||||
# Enable Lunr.js offline search
|
||||
offlineSearch = false
|
||||
[[params.versions]]
|
||||
fullversion = "v1.16.0"
|
||||
version = "v1.16"
|
||||
githubbranch = "v1.16.0"
|
||||
docsbranch = "release-1.16"
|
||||
url = "https://kubernetes.io"
|
||||
|
||||
[params.pushAssets]
|
||||
css = [
|
||||
@@ -153,118 +89,37 @@ css = [
|
||||
"custom-jekyll/tags"
|
||||
]
|
||||
js = [
|
||||
"custom-jekyll/tags",
|
||||
"script"
|
||||
]
|
||||
|
||||
[[params.versions]]
|
||||
fullversion = "v1.19.0"
|
||||
version = "v1.19"
|
||||
githubbranch = "v1.19.0"
|
||||
docsbranch = "master"
|
||||
url = "https://kubernetes.io"
|
||||
|
||||
[[params.versions]]
|
||||
fullversion = "v1.18.8"
|
||||
version = "v1.18"
|
||||
githubbranch = "v1.18.8"
|
||||
docsbranch = "release-1.18"
|
||||
url = "https://v1-18.docs.kubernetes.io"
|
||||
|
||||
[[params.versions]]
|
||||
fullversion = "v1.17.11"
|
||||
version = "v1.17"
|
||||
githubbranch = "v1.17.11"
|
||||
docsbranch = "release-1.17"
|
||||
url = "https://v1-17.docs.kubernetes.io"
|
||||
|
||||
[[params.versions]]
|
||||
fullversion = "v1.16.14"
|
||||
version = "v1.16"
|
||||
githubbranch = "v1.16.14"
|
||||
docsbranch = "release-1.16"
|
||||
url = "https://v1-16.docs.kubernetes.io"
|
||||
|
||||
[[params.versions]]
|
||||
fullversion = "v1.15.12"
|
||||
fullversion = "v1.15.3"
|
||||
version = "v1.15"
|
||||
githubbranch = "v1.15.12"
|
||||
githubbranch = "v1.15.3"
|
||||
docsbranch = "release-1.15"
|
||||
url = "https://v1-15.docs.kubernetes.io"
|
||||
|
||||
[[params.versions]]
|
||||
fullversion = "v1.14.6"
|
||||
version = "v1.14"
|
||||
githubbranch = "v1.14.6"
|
||||
docsbranch = "release-1.14"
|
||||
url = "https://v1-14.docs.kubernetes.io"
|
||||
|
||||
# User interface configuration
|
||||
[params.ui]
|
||||
# Enable to show the side bar menu in its compact state.
|
||||
sidebar_menu_compact = false
|
||||
# Set to true to disable breadcrumb navigation.
|
||||
breadcrumb_disable = false
|
||||
# Set to true to hide the sidebar search box (the top nav search box will still be displayed if search is enabled)
|
||||
sidebar_search_disable = false
|
||||
# Set to false if you don't want to display a logo (/assets/icons/logo.svg) in the top nav bar
|
||||
navbar_logo = true
|
||||
# Set to true to disable the About link in the site footer
|
||||
footer_about_disable = false
|
||||
[[params.versions]]
|
||||
fullversion = "v1.13.10"
|
||||
version = "v1.13"
|
||||
githubbranch = "v1.13.10"
|
||||
docsbranch = "release-1.13"
|
||||
url = "https://v1-13.docs.kubernetes.io"
|
||||
|
||||
# Adds a H2 section titled "Feedback" to the bottom of each doc. The responses are sent to Google Analytics as events.
|
||||
# This feature depends on [services.googleAnalytics] and will be disabled if "services.googleAnalytics.id" is not set.
|
||||
# If you want this feature, but occasionally need to remove the "Feedback" section from a single page,
|
||||
# add "hide_feedback: true" to the page's front matter.
|
||||
[params.ui.feedback]
|
||||
enable = true
|
||||
# The responses that the user sees after clicking "yes" (the page was helpful) or "no" (the page was not helpful).
|
||||
yes = 'Glad to hear it! Please <a href="https://github.com/USERNAME/REPOSITORY/issues/new">tell us how we can improve</a>.'
|
||||
no = 'Sorry to hear that. Please <a href="https://github.com/USERNAME/REPOSITORY/issues/new">tell us how we can improve</a>.'
|
||||
|
||||
[params.links]
|
||||
# End user relevant links. These will show up on left side of footer and in the community page if you have one.
|
||||
[[params.links.user]]
|
||||
name = "User mailing list"
|
||||
url = "https://discuss.kubernetes.io"
|
||||
icon = "fa fa-envelope"
|
||||
desc = "Discussion and help from your fellow users"
|
||||
|
||||
[[params.links.user]]
|
||||
name = "Twitter"
|
||||
url = "https://twitter.com/kubernetesio"
|
||||
icon = "fab fa-twitter"
|
||||
desc = "Follow us on Twitter to get the latest news!"
|
||||
|
||||
[[params.links.user]]
|
||||
name = "Calendar"
|
||||
url = "https://calendar.google.com/calendar/embed?src=calendar%40kubernetes.io"
|
||||
icon = "fas fa-calendar-alt"
|
||||
desc = "Google Calendar for Kubernetes"
|
||||
|
||||
[[params.links.user]]
|
||||
name = "Youtube"
|
||||
url = "https://youtube.com/kubernetescommunity"
|
||||
icon = "fab fa-youtube"
|
||||
desc = "Youtube community videos"
|
||||
|
||||
# Developer relevant links. These will show up on right side of footer and in the community page if you have one.
|
||||
[[params.links.developer]]
|
||||
name = "GitHub"
|
||||
url = "https://github.com/kubernetes/kubernetes"
|
||||
icon = "fab fa-github"
|
||||
desc = "Development takes place here!"
|
||||
|
||||
[[params.links.developer]]
|
||||
name = "Slack"
|
||||
url = "https://slack.k8s.io"
|
||||
icon = "fab fa-slack"
|
||||
desc = "Chat with other project developers"
|
||||
|
||||
[[params.links.developer]]
|
||||
name = "Contribute"
|
||||
url = "https://git.k8s.io/community/contributors/guide"
|
||||
icon = "fas fa-edit"
|
||||
desc = "Contribute to the Kubernetes website"
|
||||
|
||||
[[params.links.developer]]
|
||||
name = "Stack Overflow"
|
||||
url = "https://stackoverflow.com/questions/tagged/kubernetes"
|
||||
icon = "fab fa-stack-overflow"
|
||||
desc = "Practical questions and curated answers"
|
||||
[[params.versions]]
|
||||
fullversion = "v1.12.10"
|
||||
version = "v1.12"
|
||||
githubbranch = "v1.12.10"
|
||||
docsbranch = "release-1.12"
|
||||
url = "https://v1-12.docs.kubernetes.io"
|
||||
|
||||
# Language definitions.
|
||||
|
||||
@@ -275,15 +130,13 @@ description = "Production-Grade Container Orchestration"
|
||||
languageName ="English"
|
||||
# Weight used for sorting.
|
||||
weight = 1
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.zh]
|
||||
title = "Kubernetes"
|
||||
description = "生产级别的容器编排系统"
|
||||
description = "Production-Grade Container Orchestration"
|
||||
languageName = "中文 Chinese"
|
||||
weight = 2
|
||||
contentDir = "content/zh"
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.zh.params]
|
||||
time_format_blog = "2006.01.02"
|
||||
@@ -291,174 +144,24 @@ language_alternatives = ["en"]
|
||||
|
||||
[languages.ko]
|
||||
title = "Kubernetes"
|
||||
description = "운영 수준의 컨테이너 오케스트레이션"
|
||||
description = "Production-Grade Container Orchestration"
|
||||
languageName = "한국어 Korean"
|
||||
weight = 3
|
||||
contentDir = "content/ko"
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.ko.params]
|
||||
time_format_blog = "2006.01.02"
|
||||
language_alternatives = ["en"]
|
||||
|
||||
[languages.ja]
|
||||
title = "Kubernetes"
|
||||
description = "プロダクショングレードのコンテナ管理基盤"
|
||||
languageName = "日本語 Japanese"
|
||||
weight = 4
|
||||
contentDir = "content/ja"
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.ja.params]
|
||||
time_format_blog = "2006.01.02"
|
||||
language_alternatives = ["en"]
|
||||
|
||||
[languages.fr]
|
||||
title = "Kubernetes"
|
||||
description = "Solution professionnelle d’orchestration de conteneurs"
|
||||
languageName ="Français"
|
||||
weight = 5
|
||||
contentDir = "content/fr"
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.fr.params]
|
||||
time_format_blog = "02.01.2006"
|
||||
# A list of language codes to look for untranslated content, ordered from left to right.
|
||||
language_alternatives = ["en"]
|
||||
|
||||
[languages.it]
|
||||
title = "Kubernetes"
|
||||
description = "Orchestrazione di Container in produzione"
|
||||
languageName = "Italiano"
|
||||
weight = 6
|
||||
contentDir = "content/it"
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.it.params]
|
||||
time_format_blog = "02.01.2006"
|
||||
# A list of language codes to look for untranslated content, ordered from left to right.
|
||||
language_alternatives = ["en"]
|
||||
|
||||
[languages.no]
|
||||
title = "Kubernetes"
|
||||
description = "Production-Grade Container Orchestration"
|
||||
languageName ="Norsk"
|
||||
weight = 7
|
||||
weight = 4
|
||||
contentDir = "content/no"
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.no.params]
|
||||
time_format_blog = "02.01.2006"
|
||||
# A list of language codes to look for untranslated content, ordered from left to right.
|
||||
language_alternatives = ["en"]
|
||||
|
||||
[languages.de]
|
||||
title = "Kubernetes"
|
||||
description = "Produktionsreife Container-Orchestrierung"
|
||||
languageName ="Deutsch"
|
||||
weight = 8
|
||||
contentDir = "content/de"
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.de.params]
|
||||
time_format_blog = "02.01.2006"
|
||||
# A list of language codes to look for untranslated content, ordered from left to right.
|
||||
language_alternatives = ["en"]
|
||||
|
||||
[languages.es]
|
||||
title = "Kubernetes"
|
||||
description = "Orquestación de contenedores para producción"
|
||||
languageName ="Español"
|
||||
weight = 9
|
||||
contentDir = "content/es"
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.es.params]
|
||||
time_format_blog = "02.01.2006"
|
||||
# A list of language codes to look for untranslated content, ordered from left to right.
|
||||
language_alternatives = ["en"]
|
||||
|
||||
[languages.pt]
|
||||
title = "Kubernetes"
|
||||
description = "Orquestração de contêineres em nível de produção"
|
||||
languageName ="Português"
|
||||
weight = 9
|
||||
contentDir = "content/pt"
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.pt.params]
|
||||
time_format_blog = "02.01.2006"
|
||||
# A list of language codes to look for untranslated content, ordered from left to right.
|
||||
language_alternatives = ["en"]
|
||||
|
||||
[languages.id]
|
||||
title = "Kubernetes"
|
||||
description = "Orkestrasi Kontainer dengan Skala Produksi"
|
||||
languageName ="Bahasa Indonesia"
|
||||
weight = 10
|
||||
contentDir = "content/id"
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.id.params]
|
||||
time_format_blog = "02.01.2006"
|
||||
# A list of language codes to look for untranslated content, ordered from left to right.
|
||||
language_alternatives = ["en"]
|
||||
|
||||
[languages.hi]
|
||||
title = "Kubernetes"
|
||||
description = "Production-Grade Container Orchestration"
|
||||
languageName = "Hindi"
|
||||
weight = 11
|
||||
contentDir = "content/hi"
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.hi.params]
|
||||
time_format_blog = "01.02.2006"
|
||||
language_alternatives = ["en"]
|
||||
|
||||
[languages.vi]
|
||||
title = "Kubernetes"
|
||||
description = "Giải pháp điều phối container trong môi trường production"
|
||||
languageName = "Tiếng Việt"
|
||||
contentDir = "content/vi"
|
||||
weight = 12
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.ru]
|
||||
title = "Kubernetes"
|
||||
description = "Первоклассная оркестрация контейнеров"
|
||||
languageName = "Русский"
|
||||
weight = 12
|
||||
contentDir = "content/ru"
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.ru.params]
|
||||
time_format_blog = "02.01.2006"
|
||||
# A list of language codes to look for untranslated content, ordered from left to right.
|
||||
language_alternatives = ["en"]
|
||||
|
||||
[languages.pl]
|
||||
title = "Kubernetes"
|
||||
description = "Produkcyjny system zarządzania kontenerami"
|
||||
languageName = "Polski"
|
||||
weight = 13
|
||||
contentDir = "content/pl"
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.pl.params]
|
||||
time_format_blog = "01.02.2006"
|
||||
# A list of language codes to look for untranslated content, ordered from left to right.
|
||||
language_alternatives = ["en"]
|
||||
|
||||
[languages.uk]
|
||||
title = "Kubernetes"
|
||||
description = "Довершена система оркестрації контейнерів"
|
||||
languageName = "Українська"
|
||||
weight = 14
|
||||
contentDir = "content/uk"
|
||||
languagedirection = "ltr"
|
||||
|
||||
[languages.uk.params]
|
||||
time_format_blog = "02.01.2006"
|
||||
# A list of language codes to look for untranslated content, ordered from left to right.
|
||||
language_alternatives = ["en"]
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# See the OWNERS docs at https://go.k8s.io/owners
|
||||
|
||||
# This is the localization project for German.
|
||||
# Teams and members are visible at https://github.com/orgs/kubernetes/teams.
|
||||
|
||||
reviewers:
|
||||
- sig-docs-de-reviews
|
||||
|
||||
approvers:
|
||||
- sig-docs-de-owners
|
||||
|
||||
labels:
|
||||
- language/de
|
||||
@@ -1,3 +0,0 @@
|
||||
---
|
||||
headless: true
|
||||
---
|
||||
@@ -1,61 +0,0 @@
|
||||
---
|
||||
title: "Produktionsreife Container-Orchestrierung"
|
||||
abstract: "Automatisierte Bereitstellung, Skalierung und Verwaltung von Containern"
|
||||
cid: home
|
||||
---
|
||||
|
||||
|
||||
{{< blocks/section id="oceanNodes" >}}
|
||||
{{% blocks/feature image="flower" %}}
|
||||
### [Kubernetes (K8s)]({{< relref "/docs/concepts/overview/what-is-kubernetes" >}}) ist ein Open-Source-System zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen.
|
||||
|
||||
Es gruppiert Container, aus denen sich eine Anwendung zusammensetzt, in logische Einheiten, um die Verwaltung und Erkennung zu erleichtern. Kubernetes baut auf [15 Jahre Erfahrung in Bewältigung von Produktions-Workloads bei Google] (http://queue.acm.org/detail.cfm?id=2898444), kombiniert mit Best-of-Breed-Ideen und Praktiken aus der Community.
|
||||
{{% /blocks/feature %}}
|
||||
|
||||
{{% blocks/feature image="scalable" %}}
|
||||
#### Ausgereift
|
||||
|
||||
Kubernetes basiert auf denselben Prinzipien, die es Google ermöglichen, Milliarden von Containern pro Woche zu betreiben.
|
||||
|
||||
{{% /blocks/feature %}}
|
||||
|
||||
{{% blocks/feature image="blocks" %}}
|
||||
#### Mitwachsend
|
||||
|
||||
Unabhängig davon, ob Du lokal testest oder ein globales Unternehmen betreibst: Die Flexibilität von Kubernetes wächst mit Dir, um Deine Anwendungen konsistent und einfach bereitzustellen - Unabhängig von der Komplexität Deiner Anforderungen.
|
||||
|
||||
{{% /blocks/feature %}}
|
||||
|
||||
{{% blocks/feature image="suitcase" %}}
|
||||
#### Überall Lauffähig
|
||||
|
||||
Kubernetes ist Open Source und bietet Dir die Freiheit, die Infrastruktur vor Ort, Hybrid oder Public Cloud zu nutzen. So kannst Du Workloads mühelos dorthin verschieben, wo es Dir wichtig ist.
|
||||
|
||||
{{% /blocks/feature %}}
|
||||
|
||||
{{< /blocks/section >}}
|
||||
|
||||
{{< blocks/section id="video" background-image="kub_video_banner_homepage" >}}
|
||||
<div class="light-text">
|
||||
<h2>Die Herausforderungen bei der Migration von über 150 Microservices auf Kubernetes</h2>
|
||||
<p>Von Sarah Wells, technische Direktorin für Betrieb und Zuverlässigkeit, Financial Times</p>
|
||||
<button id="desktopShowVideoButton" onclick="kub.showVideo()">Video ansehen</button>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/?utm_source=kubernetes.io&utm_medium=nav&utm_campaign=kccnceu20" button id="desktopKCButton">Besuche die KubeCon - 13-16 August 2020 in Amsterdam</a>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/?utm_source=kubernetes.io&utm_medium=nav&utm_campaign=kccncna20" button id="desktopKCButton">Besuche die KubeCon - 17-20 November 2020 in Boston</a>
|
||||
</div>
|
||||
<div id="videoPlayer">
|
||||
<iframe data-url="https://www.youtube.com/embed/H06qrNmGqyE?autoplay=1" frameborder="0" allowfullscreen></iframe>
|
||||
<button id="closeButton"></button>
|
||||
</div>
|
||||
{{< /blocks/section >}}
|
||||
|
||||
{{< blocks/kubernetes-features >}}
|
||||
|
||||
{{< blocks/case-studies >}}
|
||||
@@ -1,10 +0,0 @@
|
||||
---
|
||||
title: Kubernetes Blog
|
||||
linkTitle: Blog
|
||||
menu:
|
||||
main:
|
||||
title: "Blog"
|
||||
weight: 40
|
||||
post: >
|
||||
<p>Lesen Sie die neuesten Nachrichten über Kubernetes und das Containeruniversum im Allgemeinen. Erhalten Sie druckfrisch die neuesten Tutorials und technische Anleitungen.</p>
|
||||
---
|
||||
@@ -1,9 +0,0 @@
|
||||
---
|
||||
title: Fallstudien
|
||||
linkTitle: Fallstudien
|
||||
bigheader: Kubernetes Anwenderberichte
|
||||
abstract: Eine Sammlung von Benutzern, die Kubernetes in Produktion verwenden.
|
||||
layout: basic
|
||||
class: gridPage
|
||||
cid: caseStudies
|
||||
---
|
||||
@@ -1,61 +0,0 @@
|
||||
---
|
||||
title: Community
|
||||
layout: basic
|
||||
cid: community
|
||||
---
|
||||
|
||||
<section id="mainContent">
|
||||
<main>
|
||||
<div class="content">
|
||||
<h3>Die Gewissheit, dass Kubernetes überall und für alle gut funktioniert.</h3>
|
||||
<p>Verbinden Sie sich mit der Kubernetes-Community in unserem <a href="http://slack.k8s.io/">Slack Kanal</a>, <a href="https://discuss.kubernetes.io/">Diskussionsforum</a>, oder beteiligen Sie sich an der <a href="https://groups.google.com/forum/#!forum/kubernetes-dev"> Kubernetes-dev-Google-Gruppe</a>. Eine wöchentliches Community-Meeting findet per Videokonferenz statt, um den Stand der Dinge zu diskutieren, folgen Sie
|
||||
<a href="https://github.com/kubernetes/community/blob/master/events/community-meeting.md">diesen Anweisungen</a> für Informationen wie Sie teilnehmen können.</p>
|
||||
<p>Sie können Kubernetes auch auf der ganzen Welt über unsere
|
||||
<a href="https://www.meetup.com/topics/kubernetes/">Kubernetes Meetup Community</a> und der
|
||||
<a href="https://www.meetup.com/Kubernetes-Cloud-Native-Online-Meetup/">Kubernetes Cloud Native Meetup Community</a> beitreten.</p>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h3>Special Interest Groups (SIGs)</h3>
|
||||
<p>Haben Sie ein besonderes Interesse daran, wie Kubernetes mit einer anderen Technologie arbeitet? Werfen Sie einen Blick auf unsere kontinuierlich wachsende
|
||||
<a href="https://git.k8s.io/community/sig-list.md">Listen von SIGs</a>, von AWS und Openstack bis hin zu Big Data und Skalierbarkeit, es gibt einen Platz für Sie, an dem Sie mitwirken können, und Anweisungen zur Gründung einer neuen SIG finden, wenn Ihr besonderes Interesse (noch) nicht abgedeckt ist.
|
||||
</p>
|
||||
|
||||
<p>Als Mitglied der Kubernetes-Community sind Sie herzlich eingeladen, an allen SIG-Treffen teilzunehmen, die Sie interessieren. Eine Registrierung ist nicht erforderlich.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<h3>Verhaltensregeln</h3>
|
||||
<p>Die Kubernetes-Community schätzt Respekt und Inklusivität und setzt einen <a href="code-of-conduct/">Verhaltenskodex</a>
|
||||
in allen Interaktionen durch. Wenn Sie einen Verstoß gegen den Verhaltenskodex bei einer Veranstaltung oder Sitzung,
|
||||
in Slack oder in einem anderen Kommunikationsmechanismus feststellen, wenden Sie sich
|
||||
bitte an das <a href="https://github.com/kubernetes/community/tree/master/committee-code-of-conduct">Kubernetes Code of Conduct Committee</a> <a href="mailto:conduct@kubernetes.io">conduct@kubernetes.io</a>. Ihre Anonymität wird geschützt.
|
||||
</p>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section id="talkToUs">
|
||||
<main>
|
||||
<h3>Talk to Us!</h3>
|
||||
<h4>Wir würden uns freuen, von Ihnen zu hören, wie Sie Kubernetes verwenden<br>und was wir tun können, um es besser zu machen.</h4>
|
||||
<div id="bigSocial">
|
||||
<div>
|
||||
<a href="https://twitter.com/kubernetesio">@kubernetesio</a>
|
||||
<p>Erhalten Sie die neuesten Nachrichten und Updates.</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="https://github.com/kubernetes/kubernetes">Github Project</a>
|
||||
<p>Informieren Sie sich über das Projekt und erwägen Sie, einen Beitrag zu leisten.</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="http://slack.k8s.io/">#kubernetes-users</a>
|
||||
<p>Unser Slack-Kanal ist der beste Weg, um unsere Ingenieure zu kontaktieren und Ihre Ideen mit ihnen zu teilen.</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="http://stackoverflow.com/questions/tagged/kubernetes">Stack Overflow</a>
|
||||
<p>Unser Benutzerforum ist ein großartiger Ort, um Community-Support zu erhalten.</p>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
@@ -1,26 +0,0 @@
|
||||
---
|
||||
title: Community
|
||||
layout: basic
|
||||
cid: community
|
||||
css: /css/community.css
|
||||
---
|
||||
|
||||
<div class="community_main">
|
||||
<h1>Kubernetes Community Code of Conduct</h1>
|
||||
|
||||
Kubernetes folgt dem
|
||||
<a href="https://github.com/cncf/foundation/blob/master/code-of-conduct-languages/de.md">CNCF Verhaltenskodex</a>.
|
||||
Der Kodex befindet sich weiter unten auf der Seite, wie er auch in
|
||||
<a href="https://github.com/cncf/foundation/blob/214585e24aab747fb85c2ea44fbf4a2442e30de6/code-of-conduct-languages/de.md">Commit 214585e</a> gefunden werden kann.
|
||||
Wenn dir auffällt, dass die hier gezeigte Version nicht mehr aktuell ist,
|
||||
<a href="https://github.com/kubernetes/website/issues/new">eröffne bitte ein Issue</a>.
|
||||
|
||||
Wenn dir bei einem Event, einem Meeting, in Slack oder einem anderen
|
||||
Kommunikationskanal ein Verstoß gegen den Verhaltenskodex auffällt, wende dich an das <a href="https://git.k8s.io/community/committee-code-of-conduct">Kubernetes Code of Conduct Committee</a>.
|
||||
Du kannst das Komitee über E-Mail erreichen: <a href="mailto:conduct@kubernetes.io">conduct@kubernetes.io</a>.
|
||||
Deine Anonymität wird geschützt.
|
||||
|
||||
<div class="cncf_coc_container">
|
||||
{{< include "/static/cncf-code-of-conduct.md" >}}
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,2 +0,0 @@
|
||||
The files in this directory have been imported from other sources. Do not
|
||||
edit them directly, except by replacing them with new versions.
|
||||
@@ -1,30 +0,0 @@
|
||||
<!-- Do not edit this file directly. Get the latest from
|
||||
https://github.com/cncf/foundation/blob/master/code-of-conduct.md -->
|
||||
## CNCF Gemeinschafts-Verhaltenskodex v1.0
|
||||
|
||||
### Verhaltenskodex für Mitwirkende
|
||||
|
||||
Als Mitwirkende und Betreuer dieses Projekts und im Interesse der Förderung einer offenen und einladenden Gemeinschaft verpflichten wir uns dazu, alle Menschen zu respektieren, die durch Berichterstattung, Veröffentlichung von Eigenschaftsanfragen, Aktualisierung der Dokumentation, Einreichung von Pull-Anfragen oder Patches und anderen Aktivitäten einen Beitrag leisten.
|
||||
|
||||
Wir sind bestrebt, die Teilnahme an diesem Projekt für alle zu einer belästigungsfreien Erfahrung zu machen, unabhängig von Erfahrungsstand, Geschlecht, geschlechtsspezifischer Identität und Ausdruck, sexueller Orientierung, Behinderung, persönlichem Aussehen, Körpergröße, Rasse, ethnischer Herkunft, Alter, Religion oder Nationalität.
|
||||
|
||||
Beispiele für unzumutbares Verhalten der Teilnehmer sind:
|
||||
|
||||
- Der Gebrauch von sexualisierter Sprache oder Bildern
|
||||
- Persönliche Angriffe
|
||||
- Trolling oder beleidigende/herabwürdigende Kommentare
|
||||
- Öffentliche oder private Belästigungen
|
||||
- Veröffentlichung privater Informationen anderer, wie z.B. physischer oder elektronischer Adressen, ohne ausdrückliche Genehmigung
|
||||
- Anderes unethisches oder unprofessionelles Verhalten.
|
||||
|
||||
Projektbetreuer haben das Recht und die Verantwortung, Kommentare, Commits, Code, Wiki-Bearbeitungen, Probleme und andere Beiträge zu entfernen, zu bearbeiten oder abzulehnen, die nicht mit diesem Verhaltenskodex übereinstimmen. Mit der Annahme dieses Verhaltenskodex verpflichten sich die Projektbetreuer, diese Grundsätze fair und konsequent auf jeden Aspekt der Projektleitung anzuwenden. Projektbetreuer, die den Verhaltenskodex nicht befolgen oder durchsetzen, können dauerhaft vom Projektteam ausgeschlossen werden.
|
||||
|
||||
Dieser Verhaltenskodex gilt sowohl innerhalb von Projekträumen als auch in öffentlichen Räumen, wenn eine Person das Projekt oder seine Gemeinschaft vertritt.
|
||||
|
||||
Fälle von missbräuchlichem, belästigendem oder anderweitig unzumutbarem Verhalten in Kubernetes können gemeldet werden, indem Sie sich an das [Kubernetes Komitee für Verhaltenskodex](https://git.k8s.io/community/committee-code-of-conduct) wenden unter <conduct@kubernetes.io>. Für andere Projekte wenden Sie sich bitte an einen CNCF-Projektbetreuer oder an unseren Mediator, Mishi Choudhary <mishi@linux.com>.
|
||||
|
||||
Dieser Verhaltenskodex wurde aus dem Contributor Covenant übernommen (http://contributor-covenant.org), Version 1.2.0, verfügbar unter http://contributor-covenant.org/version/1/2/0/
|
||||
|
||||
### CNCF Verhaltenskodex für Veranstaltungen
|
||||
|
||||
Für CNCF Veranstaltungen gilt der Verhaltenskodex der Linux Foundation, der auf der Veranstaltungsseite verfügbar ist. Diese ist so konzipiert, dass sie mit der oben genannten Richtlinie kompatibel ist und enthält auch weitere Details zur Reaktion auf Vorfälle.
|
||||
@@ -1,3 +0,0 @@
|
||||
---
|
||||
title: Dokumentation
|
||||
---
|
||||
@@ -1,76 +0,0 @@
|
||||
---
|
||||
title: Konzepte
|
||||
main_menu: true
|
||||
content_type: concept
|
||||
weight: 40
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
Im Abschnitt Konzepte erfahren Sie mehr über die Bestandteile des Kubernetes-Systems und die Abstraktionen, die Kubernetes zur Verwaltung Ihres Clusters zur Verfügung stellt. Sie erhalten zudem ein tieferes Verständnis der Funktionsweise von Kubernetes.
|
||||
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## Überblick
|
||||
|
||||
Um mit Kubernetes zu arbeiten, verwenden Sie *Kubernetes-API-Objekte*, um den *gewünschten Status Ihres Clusters* zu beschreiben:
|
||||
welche Anwendungen oder anderen Workloads Sie ausführen möchten, welche Containerimages sie verwenden, die Anzahl der Replikate, welche Netzwerk- und Festplattenressourcen Sie zur Verfügung stellen möchten, und vieles mehr. Sie legen den gewünschten Status fest, indem Sie Objekte mithilfe der Kubernetes-API erstellen. Dies geschieht normalerweise über die Befehlszeilenschnittstelle `kubectl`. Sie können die Kubernetes-API auch direkt verwenden, um mit dem Cluster zu interagieren und den gewünschten Status festzulegen oder zu ändern.
|
||||
|
||||
Sobald Sie den gewünschten Status eingestellt haben, wird das *Kubernetes Control Plane* dafür sorgen, dass der aktuelle Status des Clusters mit dem gewünschten Status übereinstimmt. Zu diesem Zweck führt Kubernetes verschiedene Aufgaben automatisch aus, z. B. das Starten oder Neustarten von Containern, Skalieren der Anzahl der Repliken einer bestimmten Anwendung und vieles mehr. Das Kubernetes Control Plane besteht aus einer Reihe von Prozessen, die in Ihrem Cluster ausgeführt werden:
|
||||
|
||||
* Der **Kubernetes Master** bestehet aus drei Prozessen, die auf einem einzelnen Node in Ihrem Cluster ausgeführt werden, der als Master-Node bezeichnet wird. Diese Prozesse sind:[kube-apiserver](/docs/admin/kube-apiserver/), [kube-controller-manager](/docs/admin/kube-controller-manager/) und [kube-scheduler](/docs/admin/kube-scheduler/).
|
||||
* Jeder einzelne Node in Ihrem Cluster, welcher nicht der Master ist, führt zwei Prozesse aus:
|
||||
* **[kubelet](/docs/admin/kubelet/)**, das mit dem Kubernetes Master kommuniziert.
|
||||
* **[kube-proxy](/docs/admin/kube-proxy/)**, ein Netzwerk-Proxy, der die Netzwerkdienste von Kubernetes auf jedem Node darstellt.
|
||||
|
||||
## Kubernetes Objects
|
||||
|
||||
Kubernetes enthält eine Reihe von Abstraktionen, die den Status Ihres Systems darstellen: im Container eingesetzte Anwendungen und Workloads, die zugehörigen Netzwerk- und Festplattenressourcen sowie weitere Informationen zu den Aufgaben Ihres Clusters. Diese Abstraktionen werden durch Objekte in der Kubernetes-API dargestellt; Lesen Sie [Kubernetes Objects Überblick](/docs/concepts/abstractions/overview/) für weitere Details.
|
||||
|
||||
Die Basisobjekte von Kubernetes umfassen:
|
||||
|
||||
* [Pod](/docs/concepts/workloads/pods/pod-overview/)
|
||||
* [Service](/docs/concepts/services-networking/service/)
|
||||
* [Volume](/docs/concepts/storage/volumes/)
|
||||
* [Namespace](/docs/concepts/overview/working-with-objects/namespaces/)
|
||||
|
||||
Darüber hinaus enthält Kubernetes Abstraktionen auf höherer Ebene, die als Controller bezeichnet werden. Controller bauen auf den Basisobjekten auf und bieten zusätzliche Funktionen und Komfortfunktionen. Sie beinhalten:
|
||||
|
||||
* [ReplicaSet](/docs/concepts/workloads/controllers/replicaset/)
|
||||
* [Deployment](/docs/concepts/workloads/controllers/deployment/)
|
||||
* [StatefulSet](/docs/concepts/workloads/controllers/statefulset/)
|
||||
* [DaemonSet](/docs/concepts/workloads/controllers/daemonset/)
|
||||
* [Job](/docs/concepts/workloads/controllers/jobs-run-to-completion/)
|
||||
|
||||
## Kubernetes Control Plane
|
||||
|
||||
Die verschiedenen Teile der Kubernetes-Steuerungsebene (Control Plane), wie der Kubernetes Master- und der Kubelet-Prozess, bestimmen, wie Kubernetes mit Ihrem Cluster kommuniziert. Das Control Plane verwaltet ein Inventar aller Kubernetes-Objekte im System und führt kontinuierlich Kontrollschleifen aus, um den Status dieser Objekte zu verwalten. Zu jeder Zeit reagieren die Kontrollschleifen des Control Plane auf Änderungen im Cluster und arbeiten daran, dass der tatsächliche Status aller Objekte im System mit dem von Ihnen definierten Status übereinstimmt.
|
||||
|
||||
Wenn Sie beispielsweise mit der Kubernetes-API ein Deployment-Objekt erstellen, geben Sie einen neuen gewünschten Status für das System an. Das Kubernetes Control Plane zeichnet die Objekterstellung auf und führt Ihre Anweisungen aus, indem es die erforderlichen Anwendungen startet und Sie für auf den Cluster-Nodes plant - Dadurch wird der tatsächliche Status des Clusters an den gewünschten Status angepasst.
|
||||
|
||||
### Kubernetes Master
|
||||
|
||||
Der Kubernetes-Master ist für Erhalt des gewünschten Status Ihres Clusters verantwortlich. Wenn Sie mit Kubernetes interagieren, beispielsweise mit dem Kommandozeilen-Tool `kubectl`, kommunizieren Sie mit dem Kubernetes-Master Ihres Clusters.
|
||||
|
||||
> Der Begriff "Master" bezeichnet dabei eine Reihe von Prozessen, die den Clusterstatus verwalten. Normalerweise werden diese Prozesse alle auf einem einzigen Node im Cluster ausgeführt. Dieser Node wird auch als Master bezeichnet. Der Master kann repliziert werden, um die Verfügbarkeit und Redundanz zu erhöhen.
|
||||
|
||||
### Kubernetes Nodes
|
||||
|
||||
Die Nodes in einem Cluster sind die Maschinen (VMs, physische Server usw.), auf denen Ihre Anwendungen und Cloud-Workflows ausgeführt werden. Der Kubernetes-Master steuert jeden Node; Sie werden selten direkt mit Nodes interagieren.
|
||||
|
||||
#### Objekt Metadata
|
||||
|
||||
|
||||
* [Anmerkungen](/docs/concepts/overview/working-with-objects/annotations/)
|
||||
|
||||
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
|
||||
Wenn Sie eine Konzeptseite schreiben möchten, lesen Sie [Seitenvorlagen verwenden](/docs/home/contribute/page-templates/)
|
||||
für Informationen zum Konzeptseitentyp und zur Dokumentations Vorlage.
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
---
|
||||
title: "Kubernetes Architekur"
|
||||
weight: 30
|
||||
---
|
||||
@@ -1,238 +0,0 @@
|
||||
---
|
||||
title: Zugrunde liegende Konzepte des Cloud Controller Manager
|
||||
content_type: concept
|
||||
weight: 30
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
Das Konzept des Cloud Controller Managers (CCM) (nicht zu verwechseln mit der Binärdatei) wurde ursprünglich entwickelt, um Cloud-spezifischen Anbieter Code und den Kubernetes Kern unabhängig voneinander entwickeln zu können. Der Cloud Controller Manager läuft zusammen mit anderen Master Komponenten wie dem Kubernetes Controller Manager, dem API-Server und dem Scheduler auf dem Host. Es kann auch als Kubernetes Addon gestartet werden, in diesem Fall läuft er auf Kubernetes.
|
||||
|
||||
Das Design des Cloud Controller Managers basiert auf einem Plugin Mechanismus, der es neuen Cloud Anbietern ermöglicht, sich mit Kubernetes einfach über Plugins zu integrieren. Es gibt Pläne für die Einbindung neuer Cloud Anbieter auf Kubernetes und für die Migration von Cloud Anbietern vom alten Modell auf das neue CCM-Modell.
|
||||
|
||||
Dieses Dokument beschreibt die Konzepte hinter dem Cloud Controller Manager und gibt Details zu den damit verbundenen Funktionen.
|
||||
|
||||
Die Architektur eines Kubernetes Clusters ohne den Cloud Controller Manager sieht wie folgt aus:
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## Design
|
||||
|
||||
Im vorhergehenden Diagramm sind Kubernetes und der Cloud-Provider über mehrere verschiedene Komponenten integriert:
|
||||
|
||||
* Kubelet
|
||||
* Kubernetes Controller Manager
|
||||
* Kubernetes API Server
|
||||
|
||||
CCM konsolidiert die gesamte Abhängigkeit der Cloud Logik von den drei vorhergehenden Komponenten zu einem einzigen Integrationspunkt mit der Cloud. So sieht die neue Architektur mit dem CCM aus:
|
||||
|
||||

|
||||
|
||||
## Komponenten des CCM
|
||||
|
||||
Der CCM löst einen Teil der Funktionalität des Kubernetes Controller Managers (KCM) ab und führt ihn als separaten Prozess aus. Konkret trennt es die Cloud abhängigen Controller im KCM. Der KCM verfügt über die folgenden Cloud abhängigen Steuerungsschleifen:
|
||||
|
||||
* Node Controller
|
||||
* Volume Controller
|
||||
* Route Controller
|
||||
* Service Controller
|
||||
|
||||
In der Version 1.9 führt der CCM die folgenden Controller aus der vorhergehenden Liste aus:
|
||||
|
||||
* Node Controller
|
||||
* Route Controller
|
||||
* Service Controller
|
||||
|
||||
{{< note >}}
|
||||
Der Volume Controller wurde bewusst nicht als Teil des CCM gewählt. Aufgrund der Komplexität und der bestehenden Bemühungen, herstellerspezifische Volume Logik zu abstrahieren, wurde entschieden, dass der Volume Controller nicht zum CCM verschoben wird.
|
||||
{{< /note >}}
|
||||
|
||||
Der ursprüngliche Plan, Volumes mit CCM zu integrieren, sah die Verwendung von Flex-Volumes vor welche austauschbare Volumes unterstützt. Allerdings ist eine konkurrierende Initiative namens CSI geplant, um Flex zu ersetzen.
|
||||
|
||||
In Anbetracht dieser Dynamik haben wir uns entschieden, eine Zwischenstopp durchzuführen um die Unterschiede zu beobachten , bis das CSI bereit ist.
|
||||
|
||||
## Funktionen des CCM
|
||||
|
||||
Der CCM erbt seine Funktionen von Komponenten des Kubernetes, die von einem Cloud Provider abhängig sind. Dieser Abschnitt ist auf der Grundlage dieser Komponenten strukturiert.
|
||||
|
||||
### 1. Kubernetes Controller Manager
|
||||
|
||||
Die meisten Funktionen des CCM stammen aus dem KCM. Wie im vorherigen Abschnitt erwähnt, führt das CCM die folgenden Steuerschleifen durch:
|
||||
|
||||
* Node Controller
|
||||
* Route Controller
|
||||
* Service Controller
|
||||
|
||||
#### Node Controller
|
||||
|
||||
Der Node Controller ist für die Initialisierung eines Knotens verantwortlich, indem er Informationen über die im Cluster laufenden Knoten vom Cloud Provider erhält. Der Node Controller führt die folgenden Funktionen aus:
|
||||
|
||||
1. Initialisierung eines Knoten mit Cloud-spezifischen Zonen-/Regionen Labels.
|
||||
2. Initialisieren von Knoten mit Cloud-spezifischen Instanzdetails, z.B. Typ und Größe.
|
||||
3. Ermitteln der Netzwerkadressen und des Hostnamen des Knotens.
|
||||
4. Falls ein Knoten nicht mehr reagiert, überprüft der Controller die Cloud, um festzustellen, ob der Knoten aus der Cloud gelöscht wurde.
|
||||
Wenn der Knoten aus der Cloud gelöscht wurde, löscht der Controller das Kubernetes Node Objekt.
|
||||
|
||||
#### Route Controller
|
||||
|
||||
Der Route Controller ist dafür verantwortlich, Routen in der Cloud so zu konfigurieren, dass Container auf verschiedenen Knoten im Kubernetes Cluster miteinander kommunizieren können. Der Route Controller ist nur auf einem Google Compute Engine Cluster anwendbar.
|
||||
|
||||
#### Service Controller
|
||||
|
||||
Der Service Controller ist verantwortlich für das Abhören von Ereignissen zum Erstellen, Aktualisieren und Löschen von Diensten. Basierend auf dem aktuellen Stand der Services in Kubernetes konfiguriert es Cloud Load Balancer (wie ELB, Google LB oder Oracle Cloud Infrastructure LB), um den Zustand der Services in Kubernetes abzubilden. Darüber hinaus wird sichergestellt, dass die Service Backends für Cloud Loadbalancer auf dem neuesten Stand sind.
|
||||
|
||||
### 2. Kubelet
|
||||
|
||||
Der Node Controller enthält die Cloud-abhängige Funktionalität des Kubelets. Vor der Einführung des CCM war das Kubelet für die Initialisierung eines Knotens mit cloudspezifischen Details wie IP-Adressen, Regions-/Zonenbezeichnungen und Instanztypinformationen verantwortlich. Mit der Einführung des CCM wurde diese Initialisierungsoperation aus dem Kubelet in das CCM verschoben.
|
||||
|
||||
In diesem neuen Modell initialisiert das Kubelet einen Knoten ohne cloudspezifische Informationen. Es fügt jedoch dem neu angelegten Knoten einen Taint hinzu, der den Knoten nicht verplanbar macht, bis der CCM den Knoten mit cloudspezifischen Informationen initialisiert. Dann wird der Taint entfernt.
|
||||
|
||||
## Plugin Mechanismus
|
||||
|
||||
Der Cloud Controller Manager verwendet die Go Schnittstellen, um Implementierungen aus jeder Cloud einzubinden. Konkret verwendet dieser das CloudProvider Interface, das [hier](https://github.com/kubernetes/cloud-provider/blob/9b77dc1c384685cb732b3025ed5689dd597a5971/cloud.go#L42-L62) definiert ist.
|
||||
|
||||
Die Implementierung der vier oben genannten geteiltent Controllern und einigen Scaffolding sowie die gemeinsame CloudProvider Schnittstelle bleiben im Kubernetes Kern. Cloud Provider spezifische Implementierungen werden außerhalb des Kerns aufgebaut und implementieren im Kern definierte Schnittstellen.
|
||||
|
||||
Weitere Informationen zur Entwicklung von Plugins findest du im Bereich [Entwickeln von Cloud Controller Manager](/docs/tasks/administer-cluster/developing-cloud-controller-manager/).
|
||||
|
||||
## Autorisierung
|
||||
|
||||
Dieser Abschnitt beschreibt den Zugriff, den der CCM für die Ausführung seiner Operationen auf verschiedene API Objekte benötigt.
|
||||
|
||||
### Node Controller
|
||||
|
||||
Der Node Controller funktioniert nur mit Node Objekten. Es benötigt vollen Zugang zu get, list, create, update, patch, watch, und delete Node Objekten.
|
||||
|
||||
v1/Node:
|
||||
|
||||
- Get
|
||||
- List
|
||||
- Create
|
||||
- Update
|
||||
- Patch
|
||||
- Watch
|
||||
- Delete
|
||||
|
||||
### Route Controller
|
||||
|
||||
Der Route Controller horcht auf die Erstellung von Node Objekten und konfiguriert die Routen entsprechend. Es erfordert get Zugriff auf die Node Objekte.
|
||||
|
||||
v1/Node:
|
||||
|
||||
- Get
|
||||
|
||||
### Service Controller
|
||||
|
||||
Der Service Controller hört auf die Service Objekt Events create, update und delete und konfiguriert dann die Endpunkte für diese Services entsprechend.
|
||||
|
||||
Um auf Services zuzugreifen, benötigt man list und watch Berechtigung. Um die Services zu aktualisieren, sind patch und update Zugriffsrechte erforderlich.
|
||||
|
||||
Um die Endpunkte für die Dienste einzurichten, benötigt der Controller Zugriff auf create, list, get, watch und update.
|
||||
|
||||
v1/Service:
|
||||
|
||||
- List
|
||||
- Get
|
||||
- Watch
|
||||
- Patch
|
||||
- Update
|
||||
|
||||
### Sonstiges
|
||||
|
||||
Die Implementierung des Kerns des CCM erfordert den Zugriff auf die Erstellung von Ereignissen und zur Gewährleistung eines sicheren Betriebs den Zugriff auf die Erstellung von ServiceAccounts.
|
||||
|
||||
v1/Event:
|
||||
|
||||
- Create
|
||||
- Patch
|
||||
- Update
|
||||
|
||||
v1/ServiceAccount:
|
||||
|
||||
- Create
|
||||
|
||||
Die RBAC ClusterRole für CCM sieht wie folgt aus:
|
||||
|
||||
```yaml
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: cloud-controller-manager
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes/status
|
||||
verbs:
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- services
|
||||
verbs:
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- serviceaccounts
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- endpoints
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- update
|
||||
```
|
||||
|
||||
## Anbieter Implementierung
|
||||
|
||||
Die folgenden Cloud Anbieter haben CCMs implementiert:
|
||||
|
||||
* [Digital Ocean](https://github.com/digitalocean/digitalocean-cloud-controller-manager)
|
||||
* [Oracle](https://github.com/oracle/oci-cloud-controller-manager)
|
||||
* [Azure](https://github.com/kubernetes/cloud-provider-azure)
|
||||
* [GCP](https://github.com/kubernetes/cloud-provider-gcp)
|
||||
* [AWS](https://github.com/kubernetes/cloud-provider-aws)
|
||||
* [BaiduCloud](https://github.com/baidu/cloud-provider-baiducloud)
|
||||
* [Linode](https://github.com/linode/linode-cloud-controller-manager)
|
||||
|
||||
## Cluster Administration
|
||||
|
||||
Eine vollständige Anleitung zur Konfiguration und zum Betrieb des CCM findest du [hier](/docs/tasks/administer-cluster/running-cloud-controller/#cloud-controller-manager).
|
||||
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
---
|
||||
title: Master-Node Kommunikation
|
||||
content_type: concept
|
||||
weight: 20
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
Dieses Dokument katalogisiert die Kommunikationspfade zwischen dem Master (eigentlich dem Apiserver) und des Kubernetes-Clusters.
|
||||
Die Absicht besteht darin, Benutzern die Möglichkeit zu geben, ihre Installation so anzupassen, dass die Netzwerkkonfiguration so abgesichert wird, dass der Cluster in einem nicht vertrauenswürdigen Netzwerk (oder mit vollständig öffentlichen IP-Adressen eines Cloud-Providers) ausgeführt werden kann.
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## Cluster zum Master
|
||||
|
||||
Alle Kommunikationspfade vom Cluster zum Master enden beim Apiserver (keine der anderen Master-Komponenten ist dafür ausgelegt, Remote-Services verfügbar zu machen).
|
||||
In einem typischen Setup ist der Apiserver so konfiguriert, dass er Remote-Verbindungen an einem sicheren HTTPS-Port (443) mit einer oder mehreren Formen der [Clientauthentifizierung](/docs/reference/access-authn-authz/authentication/) überwacht.
|
||||
Eine oder mehrere Formene von [Autorisierung](/docs/reference/access-authn-authz/authorization/) sollte aktiviert sein, insbesondere wenn [anonyme Anfragen](/docs/reference/access-authn-authz/authentication/#anonymous-requests) oder [Service Account Tokens](/docs/reference/access-authn-authz/authentication/#service-account-tokens) aktiviert sind.
|
||||
|
||||
Nodes sollten mit dem öffentlichen Stammzertifikat für den Cluster konfiguriert werden, sodass sie eine sichere Verbindung zum Apiserver mit gültigen Client-Anmeldeinformationen herstellen können.
|
||||
Beispielsweise bei einer gewöhnlichen GKE-Konfiguration enstprechen die dem kubelet zur Verfügung gestellten Client-Anmeldeinformationen eines Client-Zertifikats.
|
||||
Lesen Sie über [kubelet TLS bootstrapping](/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/) zur automatisierten Bereitstellung von kubelet-Client-Zertifikaten.
|
||||
|
||||
Pods, die eine Verbindung zum Apiserver herstellen möchten, können dies auf sichere Weise tun, indem sie ein Dienstkonto verwenden, sodass Kubernetes das öffentliche Stammzertifikat und ein gültiges Trägertoken automatisch in den Pod einfügt, wenn er instanziiert wird.
|
||||
Der `kubernetes`-Dienst (in allen Namespaces) ist mit einer virtuellen IP-Adresse konfiguriert, die (über den Kube-Proxy) an den HTTPS-Endpunkt auf dem Apiserver umgeleitet wird.
|
||||
|
||||
Die Master-Komponenten kommunizieren auch über den sicheren Port mit dem Cluster-Apiserver.
|
||||
|
||||
Der Standardbetriebsmodus für Verbindungen vom Cluster (Knoten und Pods, die auf den Knoten ausgeführt werden) zum Master ist daher standardmäßig gesichert und kann über nicht vertrauenswürdige und/oder öffentliche Netzwerke laufen.
|
||||
|
||||
## Master zum Cluster
|
||||
|
||||
Es gibt zwei primäre Kommunikationspfade vom Master (Apiserver) zum Cluster.
|
||||
Der Erste ist vom Apiserver hin zum Kubelet-Prozess, der auf jedem Node im Cluster ausgeführt wird.
|
||||
Der Zweite ist vom Apiserver zu einem beliebigen Node, Pod oder Dienst über die Proxy-Funktionalität des Apiservers.
|
||||
|
||||
### Apiserver zum kubelet
|
||||
|
||||
Die Verbindungen vom Apiserver zum Kubelet werden verwendet für:
|
||||
|
||||
* Das Abrufen von Protokollen für Pods.
|
||||
* Das Verbinden (durch kubectl) mit laufenden Pods.
|
||||
* Die Bereitstellung der Portweiterleitungsfunktion des kubelet.
|
||||
|
||||
Diese Verbindungen enden am HTTPS-Endpunkt des kubelet.
|
||||
Standardmäßig überprüft der Apiserver das Serverzertifikat des Kubelets nicht, was die Verbindung angreifbar für Man-in-the-Middle-Angriffe macht. Die Kommunikation ist daher **unsicher**, wenn die Verbindungen über nicht vertrauenswürdige und/oder öffentliche Netzwerke laufen.
|
||||
|
||||
Um diese Verbindung zu überprüfen, verwenden Sie das Flag `--kubelet-certificate-authority`, um dem Apiserver ein Stammzertifikatbündel bereitzustellen, das zur Überprüfung des Server-Zertifikats des kubelets verwendet wird.
|
||||
|
||||
Wenn dies nicht möglich ist, verwenden Sie [SSH tunneling](/docs/concepts/architecture/master-node-communication/#ssh-tunnels)
|
||||
zwischen dem Apiserver und dem kubelet, falls es erforderlich ist eine Verbindung über ein nicht vertrauenswürdiges oder öffentliches Netz zu vermeiden.
|
||||
|
||||
Außerdem sollte [Kubelet Authentifizierung und/oder Autorisierung](/docs/admin/kubelet-authentication-authorization/) aktiviert sein, um die kubelet-API abzusichern.
|
||||
|
||||
### Apiserver zu Nodes, Pods und Services
|
||||
|
||||
Die Verbindungen vom Apiserver zu einem Node, Pod oder Dienst verwenden standardmäßig einfache HTTP-Verbindungen und werden daher weder authentifiziert noch verschlüsselt.
|
||||
Sie können über eine sichere HTTPS-Verbindung ausgeführt werden, indem dem Node, dem Pod oder dem Servicenamen in der API-URL "https:" vorangestellt wird. Das vom HTTPS-Endpunkt bereitgestellte Zertifikat wird jedoch nicht überprüft, und es werden keine Clientanmeldeinformationen bereitgestellt. Die Verbindung wird zwar verschlüsselt, garantiert jedoch keine Integrität.
|
||||
Diese Verbindungen **sind derzeit nicht sicher** innerhalb von nicht vertrauenswürdigen und/oder öffentlichen Netzen.
|
||||
|
||||
### SSH Tunnels
|
||||
|
||||
Kubernetes unterstützt SSH-Tunnel zum Schutz der Master -> Cluster Kommunikationspfade.
|
||||
In dieser Konfiguration initiiert der Apiserver einen SSH-Tunnel zu jedem Node im Cluster (Verbindung mit dem SSH-Server, der mit Port 22 läuft), und leitet den gesamten Datenverkehr für ein kubelet, einen Node, einen Pod oder einen Dienst durch den Tunnel.
|
||||
Dieser Tunnel stellt sicher, dass der Datenverkehr nicht außerhalb des Netzwerks sichtbar ist, in dem die Knoten ausgeführt werden.
|
||||
|
||||
SSH-Tunnel werden zur Zeit nicht unterstützt. Sie sollten also nicht verwendet werden, sei denn, man weiß, was man tut. Ein Ersatz für diesen Kommunikationskanal wird entwickelt.
|
||||
|
||||
|
||||
@@ -1,247 +0,0 @@
|
||||
---
|
||||
title: Nodes
|
||||
content_type: concept
|
||||
weight: 10
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
Ein Knoten (Node in Englisch) ist eine Arbeitsmaschine in Kubernetes, früher als `minion` bekannt. Ein Node
|
||||
kann je nach Cluster eine VM oder eine physische Maschine sein. Jeder Node enthält
|
||||
die für den Betrieb von [Pods](/docs/concepts/workloads/pods/pod/) notwendigen Dienste
|
||||
und wird von den Master-Komponenten verwaltet.
|
||||
Die Dienste auf einem Node umfassen die [Container Runtime](/docs/concepts/overview/components/#node-components), das Kubelet und den Kube-Proxy.
|
||||
Weitere Informationen finden Sie im Abschnitt Kubernetes Node in der Architekturdesign-Dokumentation.
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## Node Status
|
||||
|
||||
Der Status eines Nodes enthält folgende Informationen:
|
||||
|
||||
* [Adressen](#adressen)
|
||||
* [Zustand](#zustand)
|
||||
* [Kapazität](#kapazität)
|
||||
* [Info](#info)
|
||||
|
||||
Jeder Abschnitt wird folgend detailliert beschrieben.
|
||||
|
||||
### Adressen
|
||||
|
||||
Die Verwendung dieser Felder hängt von Ihrem Cloud-Anbieter oder der Bare-Metal-Konfiguration ab.
|
||||
|
||||
* HostName: Der vom Kernel des Nodes gemeldete Hostname. Kann mit dem kubelet-Parameter `--hostname-override` überschrieben werden.
|
||||
* ExternalIP: In der Regel die IP-Adresse des Nodes, die extern geroutet werden kann (von außerhalb des Clusters verfügbar).
|
||||
* InternalIP: In der Regel die IP-Adresse des Nodes, die nur innerhalb des Clusters routbar ist.
|
||||
|
||||
|
||||
### Zustand
|
||||
|
||||
Das `conditions` Feld beschreibt den Zustand, aller `Running` Nodes.
|
||||
|
||||
| Node Condition | Beschreibung |
|
||||
|----------------|-------------|
|
||||
| `OutOfDisk` | `True` wenn auf dem Node nicht genügend freier Speicherplatz zum Hinzufügen neuer Pods vorhanden ist, andernfalls `False` |
|
||||
| `Ready` | `True` wenn der Node in einem guten Zustand und bereit ist Pods aufzunehmen, `False` wenn der Node nicht in einem guten Zustand ist und nicht bereit ist Pods aufzunehmeb, und `Unknown` wenn der Node-Controller seit der letzten `node-monitor-grace-period` nichts von dem Node gehört hat (Die Standardeinstellung beträgt 40 Sekunden) |
|
||||
| `MemoryPressure` | `True` wenn der verfügbare Speicher des Nodes niedrig ist; Andernfalls`False` |
|
||||
| `PIDPressure` | `True` wenn zu viele Prozesse auf dem Node vorhanden sind; Andernfalls`False` |
|
||||
| `DiskPressure` | `True` wenn die Festplattenkapazität niedrig ist. Andernfalls `False` |
|
||||
| `NetworkUnavailable` | `True` wenn das Netzwerk für den Node nicht korrekt konfiguriert ist, andernfalls `False` |
|
||||
|
||||
Der Zustand eines Nodes wird als JSON-Objekt dargestellt. Die folgende Antwort beschreibt beispielsweise einen fehlerfreien Node.
|
||||
|
||||
```json
|
||||
"conditions": [
|
||||
{
|
||||
"type": "Ready",
|
||||
"status": "True"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
Wenn der Status der `Ready`-Bedingung `Unknown` oder `False` länger als der `pod-eviction-timeout` bleibt, wird ein Parameter an den [kube-controller-manager](/docs/admin/kube-controller-manager/) übergeben und alle Pods auf dem Node werden vom Node Controller gelöscht.
|
||||
|
||||
Die voreingestellte Zeit vor der Entfernung beträgt **fünf Minuten**.
|
||||
In einigen Fällen, in denen der Node nicht erreichbar ist, kann der Apiserver nicht mit dem Kubelet auf dem Node kommunizieren.
|
||||
Die Entscheidung, die Pods zu löschen, kann dem Kublet erst mitgeteilt werden, wenn die Kommunikation mit dem Apiserver wiederhergestellt ist.
|
||||
In der Zwischenzeit können Pods, deren Löschen geplant ist, weiterhin auf dem unzugänglichen Node laufen.
|
||||
|
||||
|
||||
In Versionen von Kubernetes vor 1.5 würde der Node Controller das Löschen dieser unerreichbaren Pods vom Apiserver [erzwingen](/docs/concepts/workloads/pods/pod/#force-deletion-of-pods). In Version 1.5 und höher erzwingt der Node Controller jedoch keine Pod Löschung, bis bestätigt wird, dass sie nicht mehr im Cluster ausgeführt werden. Pods die auf einem unzugänglichen Node laufen sind eventuell in einem einem `Terminating` oder `Unkown` Status. In Fällen, in denen Kubernetes nicht aus der zugrunde liegenden Infrastruktur schließen kann, ob ein Node einen Cluster dauerhaft verlassen hat, muss der Clusteradministrator den Node möglicherweise manuell löschen.
|
||||
Das Löschen des Kubernetes-Nodeobjekts bewirkt, dass alle auf dem Node ausgeführten Pod-Objekte gelöscht und deren Namen freigegeben werden.
|
||||
|
||||
In Version 1.12 wurde die Funktion `TaintNodesByCondition` als Beta-Version eingeführt, die es dem Node-Lebenszyklus-Controller ermöglicht, automatisch [Markierungen](/docs/concepts/configuration/taint-and-toleration/) (*taints* in Englisch) zu erstellen, die Bedingungen darstellen.
|
||||
|
||||
Ebenso ignoriert der Scheduler die Bedingungen, wenn er einen Node berücksichtigt; stattdessen betrachtet er die Markierungen (taints) des Nodes und die Toleranzen eines Pod.
|
||||
|
||||
Anwender können jetzt zwischen dem alten Scheduling-Modell und einem neuen, flexibleren Scheduling-Modell wählen.
|
||||
|
||||
Ein Pod, der keine Toleranzen aufweist, wird gemäß dem alten Modell geplant.
|
||||
Aber ein Pod, die die Taints eines bestimmten Node toleriert, kann auf diesem Node geplant werden.
|
||||
|
||||
{{< caution >}}
|
||||
Wenn Sie diese Funktion aktivieren, entsteht eine kleine Verzögerung zwischen der Zeit,
|
||||
in der eine Bedingung beobachtet wird, und der Zeit, in der ein Taint entsteht.
|
||||
Diese Verzögerung ist in der Regel kürzer als eine Sekunde, aber sie kann die Anzahl
|
||||
der Pods erhöhen, die erfolgreich geplant, aber vom Kubelet abgelehnt werden.
|
||||
{{< /caution >}}
|
||||
|
||||
### Kapazität
|
||||
|
||||
Beschreibt die auf dem Node verfügbaren Ressourcen: CPU, Speicher und die maximale
|
||||
Anzahl der Pods, die auf dem Node ausgeführt werden können.
|
||||
|
||||
### Info
|
||||
|
||||
Allgemeine Informationen zum Node, z. B. Kernelversion, Kubernetes-Version
|
||||
(kubelet- und kube-Proxy-Version), Docker-Version (falls verwendet), Betriebssystemname.
|
||||
Die Informationen werden von Kubelet vom Node gesammelt.
|
||||
|
||||
## Management
|
||||
|
||||
Im Gegensatz zu [Pods](/docs/concepts/workloads/pods/pod/) und [Services](/docs/concepts/services-networking/service/),
|
||||
ein Node wird nicht von Kubernetes erstellt: Er wird extern von Cloud-Anbietern wie Google Compute Engine erstellt oder ist in Ihrem Pool physischer oder virtueller Maschinen vorhanden.
|
||||
Wenn Kubernetes also einen Node erstellt, wird ein Objekt erstellt, das den Node darstellt.
|
||||
Nach der Erstellung überprüft Kubernetes, ob der Node gültig ist oder nicht.
|
||||
|
||||
Wenn Sie beispielsweise versuchen, einen Node aus folgendem Inhalt zu erstellen:
|
||||
|
||||
```json
|
||||
{
|
||||
"kind": "Node",
|
||||
"apiVersion": "v1",
|
||||
"metadata": {
|
||||
"name": "10.240.79.157",
|
||||
"labels": {
|
||||
"name": "my-first-k8s-node"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Kubernetes erstellt intern ein Node-Objekt (die Darstellung) und validiert den Node durch Zustandsprüfung basierend auf dem Feld `metadata.name`.
|
||||
Wenn der Node gültig ist, d.h. wenn alle notwendigen Dienste ausgeführt werden, ist er berechtigt, einen Pod auszuführen.
|
||||
Andernfalls wird er für alle Clusteraktivitäten ignoriert, bis er gültig wird.
|
||||
|
||||
|
||||
{{< note >}}
|
||||
Kubernetes behält das Objekt für den ungültigen Node und prüft ständig seine Gültigkeit.
|
||||
Sie müssen das Node-Objekt explizit löschen, um diesen Prozess zu stoppen.
|
||||
{{< /note >}}
|
||||
|
||||
Aktuell gibt es drei Komponenten, die mit dem Kubernetes Node-Interface interagieren: Node Controller, Kubelet und Kubectl.
|
||||
|
||||
|
||||
### Node Controller
|
||||
|
||||
Der Node Controller ist eine Kubernetes-Master-Komponente, die verschiedene Aspekte von Nodes verwaltet.
|
||||
|
||||
Der Node Controller hat mehrere Rollen im Leben eines Nodes.
|
||||
Der erste ist die Zuordnung eines CIDR-Blocks zu dem Node, wenn er registriert ist (sofern die CIDR-Zuweisung aktiviert ist).
|
||||
|
||||
Die zweite ist, die interne Node-Liste des Node Controllers mit der Liste der verfügbaren Computer des Cloud-Anbieters auf dem neuesten Stand zu halten.
|
||||
Wenn ein Node in einer Cloud-Umgebung ausgeführt wird und sich in einem schlechten Zustand befindet, fragt der Node Controller den Cloud-Anbieter, ob die virtuelle Maschine für diesen Node noch verfügbar ist. Wenn nicht, löscht der Node Controller den Node aus seiner Node-Liste.
|
||||
|
||||
Der dritte ist die Überwachung des Zustands der Nodes. Der Node Controller ist dafür verantwortlich,
|
||||
die NodeReady-Bedingung von NodeStatus auf ConditionUnknown zu aktualisieren, wenn ein wenn ein Node unerreichbar wird (der Node Controller empfängt aus irgendeinem Grund keine Herzschläge mehr, z.B. weil der Node heruntergefahren ist) und später alle Pods aus dem Node zu entfernen (und diese ordnungsgemäss zu beenden), wenn der Node weiterhin unzugänglich ist. (Die Standard-Timeouts sind 40s, um ConditionUnknown zu melden und 5 Minuten, um mit der Evakuierung der Pods zu beginnen).
|
||||
Der Node Controller überprüft den Zustand jedes Nodes alle `--node-monitor-period` Sekunden.
|
||||
|
||||
|
||||
In Versionen von Kubernetes vor 1.13 ist NodeStatus der Herzschlag des Nodes.
|
||||
Ab Kubernetes 1.13 wird das Node-Lease-Feature als Alpha-Feature eingeführt (Feature-Gate `NodeLease`, [KEP-0009](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/0009-node-heartbeat.md)).
|
||||
|
||||
Wenn die Node Lease Funktion aktiviert ist, hat jeder Node ein zugeordnetes `Lease`-Objekt im `kube-node-lease`-Namespace, das vom Node regelmäßig erneuert wird.
|
||||
Sowohl NodeStatus als auch Node Lease werden als Herzschläge vom Node aus behandelt.
|
||||
Node Leases werden häufig erneuert, während NodeStatus nur dann vom Node zu Master gemeldet wird, wenn sich etwas ändert oder genügend Zeit vergangen ist (Standard ist 1 Minute, was länger ist als der Standard-Timeout von 40 Sekunden für unerreichbare Nodes).
|
||||
Da Node Leases viel lastärmer sind als NodeStatus, macht diese Funktion den Node Herzschlag sowohl in Bezug auf Skalierbarkeit als auch auf die Leistung deutlich effizienter.
|
||||
|
||||
In Kubernetes 1.4 haben wir die Logik der Node-Steuerung aktualisiert, um Fälle besser zu handhaben, in denen eine große Anzahl von Nodes Probleme hat, den Master zu erreichen (z.B. weil der Master Netzwerkprobleme hat).
|
||||
Ab 1.4 betrachtet der Node-Controller den Zustand aller Nodes im Cluster, wenn er eine Entscheidung über die Enterfung eines Pods trifft.
|
||||
|
||||
In den meisten Fällen begrenzt der Node-Controller die Entfernungsrate auf `--node-eviction-rate` (Standard 0,1) pro Sekunde, was bedeutet, dass er die Pods nicht von mehr als einem Node pro 10 Sekunden entfernt.
|
||||
|
||||
Das Entfernungsverhalten von Nodes ändert sich, wenn ein Node in einer bestimmten Verfügbarkeitszone ungesund wird.
|
||||
Der Node-Controller überprüft gleichzeitig, wie viel Prozent der Nodes in der Zone ungesund sind (NodeReady-Bedingung ist ConditionUnknown oder ConditionFalse).
|
||||
Wenn der Anteil der ungesunden Nodes mindestens `--unhealthy-zone-threshold` (Standard 0,55) beträgt, wird die Entfernungsrate reduziert:
|
||||
|
||||
Wenn der Cluster klein ist (d.h. weniger als oder gleich `--large-cluster-size-threshold` Node - Standard 50), werden die Entfernungen gestoppt. Andernfalls wird die Entfernungsrate auf `--secondary-node-eviction-rate` (Standard 0,01) pro Sekunde reduziert.
|
||||
|
||||
Der Grund, warum diese Richtlinien pro Verfügbarkeitszone implementiert werden, liegt darin, dass eine Verfügbarkeitszone vom Master unerreichbar werden könnte, während die anderen verbunden bleiben. Wenn Ihr Cluster nicht mehrere Verfügbarkeitszonen von Cloud-Anbietern umfasst, gibt es nur eine Verfügbarkeitszone (den gesamten Cluster).
|
||||
|
||||
Ein wichtiger Grund für die Verteilung Ihrer Nodes auf Verfügbarkeitszonen ist, dass die Arbeitsbelastung auf gesunde Zonen verlagert werden kann, wenn eine ganze Zone ausfällt.
|
||||
Wenn also alle Nodes in einer Zone ungesund sind, entfernt Node Controller mit der normalen `--node-eviction-rate` Geschwindigkeit.
|
||||
Der Ausnahmefall ist, wenn alle Zonen völlig ungesund sind (d.h. es gibt keine gesunden Node im Cluster).
|
||||
In diesem Fall geht der Node-Controller davon aus, dass es ein Problem mit der Master-Konnektivität gibt und stoppt alle Entfernungen, bis die Verbindung wiederhergestellt ist.
|
||||
|
||||
Ab Kubernetes 1.6 ist der Node-Controller auch für die Entfernung von Pods zuständig, die auf Nodes mit `NoExecute`-Taints laufen, wenn die Pods die Markierungen nicht tolerieren.
|
||||
Zusätzlich ist der NodeController als Alpha-Funktion, die standardmäßig deaktiviert ist, dafür verantwortlich, Taints hinzuzufügen, die Node Probleme, wie `Node unreachable` oder `not ready` entsprechen.
|
||||
Siehe [diese Dokumentation](/docs/concepts/configuration/taint-and-toleration/) für Details über `NoExecute` Taints und die Alpha-Funktion.
|
||||
|
||||
|
||||
Ab Version 1.8 kann der Node-Controller für die Erzeugung von Taints, die Node Bedingungen darstellen, verantwortlich gemacht werden. Dies ist eine Alpha-Funktion der Version 1.8.
|
||||
|
||||
### Selbstregistrierung von Nodes
|
||||
|
||||
Wenn das Kubelet-Flag `--register-node` aktiv ist (Standard), versucht das Kubelet, sich beim API-Server zu registrieren. Dies ist das bevorzugte Muster, das von den meisten Distributionen verwendet wird.
|
||||
|
||||
Zur Selbstregistrierung wird das kubelet mit den folgenden Optionen gestartet:
|
||||
|
||||
- `--kubeconfig` - Pfad zu Anmeldeinformationen, um sich beim Apiserver zu authentifizieren.
|
||||
- `--cloud-provider` - Wie man sich mit einem Cloud-Anbieter unterhält, um Metadaten über sich selbst zu lesen.
|
||||
- `--register-node` - Automatisch beim API-Server registrieren.
|
||||
- `--register-with-taints` - Registrieren Sie den Node mit der angegebenen Taints-Liste (Kommagetrennt `<key>=<value>:<effect>`). No-op wenn `register-node` false ist.
|
||||
- `--node-ip` - IP-Adresse des Nodes.
|
||||
- `--node-labels` - Labels, die bei der Registrierung des Nodes im Cluster hinzugefügt werden sollen (Beachten Sie die Richlinien des [NodeRestriction admission plugin](/docs/reference/access-authn-authz/admission-controllers/#noderestriction) in 1.13+).
|
||||
- `--node-status-update-frequency` - Gibt an, wie oft kubelet den Nodestatus an den Master übermittelt.
|
||||
|
||||
Wenn der [Node authorization mode](/docs/reference/access-authn-authz/node/) und
|
||||
[NodeRestriction admission plugin](/docs/reference/access-authn-authz/admission-controllers/#noderestriction) aktiviert sind,
|
||||
dürfen kubelets nur ihre eigene Node-Ressource erstellen / ändern.
|
||||
|
||||
#### Manuelle Nodeverwaltung
|
||||
|
||||
Ein Cluster-Administrator kann Nodeobjekte erstellen und ändern.
|
||||
|
||||
Wenn der Administrator Nodeobjekte manuell erstellen möchte, setzen Sie das kubelet Flag `--register-node=false`.
|
||||
|
||||
Der Administrator kann Node-Ressourcen ändern (unabhängig von der Einstellung von `--register-node`).
|
||||
Zu den Änderungen gehören das Setzen von Labels und das Markieren des Nodes.
|
||||
|
||||
Labels auf Nodes können in Verbindung mit node selectors auf Pods verwendet werden, um die Planung zu steuern, z.B. um einen Pod so zu beschränken, dass er nur auf einer Teilmenge der Nodes ausgeführt werden darf.
|
||||
|
||||
Das Markieren eines Nodes als nicht geplant, verhindert, dass neue Pods für diesen Node geplant werden. Dies hat jedoch keine Auswirkungen auf vorhandene Pods auf dem Node.
|
||||
Dies ist nützlich als vorbereitender Schritt vor einem Neustart eines Nodes usw.
|
||||
Um beispielsweise einen Node als nicht geplant zu markieren, führen Sie den folgenden Befehl aus:
|
||||
|
||||
```shell
|
||||
kubectl cordon $NODENAME
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
Pods, die von einem DaemonSet-Controller erstellt wurden, umgehen den Kubernetes-Scheduler und respektieren nicht das _unschedulable_ Attribut auf einem Node.
|
||||
Dies setzt voraus, dass Daemons auf dem Computer verbleiben, auch wenn während der Vorbereitung eines Neustarts keine Anwendungen mehr vorhanden sind.
|
||||
{{< /note >}}
|
||||
|
||||
### Node Kapazität
|
||||
|
||||
Die Kapazität des Nodes (Anzahl der CPU und Speichermenge) ist Teil des Nodeobjekts.
|
||||
Normalerweise registrieren sich Nodes selbst und melden ihre Kapazität beim Erstellen des Nodeobjekts.
|
||||
Sofern Sie [Manuelle Nodeverwaltung](#Manuelle-Nodeverwaltung) betreiben, müssen Sie die Node Kapazität setzen, wenn Sie einen Node hinzufügen.
|
||||
|
||||
Der Kubernetes-Scheduler stellt sicher, dass für alle Pods auf einem Nodes genügend Ressourcen vorhanden sind.
|
||||
Er prüft, dass die Summe der Requests von Containern auf dem Node nicht größer ist als die Kapazität des Nodes.
|
||||
Er beinhaltet alle Container die vom kubelet gestarted worden, aber keine Container die direkt von der [container runtime](/docs/concepts/overview/components/#node-components) gestartet wurden, noch jegleiche Prozesse die ausserhalb von Containern laufen.
|
||||
|
||||
Wenn Sie Ressourcen explizit für Nicht-Pod-Prozesse reservieren möchten, folgen Sie diesem Lernprogramm um [Ressourcen für Systemdaemons zu reservieren](/docs/tasks/administer-cluster/reserve-compute-resources/#system-reserved).
|
||||
|
||||
|
||||
## API-Objekt
|
||||
|
||||
Node ist eine Top-Level-Ressource in der Kubernetes-REST-API. Weitere Details zum API-Objekt finden Sie unter:
|
||||
[Node API object](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#node-v1-core).
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: "Cluster Administration"
|
||||
weight: 100
|
||||
---
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
---
|
||||
title: Addons Installieren
|
||||
content_type: concept
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
|
||||
Add-Ons erweitern die Funktionalität von Kubernetes.
|
||||
|
||||
Diese Seite gibt eine Übersicht über einige verfügbare Add-Ons und verweist auf die entsprechenden Installationsanleitungen.
|
||||
|
||||
Die Add-Ons in den einzelnen Kategorien sind alphabetisch sortiert - Die Reihenfolge impliziert keine bevorzugung einzelner Projekte.
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## Networking und Network Policy
|
||||
|
||||
* [ACI](https://www.github.com/noironetworks/aci-containers) bietet Container-Networking und Network-Security mit Cisco ACI.
|
||||
* [Calico](https://docs.projectcalico.org/latest/introduction/) ist ein Networking- und Network-Policy-Provider. Calico unterstützt eine Reihe von Networking-Optionen, damit Du die richtige für deinen Use-Case wählen kannst. Dies beinhaltet Non-Overlaying and Overlaying-Networks mit oder ohne BGP. Calico nutzt die gleiche Engine um Network-Policies für Hosts, Pods und (falls Du Istio & Envoy benutzt) Anwendungen auf Service-Mesh-Ebene durchzusetzen.
|
||||
* [Canal](https://github.com/tigera/canal/tree/master/k8s-install) vereint Flannel und Calico um Networking- und Network-Policies bereitzustellen.
|
||||
* [Cilium](https://github.com/cilium/cilium) ist ein L3 Network- and Network-Policy-Plugin welches das transparent HTTP/API/L7-Policies durchsetzen kann. Sowohl Routing- als auch Overlay/Encapsulation-Modes werden uterstützt. Außerdem kann Cilium auf andere CNI-Plugins aufsetzen.
|
||||
* [CNI-Genie](https://github.com/Huawei-PaaS/CNI-Genie) ermöglicht das nahtlose Verbinden von Kubernetes mit einer Reihe an CNI-Plugins wie z.B. Calico, Canal, Flannel, Romana, oder Weave.
|
||||
* [Contiv](http://contiv.github.io) bietet konfigurierbares Networking (Native L3 auf BGP, Overlay mit vxlan, Klassisches L2, Cisco-SDN/ACI) für verschiedene Anwendungszwecke und auch umfangreiches Policy-Framework. Das Contiv-Projekt ist vollständig [Open Source](http://github.com/contiv). Der [installer](http://github.com/contiv/install) bietet sowohl kubeadm als auch nicht-kubeadm basierte Installationen.
|
||||
* [Contrail](http://www.juniper.net/us/en/products-services/sdn/contrail/contrail-networking/), basierend auf [Tungsten Fabric](https://tungsten.io), ist eine Open Source, multi-Cloud Netzwerkvirtualisierungs- und Policy-Management Plattform. Contrail und Tungsten Fabric sind mit Orechstratoren wie z.B. Kubernetes, OpenShift, OpenStack und Mesos integriert und bieten Isolationsmodi für Virtuelle Maschinen, Container (bzw. Pods) und Bare Metal workloads.
|
||||
* [Flannel](https://github.com/coreos/flannel/blob/master/Documentation/kubernetes.md) ist ein Overlay-Network-Provider der mit Kubernetes genutzt werden kann.
|
||||
* [Knitter](https://github.com/ZTE/Knitter/) ist eine Network-Lösung die Mehrfach-Network in Kubernetes ermöglicht.
|
||||
* [Multus](https://github.com/Intel-Corp/multus-cni) ist ein Multi-Plugin für Mehrfachnetzwerk-Unterstützung um alle CNI-Plugins (z.B. Calico, Cilium, Contiv, Flannel), zusätzlich zu SRIOV-, DPDK-, OVS-DPDK- und VPP-Basierten Workloads in Kubernetes zu unterstützen.
|
||||
* [NSX-T](https://docs.vmware.com/en/VMware-NSX-T/2.0/nsxt_20_ncp_kubernetes.pdf) Container Plug-in (NCP) bietet eine Integration zwischen VMware NSX-T und einem Orchestator wie z.B. Kubernetes. Außerdem bietet es eine Integration zwischen NSX-T und Containerbasierten CaaS/PaaS-Plattformen wie z.B. Pivotal Container Service (PKS) und OpenShift.
|
||||
* [Nuage](https://github.com/nuagenetworks/nuage-kubernetes/blob/v5.1.1-1/docs/kubernetes-1-installation.rst) ist eine SDN-Plattform die Policy-Basiertes Networking zwischen Kubernetes Pods und nicht-Kubernetes Umgebungen inklusive Sichtbarkeit und Security-Monitoring bereitstellt.
|
||||
* [Romana](http://romana.io) ist eine Layer 3 Network-Lösung für Pod-Netzwerke welche auch die [NetworkPolicy API](/docs/concepts/services-networking/network-policies/) unterstützt. Details zur Installation als kubeadm Add-On sind [hier](https://github.com/romana/romana/tree/master/containerize) verfügbar.
|
||||
* [Weave Net](https://www.weave.works/docs/net/latest/kube-addon/) bietet Networking and Network-Policies und arbeitet auf beiden Seiten der Network-Partition ohne auf eine externe Datenbank angwiesen zu sein.
|
||||
|
||||
## Service-Discovery
|
||||
|
||||
* [CoreDNS](https://coredns.io) ist ein flexibler, erweiterbarer DNS-Server der in einem Cluster [installiert](https://github.com/coredns/deployment/tree/master/kubernetes) werden kann und das Cluster-interne DNS für Pods bereitzustellen.
|
||||
|
||||
## Visualisierung & Überwachung
|
||||
|
||||
* [Dashboard](https://github.com/kubernetes/dashboard#kubernetes-dashboard) ist ein Dashboard Web Interface für Kubernetes.
|
||||
* [Weave Scope](https://www.weave.works/documentation/scope-latest-installing/#k8s) ist ein Tool um Container, Pods, Services usw. Grafisch zu visualieren. Kann in Verbindung mit einem [Weave Cloud Account](https://cloud.weave.works/) genutzt oder selbst gehosted werden.
|
||||
|
||||
## Infrastruktur
|
||||
|
||||
* [KubeVirt](https://kubevirt.io/user-guide/docs/latest/administration/intro.html#cluster-side-add-on-deployment) ist ein Add-On um Virtuelle Maschinen in Kubernetes auszuführen. Wird typischer auf Bare-Metal Clustern eingesetzt.
|
||||
|
||||
## Legacy Add-Ons
|
||||
|
||||
Es gibt einige weitere Add-Ons die in dem abgekündigten [cluster/addons](https://git.k8s.io/kubernetes/cluster/addons)-Verzeichnis dokumentiert sind.
|
||||
|
||||
Add-Ons die ordentlich gewartet werden dürfen gerne hier aufgezählt werden. Wir freuen uns auf PRs!
|
||||
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
---
|
||||
title: Controller Manager Metriken
|
||||
content_type: concept
|
||||
weight: 100
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
Controller Manager Metriken liefern wichtige Erkenntnisse über die Leistung und den Zustand von den Controller Managern.
|
||||
|
||||
|
||||
|
||||
<!-- body -->
|
||||
## Was sind Controller Manager Metriken
|
||||
|
||||
Die Kennzahlen des Controller Managers liefert wichtige Erkenntnisse über die Leistung und den Zustand des Controller Managers.
|
||||
Diese Metriken beinhalten gängige Go Language Laufzeitmetriken wie go_routine count und controller-spezifische Metriken wie z.B.
|
||||
etcd Request Latenzen oder Cloud Provider (AWS, GCE, OpenStack) API Latenzen, die verwendet werden können um den Zustand eines Clusters zu messen.
|
||||
|
||||
Ab Kubernetes 1.7 stehen detaillierte Cloud Provider Metriken für den Speicherbetrieb für GCE, AWS, Vsphere und OpenStack zur Verfügung.
|
||||
Diese Metriken können verwendet werden, um den Zustand persistenter Datenträgeroperationen zu überwachen.
|
||||
|
||||
Für GCE werden diese Metriken beispielsweise wie folgt aufgerufen:
|
||||
|
||||
```
|
||||
cloudprovider_gce_api_request_duration_seconds { request = "instance_list"}
|
||||
cloudprovider_gce_api_request_duration_seconds { request = "disk_insert"}
|
||||
cloudprovider_gce_api_request_duration_seconds { request = "disk_delete"}
|
||||
cloudprovider_gce_api_request_duration_seconds { request = "attach_disk"}
|
||||
cloudprovider_gce_api_request_duration_seconds { request = "detach_disk"}
|
||||
cloudprovider_gce_api_request_duration_seconds { request = "list_disk"}
|
||||
```
|
||||
|
||||
## Konfiguration
|
||||
|
||||
In einem Cluster sind die Controller Manager Metriken unter `http://localhost:10252/metrics` auf dem Host verfügbar, auf dem der Controller Manager läuft.
|
||||
|
||||
Die Metriken werden im [Prometheus Format](https://prometheus.io/docs/instrumenting/exposition_formats/) ausgegeben.
|
||||
|
||||
In einer Produktionsumgebung können Sie Prometheus oder einen anderen Metrik Scraper konfigurieren, um diese Metriken regelmäßig zu sammeln und in einer Art Zeitreihen Datenbank verfügbar zu machen.
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
---
|
||||
title: Proxies in Kubernetes
|
||||
content_type: concept
|
||||
weight: 90
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
Auf dieser Seite werden die im Kubernetes verwendeten Proxies erläutert.
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## Proxies
|
||||
|
||||
Es gibt mehrere verschiedene Proxies, die die bei der Verwendung von Kubernetes begegnen können:
|
||||
|
||||
1. Der [kubectl Proxy](/docs/tasks/access-application-cluster/access-cluster/#directly-accessing-the-rest-api):
|
||||
|
||||
- läuft auf dem Desktop eines Benutzers oder in einem Pod
|
||||
- Proxy von einer lokalen Host-Adresse zum Kubernetes API Server
|
||||
- Client zu Proxy verwendet HTTP
|
||||
- Proxy zu API Server verwendet HTTPS
|
||||
- lokalisiert den API Server
|
||||
- fügt Authentifizierungs-Header hinzu
|
||||
|
||||
1. Der [API Server Proxy](/docs/tasks/access-application-cluster/access-cluster/#discovering-builtin-services):
|
||||
|
||||
- ist eine Bastion, die in den API Server eingebaut ist
|
||||
- verbindet einen Benutzer außerhalb des Clusters mit Cluster IPs, die sonst möglicherweise nicht erreichbar wären
|
||||
- läuft im API Server Prozess
|
||||
- Client zu Proxy verwendet HTTPS (oder http, wenn API Server so konfiguriert ist)
|
||||
- Proxy zum Ziel kann HTTP oder HTTPS verwenden, der Proxy wählt dies unter Verwendung der verfügbaren Informationen aus
|
||||
- kann verwendet werden, um einen Knoten, Pod oder Service zu erreichen
|
||||
- führt einen Lastausgleich durch um einen Service zu erreichen, wenn dieser verwendet wird
|
||||
|
||||
1. Der [kube Proxy](/docs/concepts/services-networking/service/#ips-and-vips):
|
||||
|
||||
- läuft auf jedem Knoten
|
||||
- Proxy unterstüzt UDP, TCP und SCTP
|
||||
- versteht kein HTTP
|
||||
- stellt Lastausgleich zur Verfügung
|
||||
- wird nur zum erreichen von Services verwendet
|
||||
|
||||
1. Ein Proxy/Load-balancer vor dem API Server:
|
||||
|
||||
- Existenz und Implementierung variieren von Cluster zu Cluster (z.B. nginx)
|
||||
- sitzt zwischen allen Clients und einem oder mehreren API Servern
|
||||
- fungiert als Load Balancer, wenn es mehrere API Server gibt
|
||||
|
||||
1. Cloud Load Balancer für externe Services:
|
||||
|
||||
- wird von einigen Cloud Anbietern angeboten (z.B. AWS ELB, Google Cloud Load Balancer)
|
||||
- werden automatisch erstellt, wenn der Kubernetes Service den Typ `LoadBalancer` hat
|
||||
- unterstützt normalerweiße nur UDP/TCP
|
||||
- Die SCTP-Unterstützung hängt von der Load Balancer Implementierung des Cloud Providers ab
|
||||
- die Implementierung variiert je nach Cloud Anbieter
|
||||
|
||||
Kubernetes Benutzer müssen sich in der Regel um nichts anderes als die ersten beiden Typen kümmern. Der Cluster Administrator stellt in der Regel sicher, dass die letztgenannten Typen korrekt eingerichtet sind.
|
||||
|
||||
## Anforderung an Umleitungen
|
||||
|
||||
Proxies haben die Möglichkeit der Umleitung (redirect) ersetzt. Umleitungen sind veraltet.
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: "Konfiguration"
|
||||
weight: 80
|
||||
---
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: "Container"
|
||||
weight: 40
|
||||
---
|
||||
|
||||
@@ -1,340 +0,0 @@
|
||||
---
|
||||
title: Images
|
||||
content_type: concept
|
||||
weight: 10
|
||||
---
|
||||
<!-- overview -->
|
||||
|
||||
Sie erstellen ihr Docker Image und laden es in eine Registry hoch, bevor es in einem Kubernetes Pod referenziert werden kann.
|
||||
|
||||
Die `image` Eigenschaft eines Containers unterstüzt die gleiche Syntax wie die des `docker` Kommandos, inklusive privater Registries und Tags.
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## Aktualisieren von Images
|
||||
|
||||
Die Standardregel für das Herunterladen von Images ist `IfNotPresent`, dies führt dazu, dass das Kubelet Images überspringt, die bereits auf einem Node vorliegen.
|
||||
Wenn sie stattdessen möchten, dass ein Image immer forciert heruntergeladen wird, können sie folgendes tun:
|
||||
|
||||
|
||||
- Die `imagePullPolicy` des Containers auf `Always` setzen.
|
||||
- Die `imagePullPolicy` auslassen und `:latest` als Image Tag nutzen.
|
||||
- Die `imagePullPolicy` und den Tag des Images auslassen.
|
||||
- Den [AlwaysPullImages](/docs/reference/access-authn-authz/admission-controllers/#alwayspullimages) Admission Controller aktivieren.
|
||||
|
||||
Beachten Sie, dass Sie die Nutzung des `:latest` Tags vermeiden sollten. Für weitere Informationen siehe: [Best Practices for Configuration](/docs/concepts/configuration/overview/#container-images).
|
||||
|
||||
## Multi-Architektur Images mit Manifesten bauen
|
||||
|
||||
Das Docker Kommandozeilenwerkzeug unterstützt jetzt das Kommando `docker manifest` mit den Subkommandos `create`, `annotate` and `push`.
|
||||
Diese Kommandos können dazu genutzt werden Manifeste zu bauen und diese hochzuladen.
|
||||
|
||||
Weitere Informationen finden sie in der Docker Dokumentation:
|
||||
https://docs.docker.com/edge/engine/reference/commandline/manifest/
|
||||
|
||||
Hier einige Beispiele wie wir dies in unserem Build - Prozess nutzen:
|
||||
https://cs.k8s.io/?q=docker%20manifest%20(create%7Cpush%7Cannotate)&i=nope&files=&repos=
|
||||
|
||||
Diese Kommandos basieren rein auf dem Docker Kommandozeileninterface und werden auch damit ausgeführt. Sie sollten entweder die Datei `$HOME/.docker/config.json` bearbeiten und den `experimental` Schlüssel auf `enabled` setzen, oder einfach die Umgebungsvariable `DOCKER_CLI_EXPERIMENTAL` auf `enabled` setzen, wenn Sie das Docker Kommandozeileninterface aufrufen.
|
||||
|
||||
|
||||
{{< note >}}
|
||||
Nutzen die bitte Docker *18.06 oder neuer*, ältere Versionen haben entweder Bugs oder unterstützen die experimentelle Kommandozeilenoption nicht. Beispiel: https://github.com/docker/cli/issues/1135 verursacht Probleme unter containerd.
|
||||
|
||||
{{< /note >}}
|
||||
|
||||
Wenn mit alten Manifesten Probleme auftreten, können sie die alten Manifeste in `$HOME/.docker/manifests` entfernen, um von vorne zu beginnen.
|
||||
|
||||
Für Kubernetes selbst nutzen wir typischerweise Images mit dem Suffix `-$(ARCH)`. Um die Abwärtskompatibilität zu erhalten, bitten wir Sie, die älteren Images mit diesen Suffixen zu generieren. Die Idee dahinter ist z.B., das `pause` image zu generieren, welches das Manifest für alle Architekturen hat, `pause-amd64` wäre dann abwärtskompatibel zu älteren Konfigurationen, oder YAML - Dateien, die ein Image mit Suffixen hart kodiert enthalten.
|
||||
|
||||
|
||||
## Nutzung einer privaten Registry
|
||||
|
||||
Private Registries könnten Schlüssel erfordern um Images von ihnen herunterzuladen.
|
||||
Authentifizierungsdaten können auf verschiedene Weisen hinterlegt werden:
|
||||
|
||||
|
||||
- Bei der Google Container Registry
|
||||
- Je Cluster
|
||||
- Automatisch in der Google Compute Engine oder Google Kubernetes Engine
|
||||
- Allen Pods erlauben von der privaten Registry des Projektes lesen zu können
|
||||
- Bei der Amazon Elastic Container Registry (ECR)
|
||||
- IAM Rollen und Richtlinien nutzen um den Zugriff auf ECR Repositories zu kontrollieren
|
||||
- Automatisch ECR Authentifizierungsdaten aktualisieren
|
||||
- Bei der Oracle Cloud Infrastructure Registry (OCIR)
|
||||
- IAM Rollen und Richtlinien nutzen um den Zugriff auf OCIR Repositories zu kontrollieren
|
||||
- Bei der Azure Container Registry (ACR)
|
||||
- Bei der IBM Cloud Container Registry
|
||||
- Nodes konfigurieren sich bei einer privaten Registry authentifizieren zu können
|
||||
- Allen Pods erlauben von jeder konfigurierten privaten Registry lesen zu können
|
||||
- Setzt die Konfiguration der Nodes durch einen Cluster - Aministrator voraus
|
||||
- Im Voraus heruntergeladene Images
|
||||
- Alle Pods können jedes gecachte Image auf einem Node nutzen
|
||||
- Setzt root - Zugriff auf allen Nodes zum Einrichten voraus
|
||||
- Spezifizieren eines ImagePullSecrets auf einem Pod
|
||||
- Nur Pods, die eigene Secret tragen, haben Zugriff auf eine private Registry
|
||||
|
||||
Jede Option wird im Folgenden im Detail beschrieben
|
||||
|
||||
|
||||
### Bei Nutzung der Google Container Registry
|
||||
|
||||
Kubernetes hat eine native Unterstützung für die [Google Container
|
||||
Registry (GCR)](https://cloud.google.com/tools/container-registry/) wenn es auf der Google Compute
|
||||
Engine (GCE) läuft. Wenn Sie ihren Cluster auf GCE oder der Google Kubernetes Engine betreiben, genügt es, einfach den vollen Image Namen zu nutzen (z.B. gcr.io/my_project/image:tag ).
|
||||
|
||||
Alle Pods in einem Cluster haben dann Lesezugriff auf Images in dieser Registry.
|
||||
|
||||
Das Kubelet authentifiziert sich bei GCR mit Nutzung des Google service Kontos der jeweiligen Instanz.
|
||||
Das Google Servicekonto der Instanz hat einen `https://www.googleapis.com/auth/devstorage.read_only`, so kann es vom GCR des Projektes herunter, aber nicht hochladen.
|
||||
|
||||
|
||||
### Bei Nutzung der Amazon Elastic Container Registry
|
||||
|
||||
Kubernetes bietet native Unterstützung für die [Amazon Elastic Container Registry](https://aws.amazon.com/ecr/), wenn Knoten AWS EC2 Instanzen sind.
|
||||
|
||||
Es muss einfach nur der komplette Image Name (z.B. `ACCOUNT.dkr.ecr.REGION.amazonaws.com/imagename:tag`) in der Pod - Definition genutzt werden.
|
||||
|
||||
Alle Benutzer eines Clusters, die Pods erstellen dürfen, können dann jedes der Images in der ECR Registry zum Ausführen von Pods nutzen.
|
||||
|
||||
Das Kubelet wird periodisch ECR Zugriffsdaten herunterladen und auffrischen, es benötigt hierfür die folgenden Berechtigungen:
|
||||
|
||||
- `ecr:GetAuthorizationToken`
|
||||
- `ecr:BatchCheckLayerAvailability`
|
||||
- `ecr:GetDownloadUrlForLayer`
|
||||
- `ecr:GetRepositoryPolicy`
|
||||
- `ecr:DescribeRepositories`
|
||||
- `ecr:ListImages`
|
||||
- `ecr:BatchGetImage`
|
||||
|
||||
Voraussetzungen:
|
||||
|
||||
- Sie müssen Kubelet in der Version `v1.2.0` nutzen. (Führen sie z.B. (e.g. run `/usr/bin/kubelet --version=true` aus um die Version zu prüfen)
|
||||
- Sie benötigen Version `v1.3.0` oder neuer wenn ihre Knoten in einer A - Region sind und sich ihre Registry in einer anderen B - Region befindet.
|
||||
- ECR muss in ihrer Region angeboten werden
|
||||
|
||||
Fehlerbehebung:
|
||||
|
||||
- Die oben genannten Voraussetzungen müssen erfüllt sein
|
||||
- Laden sie die $REGION (z.B. `us-west-2`) Zugriffsdaten auf ihren Arbeitsrechner. Verbinden sie sich per SSH auf den Host und nutzen die Docker mit diesen Daten. Funktioniert es?
|
||||
- Prüfen sie ob das Kubelet it dem Parameter `--cloud-provider=aws` läuft.
|
||||
- Prüfen sie die Logs des Kubelets (z.B. mit `journalctl -u kubelet`) auf Zeilen wie:
|
||||
- `plugins.go:56] Registering credential provider: aws-ecr-key`
|
||||
- `provider.go:91] Refreshing cache for provider: *aws_credentials.ecrProvider`
|
||||
|
||||
### Bei Nutzung der Azure Container Registry (ACR)
|
||||
Bei Nutzung der [Azure Container Registry](https://azure.microsoft.com/en-us/services/container-registry/) können sie sich entweder als ein administrativer Nutzer, oder als ein Service Principal authentifizieren.
|
||||
In jedem Fall wird die Authentifizierung über die Standard - Docker Authentifizierung ausgeführt. Diese Anleitung bezieht sich auf das [azure-cli](https://github.com/azure/azure-cli) Kommandozeilenwerkzeug.
|
||||
|
||||
Sie müssen zunächst eine Registry und Authentifizierungsdaten erstellen, eine komplette Dokumentation dazu finden sie hier: [Azure container registry documentation](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-azure-cli).
|
||||
|
||||
Sobald sie ihre Container Registry erstellt haben, nutzen sie die folgenden Authentifizierungsdaten:
|
||||
|
||||
* `DOCKER_USER` : Service Principal oder Administratorbenutzername
|
||||
* `DOCKER_PASSWORD`: Service Principal Password oder Administratorpasswort
|
||||
* `DOCKER_REGISTRY_SERVER`: `${some-registry-name}.azurecr.io`
|
||||
* `DOCKER_EMAIL`: `${some-email-address}`
|
||||
|
||||
Wenn sie diese Variablen befüllt haben, können sie:
|
||||
[Kubernetes konfigurieren und damit einen Pod deployen](/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod).
|
||||
|
||||
### Bei Nutzung der IBM Cloud Container Registry
|
||||
Die IBM Cloud Container Registry bietet eine mandantenfähige Private Image Registry, die Sie nutzen können, um ihre Docker Images sicher zu speichern und zu teilen.
|
||||
Standardmäßig werden Images in ihrer Private Registry vom integrierten Schwachstellenscaner durchsucht, um Sicherheitsprobleme und potentielle Schwachstellen zu finden. Benutzer können ihren IBM Cloud Account nutzen, um Zugang zu ihren Images zu erhalten, oder um einen Token zu generieren, der Zugriff auf die Registry Namespaces erlaubt.
|
||||
|
||||
Um das IBM Cloud Container Registry Kommandozeilenwerkzeug zu installieren und einen Namespace für ihre Images zu erstellen, folgen sie dieser Dokumentation [Getting started with IBM Cloud Container Registry](https://cloud.ibm.com/docs/services/Registry?topic=registry-getting-started).
|
||||
|
||||
Sie können die IBM Cloud Container Registry nutzen, um Container aus [IBM Cloud public images](https://cloud.ibm.com/docs/services/Registry?topic=registry-public_images) und ihren eigenen Images in den `default` Namespace ihres IBM Cloud Kubernetes Service Clusters zu deployen.
|
||||
Um einen Container in einen anderen Namespace, oder um ein Image aus einer anderen IBM Cloud Container Registry Region oder einem IBM Cloud account zu deployen, erstellen sie ein Kubernetes `imagePullSecret`.
|
||||
Weitere Informationen finden sie unter: [Building containers from images](https://cloud.ibm.com/docs/containers?topic=containers-images).
|
||||
|
||||
### Knoten für die Nutzung einer Private Registry konfigurieren
|
||||
|
||||
{{< note >}}
|
||||
Wenn sie Google Kubernetes Engine verwenden, gibt es schon eine `.dockercfg` auf jedem Knoten, die Zugriffsdaten für ihre Google Container Registry beinhaltet. Dann kann die folgende Vorgehensweise nicht angewendet werden.
|
||||
{{< /note >}}
|
||||
|
||||
{{< note >}}
|
||||
Wenn sie AWS EC2 verwenden und die EC2 Container Registry (ECR) nutzen, wird das Kubelet auf jedem Knoten die ECR Zugriffsdaten verwalten und aktualisieren. Dann kann die folgende Vorgehensweise nicht angewendet werden.
|
||||
{{< /note >}}
|
||||
|
||||
{{< note >}}
|
||||
Diese Vorgehensweise ist anwendbar, wenn sie ihre Knoten-Konfiguration ändern können; Sie wird nicht zuverlässig auf GCE oder einem anderen Cloud - Provider funktionieren, der automatisch Knoten ersetzt.
|
||||
{{< /note >}}
|
||||
|
||||
{{< note >}}
|
||||
Kubernetes unterstützt zurzeit nur die `auths` und `HttpHeaders` Abschnitte der Dockerkonfiguration. Das bedeutet, dass die Hilfswerkzeuge (`credHelpers` ooderr `credsStore`) nicht unterstützt werden.
|
||||
{{< /note >}}
|
||||
|
||||
Docker speichert Schlüssel für eigene Registries entweder unter `$HOME/.dockercfg` oder `$HOME/.docker/config.json`. Wenn sie die gleiche Datei in einen der unten aufgeführten Suchpfade speichern, wird Kubelet sie als Hilfswerkzeug für Zugriffsdaten beim Beziehen von Images nutzen.
|
||||
|
||||
|
||||
* `{--root-dir:-/var/lib/kubelet}/config.json`
|
||||
* `{cwd of kubelet}/config.json`
|
||||
* `${HOME}/.docker/config.json`
|
||||
* `/.docker/config.json`
|
||||
* `{--root-dir:-/var/lib/kubelet}/.dockercfg`
|
||||
* `{cwd of kubelet}/.dockercfg`
|
||||
* `${HOME}/.dockercfg`
|
||||
* `/.dockercfg`
|
||||
|
||||
{{< note >}}
|
||||
Eventuell müssen sie `HOME=/root` in ihrer Umgebungsvariablendatei setzen.
|
||||
{{< /note >}}
|
||||
|
||||
Dies sind die empfohlenen Schritte, um ihre Knoten für eine Nutzung einer eigenen Registry zu konfigurieren.
|
||||
In diesem Beispiel führen sie folgende Schritte auf ihrem Desktop/Laptop aus:
|
||||
|
||||
1. Führen sie `docker login [server]` für jeden Satz ihrer Zugriffsdaten aus. Dies aktualisiert `$HOME/.docker/config.json`.
|
||||
2. Prüfen Sie `$HOME/.docker/config.json` in einem Editor darauf, ob dort nur Zugriffsdaten enthalten sind, die Sie nutzen möchten.
|
||||
3. Erhalten sie eine Liste ihrer Knoten:
|
||||
- Wenn sie die Namen benötigen: `nodes=$(kubectl get nodes -o jsonpath='{range.items[*].metadata}{.name} {end}')`
|
||||
- Wenn sie die IP - Adressen benötigen: `nodes=$(kubectl get nodes -o jsonpath='{range .items[*].status.addresses[?(@.type=="ExternalIP")]}{.address} {end}')`
|
||||
4. Kopieren sie ihre lokale `.docker/config.json` in einen der oben genannten Suchpfade.
|
||||
- Zum Beispiel: `for n in $nodes; do scp ~/.docker/config.json root@$n:/var/lib/kubelet/config.json; done`
|
||||
|
||||
Prüfen durch das Erstellen eines Pods, der ein eigenes Image nutzt, z.B.:
|
||||
|
||||
```yaml
|
||||
kubectl apply -f - <<EOF
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: private-image-test-1
|
||||
spec:
|
||||
containers:
|
||||
- name: uses-private-image
|
||||
image: $PRIVATE_IMAGE_NAME
|
||||
imagePullPolicy: Always
|
||||
command: [ "echo", "SUCCESS" ]
|
||||
EOF
|
||||
pod/private-image-test-1 created
|
||||
```
|
||||
Wenn alles funktioniert, sollten sie nach einigen Momenten folgendes sehen:
|
||||
|
||||
```shell
|
||||
kubectl logs private-image-test-1
|
||||
SUCCESS
|
||||
```
|
||||
Wenn es nicht funktioniert, sehen Sie:
|
||||
|
||||
```shell
|
||||
kubectl describe pods/private-image-test-1 | grep "Failed"
|
||||
Fri, 26 Jun 2015 15:36:13 -0700 Fri, 26 Jun 2015 15:39:13 -0700 19 {kubelet node-i2hq} spec.containers{uses-private-image} failed Failed to pull image "user/privaterepo:v1": Error: image user/privaterepo:v1 not found
|
||||
```
|
||||
|
||||
Sie müssen sich darum kümmern, dass alle Knoten im Cluster die gleiche `.docker/config.json` haben, andernfalls werden Pods auf einigen Knoten starten, auf anderen jedoch nicht.
|
||||
Wenn sie zum Beispiel Knoten automatisch skalieren lassen, sollte dann jedes Instanztemplate die `.docker/config.json` beinhalten, oder ein Laufwerk einhängen, das diese beinhaltet.
|
||||
|
||||
Alle Pods haben Lesezugriff auf jedes Image in ihrer eigenen Registry, sobald die Registry - Schlüssel zur `.docker/config.json` hinzugefügt wurden.
|
||||
|
||||
### Im Voraus heruntergeladene Images
|
||||
|
||||
{{< note >}}
|
||||
Wenn sie Google Kubernetes Engine verwenden, gibt es schon eine `.dockercfg` auf jedem Knoten die Zugriffsdaten für ihre Google Container Registry beinhaltet. Dann kann die folgende Vorgehensweise nicht angewendet werden.
|
||||
{{< /note >}}
|
||||
|
||||
{{< note >}}
|
||||
Diese Vorgehensweise ist anwendbar, wenn sie ihre Knoten-Konfiguration ändern können; Sie wird nicht zuverlässig auf GCE oder einem anderen Cloud - Provider funktionieren, der automatisch Knoten ersetzt.
|
||||
{{< /note >}}
|
||||
|
||||
Standardmäßig wird das Kubelet versuchen, jedes Image von der spezifizierten Registry herunterzuladen.
|
||||
Falls jedoch die `imagePullPolicy` Eigenschaft der Containers auf `IfNotPresent` oder `Never` gesetzt wurde, wird ein lokales Image genutzt (präferiert oder exklusiv, jenachdem).
|
||||
|
||||
Wenn Sie sich auf im Voraus heruntergeladene Images als Ersatz für eine Registry - Authentifizierung verlassen möchten, müssen sie sicherstellen, dass alle Knoten die gleichen, im Voraus heruntergeladenen Images aufweisen.
|
||||
|
||||
Diese Medthode kann dazu genutzt werden, bestimmte Images aus Geschwindigkeitsgründen im Voraus zu laden, oder als Alternative zur Authentifizierung an einer eigenen Registry zu nutzen.
|
||||
|
||||
Alle Pods haben Leserechte auf alle im Voraus geladenen Images.
|
||||
|
||||
### Spezifizieren eines ImagePullSecrets für einen Pod
|
||||
|
||||
{{< note >}}
|
||||
Diese Vorgehensweise ist aktuell die empfohlene Vorgehensweise für Google Kubernetes Engine, GCE, und jeden Cloud - Provider bei dem die Knotenerstelltung automatisiert ist.
|
||||
{{< /note >}}
|
||||
|
||||
Kubernetes unterstützt die Spezifikation von Registrierungsschlüsseln für einen Pod.
|
||||
|
||||
#### Erstellung eines Secrets mit einer Docker Konfiguration
|
||||
|
||||
Führen sie folgenden Befehl mit Ersetzung der groß geschriebenen Werte aus:
|
||||
|
||||
```shell
|
||||
kubectl create secret docker-registry <name> --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
|
||||
```
|
||||
|
||||
Wenn Sie bereits eine Datei mit Docker-Zugriffsdaten haben, können Sie die Zugriffsdaten als ein Kubernetes Secret importieren:
|
||||
[Create a Secret based on existing Docker credentials](/docs/tasks/configure-pod-container/pull-image-private-registry/#registry-secret-existing-credentials) beschreibt die Erstellung.
|
||||
Dies ist insbesondere dann sinnvoll, wenn sie mehrere eigene Container Registries nutzen, da `kubectl create secret docker-registry` ein Secret erstellt, das nur mit einer einzelnen eigenen Registry funktioniert.
|
||||
|
||||
{{< note >}}
|
||||
Pods können nur eigene Image Pull Secret in ihrem eigenen Namespace referenzieren, somit muss dieser Prozess jedes mal einzeln für jeden Namespace angewendet werden.
|
||||
|
||||
{{< /note >}}
|
||||
|
||||
#### Referenzierung eines imagePullSecrets bei einem Pod
|
||||
|
||||
Nun können Sie Pods erstellen, die dieses Secret referenzieren, indem Sie einen Aschnitt `imagePullSecrets` zu ihrer Pod - Definition hinzufügen.
|
||||
|
||||
```shell
|
||||
cat <<EOF > pod.yaml
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: foo
|
||||
namespace: awesomeapps
|
||||
spec:
|
||||
containers:
|
||||
- name: foo
|
||||
image: janedoe/awesomeapp:v1
|
||||
imagePullSecrets:
|
||||
- name: myregistrykey
|
||||
EOF
|
||||
|
||||
cat <<EOF >> ./kustomization.yaml
|
||||
resources:
|
||||
- pod.yaml
|
||||
EOF
|
||||
```
|
||||
|
||||
Dies muss für jeden Pod getan werden, der eine eigene Registry nutzt.
|
||||
|
||||
Die Erstellung dieser Sektion kann jedoch automatisiert werden, indem man imagePullSecrets einer [serviceAccount](/docs/user-guide/service-accounts) Ressource hinzufügt.
|
||||
[Add ImagePullSecrets to a Service Account](/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account) bietet detaillierte Anweisungen hierzu.
|
||||
|
||||
Sie können dies in Verbindung mit einer auf jedem Knoten genutzten `.docker/config.json` benutzen, die Zugriffsdaten werden dann zusammengeführt. Dieser Vorgehensweise wird in der Google Kubernetes Engine funktionieren.
|
||||
|
||||
|
||||
### Anwendungsfälle
|
||||
|
||||
Es gibt eine Anzahl an Lösungen um eigene Registries zu konfigurieren, hier sind einige Anwendungsfälle und empfohlene Lösungen.
|
||||
|
||||
1. Cluster die nur nicht-proprietäre Images (z.B. open-source) ausführen. Images müssen nicht versteckt werden.
|
||||
- Nutzung von öffentlichen Images auf Docker Hub.
|
||||
- Keine Konfiguration notwendig.
|
||||
- Auf GCE/Google Kubernetes Engine, wird automatisch ein lokaler Spiegel für eine verbesserte Geschwindigkeit und Verfügbarkeit genutzt.
|
||||
2. Cluster die einige proprietäre Images ausführen die für Außenstehende nicht sichtbar sein dürfen, aber für alle Cluster - Benutzer sichtbar sein sollen.
|
||||
- Nutzung einer gehosteten privaten Registry [Docker registry](https://docs.docker.com/registry/).
|
||||
- Kann auf [Docker Hub](https://hub.docker.com/signup), oder woanders gehostet werden.
|
||||
- Manuelle Konfiguration der .docker/config.json auf jedem Knoten, wie oben beschrieben.
|
||||
- Der Betrieb einer internen privaten Registry hinter ihrer Firewall mit offenen Leseberechtigungen.
|
||||
- Keine Kubernetes - Konfiguration notwendig
|
||||
- Wenn GCE/Google Kubernetes Engine genutzt wird, nutzen sie die Google Container Registry des Projektes.
|
||||
- Funktioniert besser mit Cluster - Autoskalierung als mit manueller Knotenkonfiguration.
|
||||
- Auf einem Cluster bei dem die Knotenkonfiguration ungünstig ist können `imagePullSecrets` genutzt werden.
|
||||
3. Cluster mit proprieritären Images, mit einigen Images die eine erweiterte Zugriffskontrolle erfordern.
|
||||
- Stellen sie sicher das [AlwaysPullImages admission controller](/docs/reference/access-authn-authz/admission-controllers/#alwayspullimages) aktiv ist, anderenfalls können alle Pods potenziell Zugriff auf alle Images haben.
|
||||
- Verschieben sie sensitive Daten in eine "Secret" Ressource statt sie im Image abzulegen.
|
||||
4. Ein mandantenfähiger Cluster in dem jeder Mandant eine eigene private Registry benötigt.
|
||||
- Stellen sie dicher das [AlwaysPullImages admission controller](/docs/reference/access-authn-authz/admission-controllers/#alwayspullimages) aktiv ist, anderenfalls können alle Pods potenziell Zugriff auf alle Images haben.
|
||||
- Nutzen sie eine private Registry die eine Authorisierung erfordert.
|
||||
- Generieren die Registry - Zugriffsdaten für jeden Mandanten, abgelegt in einem Secret das in jedem Mandanten - Namespace vorhanden ist.
|
||||
- Der Mandant fügt dieses Sercret zu den imagePullSecrets in jedem seiner Namespace hinzu.
|
||||
|
||||
|
||||
|
||||
Falls die Zugriff auf mehrere Registries benötigen, können sie ein Secret für jede Registry erstellen, Kubelet wird jedwede `imagePullSecrets` in einer einzelnen `.docker/config.json` zusammenfassen.
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
---
|
||||
title: Konzept Dokumentations-Vorlage
|
||||
content_type: concept
|
||||
toc_hide: true
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
{{< note >}}
|
||||
Stellen Sie auch sicher [einen Eintrag im Inhaltsverzeichnis](/docs/home/contribute/write-new-topic/#creating-an-entry-in-the-table-of-contents) für Ihr neues Dokument zu erstellen.
|
||||
{{< /note >}}
|
||||
|
||||
Diese Seite erklärt ...
|
||||
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## Verstehen ...
|
||||
|
||||
Kubernetes bietet ...
|
||||
|
||||
## Verwenden ...
|
||||
|
||||
Benutzen Sie ...
|
||||
|
||||
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
|
||||
**[Optionaler Bereich]**
|
||||
|
||||
* Lernen Sie mehr über [ein neues Thema schreiben](/docs/home/contribute/write-new-topic/).
|
||||
* Besuchen Sie [Seitenvorlagen verwenden - Konzeptvorlage](/docs/home/contribute/page-templates/#concept_template) wie Sie diese Vorlage verwenden.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
---
|
||||
title: "Kubernets erweitern"
|
||||
weight: 110
|
||||
---
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: "Überblick"
|
||||
weight: 20
|
||||
---
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
---
|
||||
title: Kubernetes Komponenten
|
||||
content_type: concept
|
||||
weight: 20
|
||||
card:
|
||||
name: concepts
|
||||
weight: 20
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
In diesem Dokument werden die verschiedenen binären Komponenten beschrieben, die zur Bereitstellung eines funktionsfähigen Kubernetes-Clusters erforderlich sind.
|
||||
|
||||
|
||||
<!-- body -->
|
||||
## Master-Komponenten
|
||||
|
||||
Master-Komponenten stellen die Steuerungsebene des Clusters bereit. Master-Komponenten treffen globale Entscheidungen über den Cluster (z. B. Zeitplanung) und das Erkennen und Reagieren auf Clusterereignisse (Starten eines neuen Pods, wenn das `replicas`-Feld eines Replikationscontrollers nicht zufriedenstellend ist).
|
||||
|
||||
Master-Komponenten können auf jedem Computer im Cluster ausgeführt werden.
|
||||
Der Einfachheit halber starten Setup-Skripts normalerweise alle Master-Komponenten auf demselben Computer, und es werden keine Benutzercontainer auf diesem Computer ausgeführt.
|
||||
Lesen Sie [Cluster mit hoher Verfügbarkeit erstellen](/docs/admin/high-availability/) für ein Beispiel für ein Multi-Master-VM-Setup.
|
||||
|
||||
### kube-apiserver
|
||||
|
||||
{{< glossary_definition term_id="kube-apiserver" length="all" >}}
|
||||
|
||||
### etcd
|
||||
|
||||
{{< glossary_definition term_id="etcd" length="all" >}}
|
||||
|
||||
### kube-scheduler
|
||||
|
||||
{{< glossary_definition term_id="kube-scheduler" length="all" >}}
|
||||
|
||||
### kube-controller-manager
|
||||
|
||||
{{< glossary_definition term_id="kube-controller-manager" length="all" >}}
|
||||
|
||||
Diese Controller umfassen:
|
||||
|
||||
* Node Controller: Verantwortlich für das Erkennen und Reagieren, wenn Nodes ausfallen.
|
||||
* Replication Controller: Verantwortlich für die Aufrechterhaltung der korrekten Anzahl von Pods für jedes Replikationscontrollerobjekt im System.
|
||||
* Endpoints Controller: Füllt das Endpoints-Objekt aus (d.h. verbindet Services & Pods).
|
||||
* Service Account & Token Controllers: Erstellt Standardkonten und API-Zugriffstoken für neue Namespaces.
|
||||
|
||||
### cloud-controller-manager
|
||||
|
||||
[cloud-controller-manager](/docs/tasks/administer-cluster/running-cloud-controller/) führt Controller aus, die mit den entsprechenden Cloud-Anbietern interagieren.
|
||||
Der cloud-controller-manager ist eine Alpha-Funktion, die in Kubernetes Version 1.6 eingeführt wurde.
|
||||
|
||||
cloud-controller-manager führt nur Cloud-Provider-spezifische Controller-Schleifen aus. Sie müssen diese Controller-Schleifen im Cube-Controller-Manager deaktivieren. Sie können die Controller-Schleifen deaktivieren, indem Sie beim Starten des kube-controller-manager das Flag `--cloud-provider` auf `external` setzen.
|
||||
|
||||
cloud-controller-manager erlaubt es dem Cloud-Anbieter Code und dem Kubernetes-Code, sich unabhängig voneinander zu entwickeln.
|
||||
In früheren Versionen war der Kerncode von Kubernetes für die Funktionalität von Cloud-Provider-spezifischem Code abhängig.
|
||||
In zukünftigen Versionen sollte der für Cloud-Anbieter spezifische Code vom Cloud-Anbieter selbst verwaltet und mit dem Cloud-Controller-Manager verknüpft werden, während Kubernetes ausgeführt wird.
|
||||
|
||||
Die folgenden Controller haben Abhängigkeiten von Cloud-Anbietern:
|
||||
|
||||
* Node Controller: Zum Überprüfen, ob ein Node in der Cloud beim Cloud-Anbieter gelöscht wurde, nachdem er nicht mehr reagiert
|
||||
* Route Controller: Zum Einrichten von Routen in der zugrunde liegenden Cloud-Infrastruktur
|
||||
* Service Controller: Zum Erstellen, Aktualisieren und Löschen von Lastverteilern von Cloud-Anbietern
|
||||
* Volume Controller: Zum Erstellen, Verbinden und Bereitstellen von Volumes und zur Interaktion mit dem Cloud-Provider zum Orchestrieren von Volumes
|
||||
|
||||
## Node-Komponenten
|
||||
|
||||
Node Komponenten werden auf jedem Knoten ausgeführt, halten laufende Pods aufrecht und stellen die Kubernetes-Laufzeitumgebung bereit.
|
||||
|
||||
### kubelet
|
||||
|
||||
{{< glossary_definition term_id="kubelet" length="all" >}}
|
||||
|
||||
### kube-proxy
|
||||
|
||||
[kube-proxy](/docs/admin/kube-proxy/) ermöglicht die Kubernetes Service-Abstraktion, indem die Netzwerkregeln auf dem Host beibehalten und die Verbindungsweiterleitung durchgeführt wird.
|
||||
|
||||
### Container Runtime
|
||||
|
||||
Die Containerlaufzeit ist die Software, die für das Ausführen von Containern verantwortlich ist.
|
||||
Kubernetes unterstützt mehrere Laufzeiten: [Docker](http://www.docker.com), [containerd](https://containerd.io), [cri-o](https://cri-o.io/), [rktlet](https://github.com/kubernetes-incubator/rktlet) und jede Implementierung des [Kubernetes CRI (Container Runtime Interface)](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md).
|
||||
|
||||
## Addons
|
||||
|
||||
Addons sind Pods und Dienste, die Clusterfunktionen implementieren. Die Pods können verwaltet werden
|
||||
durch Deployments, ReplicationControllers, und so wieter.
|
||||
Namespace-Addon-Objekte werden im Namespace `kube-system` erstellt.
|
||||
|
||||
Ausgewählte Addons werden unten beschrieben. Eine erweiterte Liste verfügbarer Addons finden Sie unter [Addons](/docs/concepts/cluster-administration/addons/).
|
||||
|
||||
### DNS
|
||||
|
||||
Während die anderen Addons nicht unbedingt erforderlich sind, sollte [cluster DNS](/docs/concepts/services-networking/dns-pod-service/) in allen Kubernetes-Cluster vorhanden sein, da viele Beispiele davon abhängen.
|
||||
|
||||
Cluster-DNS ist neben anderen DNS-Servern in Ihrer Umgebung ein DNS-Server, der DNS-Einträge für Kubernetes-Dienste bereitstellt.
|
||||
|
||||
Von Kubernetes gestartete Container schließen diesen DNS-Server automatisch in ihre DNS-Suchen ein.
|
||||
|
||||
### Web UI (Dashboard)
|
||||
|
||||
[Dashboard](/docs/tasks/access-application-cluster/web-ui-dashboard/) ist eine allgemeine, webbasierte Benutzeroberfläche für Kubernetes-Cluster. Benutzer können damit Anwendungen, die im Cluster ausgeführt werden, sowie den Cluster selbst verwalten und Fehler beheben.
|
||||
|
||||
### Container Resource Monitoring
|
||||
|
||||
[Container Resource Monitoring](/docs/tasks/debug-application-cluster/resource-usage-monitoring/) zeichnet generische Zeitreihenmessdaten zu Containern in einer zentralen Datenbank auf und stellt eine Benutzeroberfläche zum Durchsuchen dieser Daten bereit.
|
||||
|
||||
|
||||
### Cluster-level Logging
|
||||
|
||||
Ein [Cluster-level logging](/docs/concepts/cluster-administration/logging/) Mechanismus ist für das Speichern von Containerprotokollen in einem zentralen Protokollspeicher mit Such- / Browsing-Schnittstelle verantwortlich.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,171 +0,0 @@
|
||||
---
|
||||
title: Was ist Kubernetes?
|
||||
content_type: concept
|
||||
weight: 10
|
||||
card:
|
||||
name: concepts
|
||||
weight: 10
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
Diese Seite ist eine Übersicht über Kubernetes.
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
Kubernetes ist eine portable, erweiterbare Open-Source-Plattform zur Verwaltung von
|
||||
containerisierten Arbeitslasten und Services, die sowohl die deklarative Konfiguration als auch die Automatisierung erleichtert.
|
||||
Es hat einen großes, schnell wachsendes Ökosystem. Kubernetes Dienstleistungen, Support und Tools sind weit verbreitet.
|
||||
|
||||
Google hat das Kubernetes-Projekt 2014 als Open-Source-Projekt zur Verfügung gestellt. Kubernetes baut auf anderthalb Jahrzehnten
|
||||
Erfahrung auf, die Google mit der Ausführung von Produktions-Workloads in großem Maßstab hat, kombiniert mit den besten Ideen und Praktiken der Community.
|
||||
|
||||
## Warum brauche ich Kubernetes und was kann ich damit tun?
|
||||
|
||||
Kubernetes hat eine Reihe von Funktionen. Es kann gesehen werden als:
|
||||
|
||||
- eine Containerplattform
|
||||
- eine Microservices-Plattform
|
||||
- eine portable Cloud-Plattform
|
||||
und vieles mehr.
|
||||
|
||||
Kubernetes bietet eine **containerzentrierte** Managementumgebung. Es koordiniert die Computer-, Netzwerk- und Speicherinfrastruktur
|
||||
im Namen der Benutzer-Workloads. Dies bietet einen Großteil der Einfachheit von Platform as a Service (PaaS) mit der Flexibilität
|
||||
von Infrastructure as a Service (IaaS) und ermöglicht die Portabilität zwischen Infrastrukturanbietern.
|
||||
|
||||
## Wie ist Kubernetes eine Plattform?
|
||||
|
||||
Auch wenn Kubernetes eine Menge Funktionalität bietet, gibt es immer wieder neue Szenarien,
|
||||
die von neuen Funktionen profitieren würden. Anwendungsspezifische Workflows können optimiert werden,
|
||||
um die Entwicklungsgeschwindigkeit zu beschleunigen.
|
||||
Eine zunächst akzeptable Ad-hoc-Orchestrierung erfordert oft eine robuste Automatisierung in großem Maßstab.
|
||||
Aus diesem Grund wurde Kubernetes auch als Plattform für den Aufbau eines Ökosystems von Komponenten und Tools
|
||||
konzipiert, um die Bereitstellung, Skalierung und Verwaltung von Anwendungen zu erleichtern.
|
||||
|
||||
[Labels](/docs/concepts/overview/working-with-objects/labels/) ermöglichen es den Benutzern, ihre Ressourcen
|
||||
nach Belieben zu organisieren. [Anmerkungen](/docs/concepts/overview/working-with-objects/annotations/) ermöglichen es Benutzern,
|
||||
Ressourcen mit benutzerdefinierten Informationen zu versehen, um ihre Arbeitsabläufe zu vereinfachen und eine einfache Möglichkeit
|
||||
für Managementtools zu bieten, den Status von Kontrollpunkten zu ermitteln.
|
||||
|
||||
|
||||
Darüber hinaus basiert die [Kubernetes-Steuerungsebene](/docs/concepts/overview/components/) auf den gleichen APIs,
|
||||
die Entwicklern und Anwendern zur Verfügung stehen. Benutzer können ihre eigenen Controller, wie z.B.
|
||||
[Scheduler](https://github.com/kubernetes/community/blob/{{< param "githubbranch" >}}/contributors/devel/scheduler.md), mit
|
||||
ihren [eigenen APIs](/docs/concepts/api-extension/custom-resources/) schreiben, die von einem
|
||||
universellen [Kommandozeilen-Tool](/docs/user-guide/kubectl-overview/) angesprochen werden können.
|
||||
|
||||
Dieses [Design](https://git.k8s.io/community/contributors/design-proposals/architecture/architecture.md) hat es einer Reihe anderer Systeme ermöglicht, auf Kubernetes aufzubauen.
|
||||
|
||||
## Was Kubernetes nicht ist
|
||||
|
||||
Kubernetes ist kein traditionelles, allumfassendes PaaS (Plattform als ein Service) System. Da Kubernetes nicht auf Hardware-,
|
||||
sondern auf Containerebene arbeitet, bietet es einige allgemein anwendbare Funktionen, die PaaS-Angeboten gemeinsam sind,
|
||||
wie Bereitstellung, Skalierung, Lastausgleich, Protokollierung und Überwachung.
|
||||
Kubernetes ist jedoch nicht monolithisch, und diese Standardlösungen sind optional und modular etweiterbar.
|
||||
Kubernetes liefert die Bausteine für den Aufbau von Entwicklerplattformen, bewahrt aber die
|
||||
Wahlmöglichkeiten und Flexibilität der Benutzer, wo es wichtig ist.
|
||||
|
||||
Kubernetes:
|
||||
|
||||
* Schränkt nicht die Art der unterstützten Anwendungen ein. Kubernetes zielt darauf ab,
|
||||
eine extrem große Vielfalt von Workloads zu unterstützen, einschließlich stateless,
|
||||
stateful und datenverarbeitender Workloads. Wenn eine Anwendung in einem Container ausgeführt
|
||||
werden kann, sollte sie auf Kubernetes hervorragend laufen.
|
||||
* Verteilt keinen Quellcode und entwickelt Ihre Anwendung nicht.
|
||||
Kontinuierliche Integrations-, Liefer- und Bereitstellungs-Workflows (CI/CD) werden durch
|
||||
Unternehmenskulturen und -präferenzen sowie technische Anforderungen bestimmt.
|
||||
* Bietet keine Dienste auf Anwendungsebene, wie Middleware (z.B. Nachrichtenbusse),
|
||||
Datenverarbeitungs-Frameworks (z.B. Spark), Datenbanken (z.B. mysql), Caches oder
|
||||
Cluster-Speichersysteme (z.B. Ceph) als eingebaute Dienste. Solche Komponenten können
|
||||
auf Kubernetes laufen und/oder von Anwendungen, die auf Kubernetes laufen, über
|
||||
portable Mechanismen wie den Open Service Broker angesprochen werden.
|
||||
* Bietet keine Konfigurationssprache bzw. kein Konfigurationssystem (z.B.[jsonnet](https://github.com/google/jsonnet)).
|
||||
Es bietet eine deklarative API, die von beliebigen Formen deklarativer Spezifikationen angesprochen werden kann.
|
||||
* Bietet keine umfassenden Systeme zur Maschinenkonfiguration, Wartung, Verwaltung oder Selbstheilung.
|
||||
|
||||
Außerdem ist Kubernetes nicht nur ein *Orchestrierungssystem*. Fakt ist, dass es die Notwendigkeit einer Orchestrierung
|
||||
überflüssig macht. Die technische Definition von *Orchestrierung* ist die Ausführung eines
|
||||
definierten Workflows: zuerst A, dann B, dann C. Im Gegensatz dazu besteht Kubernetes aus einer Reihe von unabhängigen,
|
||||
komponierbaren Steuerungsprozessen, die den aktuellen Zustand kontinuierlich in Richtung des bereitgestellten Soll-Zustandes vorantreiben.
|
||||
Es sollte keine Rolle spielen, wie Sie von A nach C kommen. Eine zentrale Steuerung ist ebenfalls nicht erforderlich.
|
||||
Das Ergebnis ist ein System, das einfacher zu bedienen und leistungsfähiger, robuster, widerstandsfähiger und erweiterbar ist.
|
||||
|
||||
## Warum Container?
|
||||
|
||||
Sie suchen nach Gründen, warum Sie Container verwenden sollten?
|
||||
|
||||

|
||||
|
||||
Der *Altbekannte* Weg zur Bereitstellung von Anwendungen war die Installation
|
||||
der Anwendungen auf einem Host mit dem Betriebssystempaketmanager.
|
||||
Dies hatte den Nachteil, dass die ausführbaren Dateien, Konfigurationen,
|
||||
Bibliotheken und Lebenszyklen der Anwendungen untereinander und mit dem
|
||||
Host-Betriebssystem verwoben waren. Man könnte unveränderliche
|
||||
Virtual-Machine-Images erzeugen, um vorhersehbare Rollouts
|
||||
und Rollbacks zu erreichen, aber VMs sind schwergewichtig und nicht portierbar.
|
||||
|
||||
Der *Neue Weg* besteht darin, Container auf Betriebssystemebene und nicht auf
|
||||
Hardware-Virtualisierung bereitzustellen. Diese Container sind voneinander
|
||||
und vom Host isoliert: Sie haben ihre eigenen Dateisysteme, sie können die
|
||||
Prozesse des anderen nicht sehen, und ihr Ressourcenverbrauch kann begrenzt
|
||||
werden. Sie sind einfacher zu erstellen als VMs, und da sie von der zugrunde
|
||||
liegenden Infrastruktur und dem Host-Dateisystem entkoppelt sind,
|
||||
sind sie über Clouds und Betriebssystem-Distributionen hinweg portabel.
|
||||
|
||||
Da Container klein und schnell sind, kann in jedes Containerimage eine Anwendung gepackt werden.
|
||||
Diese 1:1-Beziehung zwischen Anwendung und Image ermöglicht es, die Vorteile von Containern
|
||||
voll auszuschöpfen. Mit Containern können unveränderliche Container-Images eher zur Build-/Release-Zeit
|
||||
als zur Deployment-Zeit erstellt werden, da jede Anwendung nicht mit dem Rest des Anwendungsstacks komponiert
|
||||
werden muss und auch nicht mit der Produktionsinfrastrukturumgebung verbunden ist. Die Generierung von
|
||||
Container-Images zum Zeitpunkt der Erstellung bzw. Freigabe ermöglicht es, eine konsistente Umgebung
|
||||
von der Entwicklung bis zur Produktion zu gewährleisten.
|
||||
Ebenso sind Container wesentlich transparenter als VMs, was die Überwachung und Verwaltung erleichtert.
|
||||
Dies gilt insbesondere dann, wenn die Prozesslebenszyklen der Container von der Infrastruktur verwaltet
|
||||
werden und nicht von einem Prozess-Supervisor im Container versteckt werden.
|
||||
Schließlich, mit einer einzigen Anwendung pro Container, wird die Verwaltung
|
||||
der Container gleichbedeutend mit dem Management des Deployments der Anwendung.
|
||||
|
||||
Zusammenfassung der Container-Vorteile:
|
||||
|
||||
* **Agile Anwendungserstellung und -bereitstellung**:
|
||||
Einfachere und effizientere Erstellung von Container-Images im Vergleich zur Verwendung von VM-Images.
|
||||
* **Kontinuierliche Entwicklung, Integration und Bereitstellung**:
|
||||
Bietet eine zuverlässige und häufige Erstellung und Bereitstellung von Container-Images
|
||||
mit schnellen und einfachen Rollbacks (aufgrund der Unveränderlichkeit des Images).
|
||||
* **Dev und Ops Trennung der Bedenken**:
|
||||
Erstellen Sie Anwendungscontainer-Images nicht zum Deployment-, sondern zum Build-Releasezeitpunkt
|
||||
und entkoppeln Sie so Anwendungen von der Infrastruktur.
|
||||
* **Überwachbarkeit**
|
||||
Nicht nur Informationen und Metriken auf Betriebssystemebene werden angezeigt,
|
||||
sondern auch der Zustand der Anwendung und andere Signale.
|
||||
* **Umgebungskontinuität in Entwicklung, Test und Produktion**:
|
||||
Läuft auf einem Laptop genauso wie in der Cloud.
|
||||
* **Cloud- und OS-Distribution portabilität**:
|
||||
Läuft auf Ubuntu, RHEL, CoreOS, On-Prem, Google Kubernetes Engine und überall sonst.
|
||||
* **Anwendungsorientiertes Management**:
|
||||
Erhöht den Abstraktionsgrad vom Ausführen eines Betriebssystems auf virtueller Hardware
|
||||
bis zum Ausführen einer Anwendung auf einem Betriebssystem unter Verwendung logischer Ressourcen.
|
||||
* **Locker gekoppelte, verteilte, elastische, freie [micro-services](https://martinfowler.com/articles/microservices.html)**:
|
||||
Anwendungen werden in kleinere, unabhängige Teile zerlegt und können dynamisch bereitgestellt
|
||||
und verwaltet werden -- nicht ein monolithischer Stack, der auf einer großen Single-Purpose-Maschine läuft.
|
||||
* **Ressourcenisolierung**:
|
||||
Vorhersehbare Anwendungsleistung.
|
||||
* **Ressourcennutzung**:
|
||||
Hohe Effizienz und Dichte.
|
||||
|
||||
## Was bedeutet Kubernetes? K8s?
|
||||
|
||||
Der Name **Kubernetes** stammt aus dem Griechischen, bedeutet *Steuermann* oder
|
||||
*Pilot*, und ist der Ursprung von *Gouverneur* und
|
||||
[cybernetic](http://www.etymonline.com/index.php?term=cybernetics). *K8s*
|
||||
ist eine Abkürzung, die durch Ersetzen der 8 Buchstaben "ubernete" mit "8" abgeleitet wird.
|
||||
|
||||
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
* [Bereit loszulegen](/docs/setup/)?
|
||||
* Weitere Einzelheiten finden Sie in der [Kubernetes Dokumentation](/docs/home/).
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: "Richtlinien"
|
||||
weight: 90
|
||||
---
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: "Dienste, Lastverteilung und Netzwerkfunktionen"
|
||||
weight: 60
|
||||
---
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: "Speicher"
|
||||
weight: 70
|
||||
---
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: "Workloads"
|
||||
weight: 50
|
||||
---
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
---
|
||||
content_type: concept
|
||||
title: Zur Kubernets-Dokumentation beitragen
|
||||
linktitle: Mitmachen
|
||||
main_menu: true
|
||||
weight: 80
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
Wenn Sie an der Dokumentation oder der Website von Kubernetes mitwirken möchten, freuen wir uns über Ihre Hilfe!
|
||||
Jeder kann seinen Beitrag leisten, unabhängig davon ob Sie neu im Projekt sind oder schon lange dabei sind, und ob Sie sich als
|
||||
Entwickler, Endbenutzer oder einfach jemanden, der es einfach nicht aushält, Tippfehler zu sehen sehen.
|
||||
|
||||
Weitere Möglichkeiten, sich in der Kubernetes-Community zu engagieren oder mehr über uns zu erfahren, finden Sie auf der [Kubernetes-Community-Seite](/community/).
|
||||
Informationen zum Handbuch zur Dokumentation von Kubernetes finden Sie im [Gestaltungshandbuch](/docs/contribute/style/style-guide/).
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## Arten von Mitwirkenden
|
||||
|
||||
- Ein _Member_ der Kubernetes Organisation, hat die [CLA unterzeichnet](/docs/contribute/start#sign-the-cla)
|
||||
und etwas Zeit und Energie zum Projekt beigetragen.
|
||||
Siehe [Community-Mitgliedschaft](https://github.com/kubernetes/community/blob/master/community-membership.md) für spezifische Kriterien bezüglich der Mitgliedschaft.
|
||||
- Ein SIG Docs _Reviewer_ ist ein Mitglied der Kubernetes-Organisation, das Interesse an der Überprüfung von
|
||||
Dokumentationsanfragen geäußert hat und von einem SIG Docs Approver zu der entsprechenden Github-Gruppe
|
||||
und den `OWNERS`-Dateien im Github-Repository hinzugefügt wurde.
|
||||
- Ein SIG Docs _approver_ ist ein Mitglied mit gutem Ansehen, das sich kontinuierlich für das Projekt engagiert hat.
|
||||
Ein Approver kann Pull-Anfragen zusammenführen und Inhalte im Namen der Kubernetes-Organisation veröffentlichen.
|
||||
Approver können SIG Docs auch in der größeren Kubernetes-Community vertreten. Einige der Aufgaben eines SIG Docs Approvers, wie z.B. die Koordination einer Freigabe, erfordern einen erheblichen Zeitaufwand.
|
||||
|
||||
## Möglichkeiten, einen Beitrag zu leisten
|
||||
|
||||
Diese Liste ist in Funktionen unterteilt, die jeder tun kann, die von Mitgliedern der Kubernetes-Organisation durchgeführt werden können, und Dinge, die ein höheres Maß an Zugriff und eine bessere Kenntnis der SIG Docs-Prozesse erfordern. Wenn Sie im Laufe der Zeit einen konstanten Beitrag leisten, können Sie einige der bereits getroffenen Tools und organisatorischen Entscheidungen nachvollziehen.
|
||||
|
||||
Dies ist keine vollständige Liste von Möglichkeiten, wie Sie zur Kubernetes-Dokumentation beitragen können, aber sie sollte Ihnen den Einstieg erleichtern.
|
||||
|
||||
- [Jeder](/docs/contribute/start/)
|
||||
- Umsetzbare issues eröffnen
|
||||
- [Member](/docs/contribute/start/)
|
||||
- Vorhandene Dokumente verbessern
|
||||
- Ideen zur Verbesserung in [Slack](http://slack.k8s.io/) oder der [SIG docs Mailingliste](https://groups.google.com/forum/#!forum/kubernetes-sig-docs) einbringen
|
||||
- Den Zugriff auf Dokumente verbessern
|
||||
- Unverbindliches Feedback zu PRs verfassen
|
||||
- Enen Blogbeitrag oder eine Fallstudie schreiben
|
||||
- [Reviewer](/docs/contribute/intermediate/)
|
||||
- Neue Funktionen dokumentieren
|
||||
- Auswerten und Kategorisieren von Problemen
|
||||
- PRs überprüfen
|
||||
- Diagramme, Grafiken und einbettbare Screencasts / Videos erstellen
|
||||
- Lokalisierung
|
||||
- Als Vertreter von docs zu anderen Repos beitragen
|
||||
- An Benutzer gerichtete Zeichenfolgen im Code bearbeiten
|
||||
- Code-Kommentare verbessern, Godoc
|
||||
- [Approver](/docs/contribute/advanced/)
|
||||
- Veröffentlichen Sie den Inhalt von Members, indem Sie PRs genehmigen und zusammenführen
|
||||
- Nehmen Sie als Docs-Vertreter an einem Kubernetes-Release-Team teil
|
||||
- Verbesserungsvorschläge für den Style Guide
|
||||
- Verbesserungsvorschläge für Dokumentprüfungen vorschlagen
|
||||
- Vorschläge für Verbesserungen der Kubernetes-Website oder anderer Tools
|
||||
|
||||
|
||||
@@ -1,305 +0,0 @@
|
||||
---
|
||||
title: Lokalisierung der Kubernetes Dokumentation
|
||||
content_type: concept
|
||||
weight: 50
|
||||
card:
|
||||
name: mitarbeiten
|
||||
weight: 50
|
||||
title: Übersetzen der Dokumentation
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
Diese Seite zeigt dir wie die Dokumentation für verschiedene Sprachen [lokalisiert](https://blog.mozilla.org/l10n/2011/12/14/i18n-vs-l10n-whats-the-diff/) wird.
|
||||
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## Erste Schritte
|
||||
|
||||
Da Mitwirkende nicht ihren eigenen Pull Request freigeben können, brauchst du mindestens zwei Mitwirkende um mit der Lokalisierung anfangen zu können.
|
||||
|
||||
Alle Lokalisierungsteams müssen sich mit ihren eigenen Ressourcen selbst tragen. Die Kubernetes-Website ist gerne bereit, deine Arbeit zu beherbergen, aber es liegt an dir, sie zu übersetzen.
|
||||
|
||||
### Finden deinen Zwei-Buchstaben-Sprachcode
|
||||
|
||||
Rufe den [ISO 639-1 Standard](https://www.loc.gov/standards/iso639-2/php/code_list.php) auf und finde deinen Zwei-Buchstaben-Ländercode zur Lokalisierung. Zum Beispiel ist der Zwei-Buchstaben-Code für Korea `ko`.
|
||||
|
||||
### Duplizieren und klonen des Repositories
|
||||
|
||||
Als erstes [erstells du dir deine eigenes Duplikat](/docs/contribute/new-content/new-content/#fork-the-repo) vom [kubernetes/website] Repository.
|
||||
|
||||
Dann klonst du das Duplikat und `cd` hinein:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/<username>/website
|
||||
cd website
|
||||
```
|
||||
|
||||
### Eröffne ein Pull Request
|
||||
|
||||
Als nächstes [eröffnest du einen Pull Request](/docs/contribute/new-content/open-a-pr/#open-a-pr) (PR) um eine Lokalisierung zum `kubernetes/website` Repository hinzuzufügen.
|
||||
|
||||
Der PR muss die [minimalen Inhaltsanforderungen](#mindestanforderungen) erfüllen bevor dieser genehmigt werden kann.
|
||||
|
||||
Wie der PR für eine neue Lokalisierung aussieht kannst du dir an dem PR für die [Französische Dokumentation](https://github.com/kubernetes/website/pull/12548) ansehen.
|
||||
|
||||
### Trete der Kubernetes GitHub Organisation bei
|
||||
|
||||
Sobald du eine Lokalisierungs-PR eröffnet hast, kannst du Mitglied der Kubernetes GitHub Organisation werden. Jede Person im Team muss einen eigenen [Antrag auf Mitgliedschaft in der Organisation](https://github.com/kubernetes/org/issues/new/choose) im `kubernetes/org`-Repository erstellen.
|
||||
|
||||
### Lokalisierungs-Team in GitHub hinzufügen
|
||||
|
||||
Im nächsten Schritt musst du dein Kubernetes Lokalisierungs-Team in die [`sig-docs/teams.yaml`](https://github.com/kubernetes/org/blob/master/config/kubernetes/sig-docs/teams.yaml) eintragen.
|
||||
|
||||
Der PR des [Spanischen Lokalisierungs-Teams](https://github.com/kubernetes/org/pull/685) kann dir hierbei eine Hilfestellung sein.
|
||||
|
||||
Mitglieder der `@kubernetes/sig-docs-**-owners` können nur PRs freigeben die innerhalb deines Lokalisierungs-Ordners Änderungen vorgenommen haben: `/content/**/`.
|
||||
|
||||
Für jede Lokalisierung automatisiert das Team `@kubernetes/sig-docs-**-reviews` die Review-Zuweisung für neue PRs.
|
||||
|
||||
Mitglieder von `@kubernetes/website-maintainers` können neue Entwicklungszweige schaffen, um die Übersetzungsarbeiten zu koordinieren.
|
||||
|
||||
Mitglieder von `@kubernetes/website-milestone-maintainers` können den Befehl `/milestone` [Prow Kommando](https://prow.k8s.io/command-help) verwenden, um Themen oder PRs einen Meilenstein zuzuweisen.
|
||||
|
||||
### Workflow konfigurieren
|
||||
|
||||
Als nächstes fügst du ein GitHub-Label für deine Lokalisierung im `kubernetes/test-infra`-Repository hinzu. Mit einem Label kannst du Aufgaben filtern und Anfragen für deine spezifische Sprache abrufen.
|
||||
|
||||
Schau dir den PR zum Hinzufügen der Labels für die [Italienischen Sprachen-Labels](https://github.com/kubernetes/test-infra/pull/11316 an.
|
||||
|
||||
|
||||
### Finde eine Gemeinschaft
|
||||
|
||||
Lasse die Kubernetes SIG Docs wissen, dass du an der Erstellung einer Lokalisierung interessiert bist! Trete dem [SIG Docs Slack-Kanal](https://kubernetes.slack.com/messages/C1J0BPD2M/) bei. Andere Lokalisierungsteams helfen dir gerne beim Einstieg und beantworten deine Fragen.
|
||||
|
||||
Du kannst auch einen Slack-Kanal für deine Lokalisierung im `kubernetes/community`-Repository erstellen. Ein Beispiel für das Hinzufügen eines Slack-Kanals findest du im PR für [Kanäle für Indonesisch und Portugiesisch hinzufügen](https://github.com/kubernetes/community/pull/3605).
|
||||
|
||||
|
||||
## Mindestanforderungen
|
||||
|
||||
### Ändere die Website-Konfiguration
|
||||
|
||||
Die Kubernetes-Website verwendet Hugo als Web-Framework. Die Hugo-Konfiguration der Website befindet sich in der Datei [`config.toml`](https://github.com/kubernetes/website/tree/master/config.toml). Um eine neue Lokalisierung zu unterstützen, musst du die Datei `config.toml` modifizieren.
|
||||
|
||||
Dazu fügst du einen neuen Block für die neue Sprache unter den bereits existierenden `[languages]` Block in das `config.toml` ein, wie folgendes Beispiel zeigt:
|
||||
|
||||
```toml
|
||||
[languages.de]
|
||||
title = "Kubernetes"
|
||||
description = "Produktionsreife Container-Verwaltung"
|
||||
languageName = "Deutsch"
|
||||
contentDir = "content/de"
|
||||
weight = 3
|
||||
```
|
||||
|
||||
Wenn du deinem Block einen Parameter `weight` zuweist, suche den Sprachblock mit dem höchsten Gewicht und addiere 1 zu diesem Wert.
|
||||
|
||||
Weitere Informationen zu Hugos Multilingualen Support findest du unter "[Multilingual Mode](https://gohugo.io/content-management/multilingual/)" auf in der Hugo Dokumentation.
|
||||
|
||||
### Neuen Lokalisierungsordner erstellen
|
||||
|
||||
Füge eine sprachspezifisches Unterverzeichnis zum Ordner [`content`](https://github.com/kubernetes/website/tree/master/content) im Repository hinzu. Der Zwei-Buchstaben-Code für Deutsch ist zum Beispiel `de`:
|
||||
|
||||
```shell
|
||||
mkdir content/de
|
||||
```
|
||||
|
||||
### Lokalisiere den Verhaltenscodex
|
||||
Öffne einen PR gegen das [`cncf/foundation`](https://github.com/cncf/foundation/tree/master/code-of-conduct-languages) Repository, um den Verhaltenskodex in deiner Sprache hinzuzufügen.
|
||||
|
||||
### Lokalisierungs README Datei hinzufügen
|
||||
|
||||
Um andere Lokalisierungsmitwirkende anzuleiten, füge eine neue [`README-**.md`](https://help.github.com/articles/about-readmes/) auf der obersten Ebene von k/website hinzu, wobei `**` der aus zwei Buchstaben bestehende Sprachcode ist. Eine deutsche README-Datei wäre zum Beispiel `README-de.md`.
|
||||
|
||||
Gebe den Lokalisierungsmitwirkende in der lokalisierten `README-**.md`-Datei Anleitung zum Mitwirken. Füge dieselben Informationen ein, die auch in `README.md` enthalten sind, sowie:
|
||||
|
||||
- Eine Anlaufstelle für das Lokalisierungsprojekt
|
||||
- Alle für die Lokalisierung spezifischen Informationen
|
||||
|
||||
Nachdem du das lokalisierte README erstellt hast, füge der Datei einen Link aus der englischen Hauptdatei `README.md` hinzu und gebe die Kontaktinformationen auf Englisch an. Du kannst eine GitHub-ID, eine E-Mail-Adresse, [Slack-Kanal](https://slack.com/) oder eine andere Kontaktmethode angeben. Du musst auch einen Link zu deinem lokalisierten Verhaltenskodex der Gemeinschaft angeben.
|
||||
|
||||
### Richte eine OWNERS Datei ein
|
||||
|
||||
Um die Rollen der einzelnen an der Lokalisierung beteiligten Benutzer festzulegen, erstelle eine `OWNERS`-Datei innerhalb des sprachspezifischen Unterverzeichnisses mit:
|
||||
|
||||
- **reviewers**: Eine Liste von kubernetes-Teams mit Gutachter-Rollen, in diesem Fall das `sig-docs-**-reviews` Team, das in [Lokalisierungsteam in GitHub hinzufügen](#lokalisierungs-team-in-github-hinzufügen) erstellt wurde.
|
||||
- **approvers**: Eine Liste der Kubernetes-Teams mit der Rolle des Genehmigers, in diesem Fall das `sig-docs-**-owners` Team, das in [Lokalisierungsteam in GitHub hinzufügen](#lokalisierungs-team-in-github-hinzufügen) erstellt wurde.
|
||||
- **labels**: Eine Liste von GitHub-Labels, die automatisch auf einen PR angewendet werden sollen, in diesem Fall das Sprachlabel, das unter [Workflow konfigurieren](#workflow-konfigurieren) erstellt wurde.
|
||||
|
||||
Weitere Informationen über die Datei `OWNERS` findest du unter [go.k8s.io/owners](https://go.k8s.io/owners).
|
||||
|
||||
Die Datei [Spanish OWNERS file](https://git.k8s.io/website/content/es/OWNERS), mit dem Sprachcode `es`, sieht wie folgt aus:
|
||||
|
||||
```yaml
|
||||
# See the OWNERS docs at https://go.k8s.io/owners
|
||||
|
||||
# This is the localization project for Spanish.
|
||||
# Teams and members are visible at https://github.com/orgs/kubernetes/teams.
|
||||
|
||||
reviewers:
|
||||
- sig-docs-es-reviews
|
||||
|
||||
approvers:
|
||||
- sig-docs-es-owners
|
||||
|
||||
labels:
|
||||
- language/es
|
||||
```
|
||||
Nachdem du die sprachspezifische Datei `OWNERS` hinzugefügt hast, aktualisiere die root Datei [`OWNERS_ALIASES`](https://git.k8s.io/website/OWNERS_ALIASES) mit den neuen Kubernetes-Teams für die Lokalisierung, `sig-docs-**-owners` und `sig-docs-**-reviews`.
|
||||
|
||||
Füge für jedes Team die Liste der unter [Ihr Lokalisierungsteam in GitHub hinzufügen](#lokalisierungs-team-in-github-hinzufügen) angeforderten GitHub-Benutzer in alphabetischer Reihenfolge hinzu.
|
||||
|
||||
```diff
|
||||
--- a/OWNERS_ALIASES
|
||||
+++ b/OWNERS_ALIASES
|
||||
@@ -48,6 +48,14 @@ aliases:
|
||||
- stewart-yu
|
||||
- xiangpengzhao
|
||||
- zhangxiaoyu-zidif
|
||||
+ sig-docs-es-owners: # Admins for Spanish content
|
||||
+ - alexbrand
|
||||
+ - raelga
|
||||
+ sig-docs-es-reviews: # PR reviews for Spanish content
|
||||
+ - alexbrand
|
||||
+ - electrocucaracha
|
||||
+ - glo-pena
|
||||
+ - raelga
|
||||
sig-docs-fr-owners: # Admins for French content
|
||||
- perriea
|
||||
- remyleone
|
||||
```
|
||||
|
||||
## Inhalte übersetzen
|
||||
|
||||
Die Lokalisierung *aller* Dokumentationen des Kubernetes ist eine enorme Aufgabe. Es ist in Ordnung, klein anzufangen und mit der Zeit zu erweitern.
|
||||
|
||||
Alle Lokalisierungen müssen folgende Inhalte enthalten:
|
||||
|
||||
Beschreibung | URLs
|
||||
-----|-----
|
||||
Startseite | [Alle Überschriften und Untertitel URLs](/docs/home/)
|
||||
Einrichtung | [Alle Überschriften und Untertitel URLs](/docs/setup/)
|
||||
Tutorials | [Kubernetes Grundlagen](/docs/tutorials/kubernetes-basics/), [Hello Minikube](/docs/tutorials/stateless-application/hello-minikube/)
|
||||
Site strings | [Alle Website-Zeichenfolgen in einer neuen lokalisierten TOML-Datei](https://github.com/kubernetes/website/tree/master/i18n)
|
||||
|
||||
Übersetzte Dokumente müssen sich in ihrem eigenen Unterverzeichnis `content/**/` befinden, aber ansonsten dem gleichen URL-Pfad wie die englische Quelle folgen. Um z.B. das Tutorial [Kubernetes Grundlagen](/docs/tutorials/kubernetes-basics/) für die Übersetzung ins Deutsche vorzubereiten, erstelle einen Unterordner unter dem Ordner `content/de/` und kopiere die englische Quelle:
|
||||
|
||||
```shell
|
||||
mkdir -p content/de/docs/tutorials
|
||||
cp content/en/docs/tutorials/kubernetes-basics.md content/de/docs/tutorials/kubernetes-basics.md
|
||||
```
|
||||
|
||||
Übersetzungswerkzeuge können den Übersetzungsprozess beschleunigen. Einige Redakteure bieten beispielsweise Plugins zur schnellen Übersetzung von Text an.
|
||||
|
||||
|
||||
{{< caution >}}
|
||||
Maschinelle Übersetzung allein reicht nicht aus. Die Lokalisierung erfordert eine umfassende menschliche Überprüfung, um Mindestqualitätsstandards zu erfüllen.
|
||||
{{< /caution >}}
|
||||
|
||||
Um die Genauigkeit in Grammatik und Bedeutung zu gewährleisten, sollten die Mitglieder deines Lokalisierungsteams alle maschinell erstellten Übersetzungen vor der Veröffentlichung sorgfältig überprüfen.
|
||||
|
||||
### Quelldaten
|
||||
|
||||
Lokalisierungen müssen auf den englischen Dateien der neuesten Version basieren, {{< latest-version >}}.
|
||||
|
||||
Um die Quelldatei für das neueste Release führe folgende Schritte durch:
|
||||
|
||||
1. Navigiere zum Repository der Website Kubernetes unter https://github.com/kubernetes/website.
|
||||
2. Wähle den `release-1.X`-Zweig für die aktuellste Version.
|
||||
|
||||
Die neueste Version ist {{< latest-version >}}, so dass der neueste Versionszweig [`{{< release-branch >}}`](https://github.com/kubernetes/website/tree/{{< release-branch >}}) ist.
|
||||
|
||||
### Seitenverlinkung in der Internationalisierung
|
||||
|
||||
Lokalisierungen müssen den Inhalt von [`i18n/de.toml`](https://github.com/kubernetes/website/blob/master/i18n/en.toml) in einer neuen sprachspezifischen Datei enthalten. Als Beispiel: `i18n/de.toml`.
|
||||
|
||||
Füge eine neue Lokalisierungsdatei zu `i18n/` hinzu. Zum Beispiel mit Deutsch (`de`):
|
||||
|
||||
```shell
|
||||
cp i18n/en.toml i18n/de.toml
|
||||
```
|
||||
|
||||
Übersetze dann den Wert jeder Zeichenfolge:
|
||||
|
||||
```TOML
|
||||
[docs_label_i_am]
|
||||
other = "ICH BIN..."
|
||||
```
|
||||
Durch die Lokalisierung von Website-Zeichenfolgen kannst du Website-weiten Text und Funktionen anpassen: z. B. den gesetzlichen Copyright-Text in der Fußzeile auf jeder Seite.
|
||||
|
||||
## Sprachspezifischer Styleguide
|
||||
|
||||
Einige Sprachteams haben ihren eigenen sprachspezifischen Styleguide und ihr eigenes Glossar. Siehe zum Beispiel den [Leitfaden zur koreanischen Lokalisierung](/ko/docs/contribute/localization_ko/).
|
||||
|
||||
### Informale Schreibweise
|
||||
Für die deutsche Übersetzungen verwenden wir eine informelle Schreibweise und der Ansprache per `Du`. Allerdings werden keine Jargon, Slang, Wortspiele, Redewendungen oder kulturspezifische Bezüge eingebracht.
|
||||
|
||||
### Datums und Maßeinheiten
|
||||
Wenn notwendig sollten Datumsangaben in das in Deutschland übliche dd.mm.yyyy überführt werden. Alternativ können diese auch in den Textfluss eingebunden werden: "... am 24. April ....".
|
||||
|
||||
### Abkürzungen
|
||||
Abkürzungen sollten nach Möglichkeit nicht verwendet werden und entweder ausgeschrieben oder anderweitig umgangen werden.
|
||||
|
||||
### Zusammengesetzte Wörter
|
||||
Durch die Übersetzung werden oft Nomen aneinandergereiht, diese Wortketten müssen durch Bindestriche verbunden werden. Dies ist auch möglich wenn ein Teil ins Deutsche übersetzt wird ein weiterer jedoch im Englischen bestehen bleibt. Als Richtlinie gilt hier der [Duden](https://www.duden.de/sprachwissen/rechtschreibregeln/bindestrich).
|
||||
|
||||
### Anglizismen
|
||||
Die Verwendung von Anglizismen ist dann wünschenswert, wenn die Verwendung eines deutschen Wortes, vor allem für technische Begriffe, nicht eindeutig ist oder zu Unklarheiten führt.
|
||||
|
||||
## Branching Strategie
|
||||
|
||||
Da Lokalisierungsprojekte in hohem Maße gemeinschaftliche Bemühungen sind, ermutigen wir Teams, in gemeinsamen Entwicklungszweigen zu arbeiten.
|
||||
|
||||
In einem Entwicklungszweig zusammenzuarbeiten:
|
||||
|
||||
1. Ein Teammitglied von [@kubernetes/website-maintainers](https://github.com/orgs/kubernetes/teams/website-maintainers) eröffnet einen Entwicklungszweig aus einem Quellzweig auf https://github.com/kubernetes/website.
|
||||
|
||||
Deine Genehmiger sind dem `@kubernetes/website-maintainers`-Team beigetreten, als du [dein Lokalisierungsteam](#lokalisierungs-team-in-github-hinzufügen) zum Repository [`kubernetes/org`](https://github.com/kubernetes/org) hinzugefügt hast.
|
||||
|
||||
Wir empfehlen das folgende Zweigbenennungsschema:
|
||||
|
||||
`dev-<Quellversion>-<Sprachcode>.<Team-Meilenstein>`
|
||||
|
||||
Beispielsweise öffnet ein Genehmigender in einem deutschen Lokalisierungsteam den Entwicklungszweig `dev-1.12-de.1` direkt gegen das k/website-Repository, basierend auf dem Quellzweig für Kubernetes v1.12.
|
||||
|
||||
2. Einzelne Mitwirkende öffnen Feature-Zweige, die auf dem Entwicklungszweig basieren.
|
||||
|
||||
Zum Beispiel öffnet ein deutscher Mitwirkende eine Pull-Anfrage mit Änderungen an `kubernetes:dev-1.12-de.1` von `Benutzername:lokaler-Zweig-Name`.
|
||||
|
||||
3. Genehmiger Überprüfen und führen die Feature-Zweigen in den Entwicklungszweig zusammen.
|
||||
|
||||
4. In regelmäßigen Abständen führt ein Genehmiger den Entwicklungszweig mit seinem Ursprungszweig zusammen, indem er eine neue Pull-Anfrage eröffnet und genehmigt. Achtet darauf, die Commits zusammenzuführen (squash), bevor die Pull-Anfrage genehmigt wird.
|
||||
|
||||
Wiederhole die Schritte 1-4 nach Bedarf, bis die Lokalisierung abgeschlossen ist. Zum Beispiel würden nachfolgende deutsche Entwicklungszweige sein: `dev-1.12-de.2`, `dev-1.12-de.3`, usw.
|
||||
|
||||
Die Teams müssen den lokalisierten Inhalt in demselben Versionszweig zusammenführen, aus dem der Inhalt stammt. Beispielsweise muss ein Entwicklungszweig, der von {{< release-branch >}} ausgeht, auf {{{{< release-branch >}}} basieren.
|
||||
|
||||
Ein Genehmiger muss einen Entwicklungszweig aufrechterhalten, indem er seinen Quellzweig auf dem aktuellen Stand hält und Merge-Konflikte auflöst. Je länger ein Entwicklungszweig geöffnet bleibt, desto mehr Wartung erfordert er in der Regel. Ziehe in Betracht, regelmäßig Entwicklungszweige zusammenzuführen und neue zu eröffnen, anstatt einen extrem lang laufenden Entwicklungszweig zu unterhalten.
|
||||
|
||||
Zu Beginn jedes Team-Meilensteins ist es hilfreich, ein Problem [Vergleich der Upstream-Änderungen](https://github.com/kubernetes/website/blob/master/scripts/upstream_changes.py) zwischen dem vorherigen Entwicklungszweig und dem aktuellen Entwicklungszweig zu öffnen.
|
||||
|
||||
Während nur Genehmiger einen neuen Entwicklungszweig eröffnen und Pull-Anfragen zusammenführen können, kann jeder eine Pull-Anfrage für einen neuen Entwicklungszweig eröffnen. Es sind keine besonderen Genehmigungen erforderlich.
|
||||
|
||||
Weitere Informationen über das Arbeiten von Forks oder direkt vom Repository aus findest du unter ["fork and clone the repo"](#duplizieren-und-klonen-des-repositories).
|
||||
|
||||
## Am Upstream Mitwirken
|
||||
|
||||
SIG Docs begrüßt Upstream Beiträge, also auf das englische Original, und Korrekturen an der englischen Quelle.
|
||||
|
||||
## Unterstütze bereits bestehende Lokalisierungen
|
||||
|
||||
Du kannst auch dazu beitragen, Inhalte zu einer bestehenden Lokalisierung hinzuzufügen oder zu verbessern. Trete dem [Slack-Kanal](https://kubernetes.slack.com/messages/C1J0BPD2M/) für die Lokalisierung bei und beginne mit der Eröffnung von PRs, um zu helfen. Bitte beschränke deine Pull-Anfragen auf eine einzige Lokalisierung, da Pull-Anfragen, die Inhalte in mehreren Lokalisierungen ändern, schwer zu überprüfen sein könnten.
|
||||
|
||||
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
|
||||
Sobald eine Lokalisierung die Anforderungen an den Arbeitsablauf und die Mindestausgabe erfüllt, wird SIG docs:
|
||||
|
||||
- Die Sprachauswahl auf der Website aktivieren
|
||||
- Die Verfügbarkeit der Lokalisierung über die Kanäle der [Cloud Native Computing Foundation](https://www.cncf.io/about/) (CNCF), einschließlich des [Kubernetes Blogs](https://kubernetes.io/blog/) veröffentlichen.
|
||||
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
---
|
||||
title: Kubernetes Dokumentation
|
||||
noedit: true
|
||||
cid: docsHome
|
||||
layout: docsportal_home
|
||||
class: gridPage gridPageHome
|
||||
linkTitle: "Home"
|
||||
main_menu: true
|
||||
weight: 10
|
||||
hide_feedback: true
|
||||
menu:
|
||||
main:
|
||||
title: "Dokumentation"
|
||||
weight: 20
|
||||
post: >
|
||||
<p>Erfahren Sie, wie Sie Kubernetes mit Konzept-, Tutorial- und Referenzdokumentation verwenden. Sie können sogar zur <a href="/editdocs/" data-auto-burger-exclude>mithelfen und zur Dokumentation beitragen</a>!</p>
|
||||
overview: >
|
||||
Kubernetes ist ein Open-Source-System zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen. Das Open-Source Project wird von der Cloud Native Computing Foundation (<a href="https://www.cncf.io/about">CNCF</a>) gehosted.
|
||||
cards:
|
||||
- name: concepts
|
||||
title: "Verstehen Sie die Grundlagen"
|
||||
description: "Lernen Sie Kubernetes und seine grundlegenden Konzepte kennen."
|
||||
button: "Konzepte lernen"
|
||||
button_path: "/docs/concepts"
|
||||
- name: tutorials
|
||||
title: "Kubernetes ausprobieren"
|
||||
description: "Folgen Sie den Tutorials, um zu erfahren, wie Sie Anwendungen in Kubernetes bereitstellen."
|
||||
button: "Tutorials entdecken"
|
||||
button_path: "/docs/tutorials"
|
||||
- name: setup
|
||||
title: "Richten Sie einen Cluster ein"
|
||||
description: "Holen Sie sich Kubernetes basierend auf Ihren Ressourcen und Bedürfnissen."
|
||||
button: "Kubernetes Einrichten"
|
||||
button_path: "/docs/setup"
|
||||
- name: tasks
|
||||
title: "Erfahren Sie, wie Sie Kubernetes verwenden"
|
||||
description: "Informieren Sie sich über häufig verwendete Aufgaben und deren Durchführung anhand einer kurzen Abfolge von Schritten."
|
||||
button: "Tasks anzeigen"
|
||||
button_path: "/docs/tasks"
|
||||
- name: reference
|
||||
title: Referenzinformationen nachschlagen
|
||||
description: Durchsuchen Sie Terminologie, Befehlszeilensyntax, API-Ressourcentypen und Dokumentation zum Setup-Tool.
|
||||
button: Referenz anzeigen
|
||||
button_path: /docs/reference
|
||||
- name: contribute
|
||||
title: Tragen Sie zur Dokumentation bei
|
||||
description: Jeder kann einen Beitrag leisten, unabhängig davon, ob Sie neu in dem Projekt oder schon lange dabei sind.
|
||||
button: Zur Dokumentation beitragen
|
||||
button_path: /docs/contribute
|
||||
- name: download
|
||||
title: Kubernetes Herunterladen
|
||||
description: Wenn Sie Kubernetes installieren oder auf die neueste Version aktualisieren, lesen Sie die aktuellen Versionshinweise.
|
||||
- name: about
|
||||
title: Über die Dokumentation
|
||||
description: Diese Website enthält Dokumentation zu den aktuellen und vorherigen 4 Versionen von Kubernetes.
|
||||
---
|
||||
@@ -1,30 +0,0 @@
|
||||
---
|
||||
title: Unterstützte Versionen der Kubernetes-Dokumentation
|
||||
content_type: concept
|
||||
card:
|
||||
name: about
|
||||
weight: 10
|
||||
title: Unterstützte Versionen der Dokumentation
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
Diese Website enthält Dokumentation für die aktuelle Version von Kubernetes
|
||||
und die vier vorherigen Versionen von Kubernetes.
|
||||
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## Aktuelle Version
|
||||
|
||||
Die aktuelle Version ist
|
||||
[{{< param "version" >}}](/).
|
||||
|
||||
## Vorherige Versionen
|
||||
|
||||
{{< versions-other >}}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
---
|
||||
title: Referenzen
|
||||
approvers:
|
||||
- chenopis
|
||||
linkTitle: "Referenzen"
|
||||
main_menu: true
|
||||
weight: 70
|
||||
content_type: concept
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
Dieser Abschnitt der Kubernetes-Dokumentation enthält Referenzinformationen.
|
||||
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## API-Referenz
|
||||
|
||||
* [Kubernetes API Überblick](/docs/reference/using-api/api-overview/) - Übersicht über die API für Kubernetes.
|
||||
* Kubernetes API Versionen
|
||||
* [1.17](/docs/reference/generated/kubernetes-api/v1.17/)
|
||||
* [1.16](/docs/reference/generated/kubernetes-api/v1.16/)
|
||||
* [1.15](/docs/reference/generated/kubernetes-api/v1.15/)
|
||||
* [1.14](/docs/reference/generated/kubernetes-api/v1.14/)
|
||||
* [1.13](/docs/reference/generated/kubernetes-api/v1.13/)
|
||||
|
||||
## API-Clientbibliotheken
|
||||
|
||||
Um die Kubernetes-API aus einer Programmiersprache aufzurufen, können Sie
|
||||
[Clientbibliotheken](/docs/reference/using-api/client-libraries/) verwenden.
|
||||
Offiziell unterstützte Clientbibliotheken:
|
||||
|
||||
- [Kubernetes Go Clientbibliothek](https://github.com/kubernetes/client-go/)
|
||||
- [Kubernetes Python Clientbibliothek](https://github.com/kubernetes-client/python)
|
||||
- [Kubernetes Java Clientbibliothek](https://github.com/kubernetes-client/java)
|
||||
- [Kubernetes JavaScript Clientbibliothek](https://github.com/kubernetes-client/javascript)
|
||||
|
||||
## CLI-Referenz
|
||||
|
||||
* [kubectl](/docs/user-guide/kubectl-overview) - Haupt-CLI-Tool zum Ausführen von Befehlen und zum Verwalten von Kubernetes-Clustern.
|
||||
* [JSONPath](/docs/user-guide/jsonpath/) - Syntax-Anleitung zur Verwendung von [JSONPath expressionen](http://goessner.net/articles/JsonPath/) mit kubectl.
|
||||
* [kubeadm](/docs/admin/kubeadm/) - CLI-Tool zur einfachen Bereitstellung eines sicheren Kubernetes-Clusters.
|
||||
* [kubefed](/docs/admin/kubefed/) - CLI-Tool zur Verwaltung Ihres Clusterverbunds.
|
||||
|
||||
## Konfigurationsreferenz
|
||||
|
||||
* [kubelet](/docs/admin/kubelet/) - Der primäre *Node-Agent*, der auf jedem Node ausgeführt wird. Das Kubelet betrachtet eine Reihe von PodSpecs und stellt sicher, dass die beschriebenen Container ordnungsgemäß ausgeführt werden.
|
||||
* [kube-apiserver](/docs/admin/kube-apiserver/) - REST-API zur Überprüfung und Konfiguration von Daten für API-Objekte wie Pods, Services und Replikationscontroller.
|
||||
* [kube-controller-manager](/docs/admin/kube-controller-manager/) - Daemon, der die mit Kubernetes gelieferten zentralen Regelkreise einbettet.
|
||||
* [kube-proxy](/docs/admin/kube-proxy/) - Kann einfache TCP/UDP-Stream-Weiterleitung oder Round-Robin-TCP/UDP-Weiterleitung über eine Reihe von Back-Ends durchführen.
|
||||
* [kube-scheduler](/docs/admin/kube-scheduler/) - Scheduler, der Verfügbarkeit, Leistung und Kapazität verwaltet.
|
||||
* [federation-apiserver](/docs/admin/federation-apiserver/) - API-Server für Cluster Föderationen.
|
||||
* [federation-controller-manager](/docs/admin/federation-controller-manager/) - Daemon, der die zentralen Regelkreise einbindet, die mit der Kubernetes-Föderation ausgeliefert werden.
|
||||
|
||||
## Design Dokumentation
|
||||
|
||||
Ein Archiv der Designdokumente für Kubernetes-Funktionalität. Gute Ansatzpunkte sind [Kubernetes Architektur](https://git.k8s.io/community/contributors/design-proposals/architecture/architecture.md) und [Kubernetes Design Übersicht](https://git.k8s.io/community/contributors/design-proposals).
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: API Zugriff
|
||||
weight: 20
|
||||
toc-hide: true
|
||||
---
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: Befehlszeilen-Werkzeug Referenzinformationen
|
||||
weight: 60
|
||||
toc-hide: true
|
||||
---
|
||||
@@ -1,4 +0,0 @@
|
||||
---
|
||||
title: "Föderation API"
|
||||
weight: 40
|
||||
---
|
||||
@@ -1,19 +0,0 @@
|
||||
---
|
||||
title: etcd
|
||||
id: etcd
|
||||
date: 2018-04-12
|
||||
full_link: /docs/tasks/administer-cluster/configure-upgrade-etcd/
|
||||
short_description: >
|
||||
Konsistenter und hochverfügbarer Key-Value Speicher, der als Backupspeicher von Kubernetes für alle Clusterdaten verwendet wird.
|
||||
|
||||
aka:
|
||||
tags:
|
||||
- architecture
|
||||
- storage
|
||||
---
|
||||
Konsistenter und hochverfügbarer Key-Value Speicher, der als Backupspeicher von Kubernetes für alle Clusterdaten verwendet wird.
|
||||
|
||||
<!--more-->
|
||||
|
||||
Halten Sie immer einen Sicherungsplan für etcds Daten für Ihren Kubernetes-Cluster bereit. Ausführliche Informationen zu etcd finden Sie in der [etcd Dokumentation](https://etcd.io/docs).
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
---
|
||||
title: Standardisiertes Glossar
|
||||
layout: glossary
|
||||
noedit: true
|
||||
default_active_tag: fundamental
|
||||
weight: 5
|
||||
card:
|
||||
name: reference
|
||||
weight: 10
|
||||
title: Glossary
|
||||
---
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
---
|
||||
title: kube-apiserver
|
||||
id: kube-apiserver
|
||||
date: 2018-04-12
|
||||
full_link: /docs/reference/generated/kube-apiserver/
|
||||
short_description: >
|
||||
Komponente auf dem Master, der die Kubernetes-API verfügbar macht. Es ist das Frontend für die Kubernetes-Steuerebene.
|
||||
|
||||
aka:
|
||||
tags:
|
||||
- architecture
|
||||
- fundamental
|
||||
---
|
||||
Komponente auf dem Master, der die Kubernetes-API verfügbar macht. Es ist das Frontend für die Kubernetes-Steuerebene.
|
||||
|
||||
<!--more-->
|
||||
|
||||
Es ist für die horizontale Skalierung konzipiert, d. H. Es skaliert durch die Bereitstellung von mehr Instanzen. Mehr informationen finden Sie unter [Cluster mit hoher Verfügbarkeit erstellen](/docs/admin/high-availability/).
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
---
|
||||
title: kube-controller-manager
|
||||
id: kube-controller-manager
|
||||
date: 2018-04-12
|
||||
full_link: /docs/reference/generated/kube-controller-manager/
|
||||
short_description: >
|
||||
Komponente auf dem Master, auf dem Controller ausgeführt werden.
|
||||
|
||||
aka:
|
||||
tags:
|
||||
- architecture
|
||||
- fundamental
|
||||
---
|
||||
Komponente auf dem Master, auf dem {{< glossary_tooltip text="controllers" term_id="controller" >}} ausgeführt werden.
|
||||
|
||||
<!--more-->
|
||||
|
||||
Logisch gesehen ist jeder {{< glossary_tooltip text="controller" term_id="controller" >}} ein separater Prozess, aber zur Vereinfachung der Komplexität werden sie alle zu einer einzigen Binärdatei zusammengefasst und in einem einzigen Prozess ausgeführt.
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
---
|
||||
title: kube-scheduler
|
||||
id: kube-scheduler
|
||||
date: 2018-04-12
|
||||
full_link: /docs/reference/generated/kube-scheduler/
|
||||
short_description: >
|
||||
Komponente auf dem Master, die neu erstellte Pods überwacht, denen kein Node zugewiesen ist. Sie wählt den Node aus, auf dem sie ausgeführt werden sollen.
|
||||
|
||||
aka:
|
||||
tags:
|
||||
- architecture
|
||||
---
|
||||
Komponente auf dem Master, die neu erstellte Pods überwacht, denen kein Node zugewiesen ist. Sie wählt den Node aus, auf dem sie ausgeführt werden sollen.
|
||||
|
||||
<!--more-->
|
||||
|
||||
Zu den Faktoren, die bei Planungsentscheidungen berücksichtigt werden, zählen individuelle und kollektive Ressourcenanforderungen, Hardware- / Software- / Richtlinieneinschränkungen, Affinitäts- und Anti-Affinitätsspezifikationen, Datenlokalität, Interworkload-Interferenz und Deadlines.
|
||||
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
---
|
||||
title: Kubelet
|
||||
id: kubelet
|
||||
date: 2018-04-12
|
||||
full_link: /docs/reference/generated/kubelet
|
||||
short_description: >
|
||||
Ein Agent, der auf jedem Node im Cluster ausgeführt wird. Er stellt sicher, dass Container in einem Pod ausgeführt werden.
|
||||
|
||||
aka:
|
||||
tags:
|
||||
- fundamental
|
||||
- core-object
|
||||
---
|
||||
Ein Agent, der auf jedem Node im Cluster ausgeführt wird. Er stellt sicher, dass Container in einem Pod ausgeführt werden.
|
||||
|
||||
<!--more-->
|
||||
|
||||
Das Kubelet verwendet eine Reihe von PodSpecs, die über verschiedene Mechanismen bereitgestellt werden, und stellt sicher, dass die in diesen PodSpecs beschriebenen Container ordnungsgemäß ausgeführt werden. Das kubelet verwaltet keine Container, die nicht von Kubernetes erstellt wurden.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: Kubernetes Probleme und Sicherheit
|
||||
weight: 10
|
||||
toc-hide: true
|
||||
---
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: "kubectl CLI"
|
||||
weight: 60
|
||||
---
|
||||
|
||||
@@ -1,351 +0,0 @@
|
||||
---
|
||||
title: kubectl Spickzettel
|
||||
content_type: concept
|
||||
card:
|
||||
name: reference
|
||||
weight: 30
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
Siehe auch: [Kubectl Überblick](/docs/reference/kubectl/overview/) und [JsonPath Dokumentation](/docs/reference/kubectl/jsonpath).
|
||||
|
||||
Diese Seite ist eine Übersicht über den Befehl `kubectl`.
|
||||
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
# kubectl - Spickzettel
|
||||
|
||||
## Kubectl Autovervollständigung
|
||||
|
||||
### BASH
|
||||
|
||||
```bash
|
||||
source <(kubectl completion bash) # Wenn Sie autocomplete in bash in der aktuellen Shell einrichten, sollte zuerst das bash-completion-Paket installiert werden.
|
||||
echo "source <(kubectl completion bash)" >> ~/.bashrc # Fügen Sie der Bash-Shell dauerhaft Autocomplete hinzu.
|
||||
```
|
||||
|
||||
Sie können auch ein Abkürzungsalias für `kubectl` verwenden, welches auch mit Vervollständigung funktioniert:
|
||||
|
||||
```bash
|
||||
alias k=kubectl
|
||||
complete -F __start_kubectl k
|
||||
```
|
||||
|
||||
### ZSH
|
||||
|
||||
```bash
|
||||
source <(kubectl completion zsh) # Richten Sie Autocomplete in zsh in der aktuellen Shell ein
|
||||
echo "if [ $commands[kubectl] ]; then source <(kubectl completion zsh); fi" >> ~/.zshrc # Fügen Sie der Zsh-Shell dauerhaft Autocomplete hinzu
|
||||
```
|
||||
|
||||
## Kubectl Kontext und Konfiguration
|
||||
|
||||
Legen Sie fest, welcher Kubernetes-Cluster mit `kubectl` kommuniziert und dessen Konfiguration ändert. Lesen Sie die Dokumentation [Authentifizierung mit kubeconfig über mehrere Cluster hinweg](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/) für ausführliche Informationen zur Konfigurationsdatei.
|
||||
|
||||
```bash
|
||||
kubectl config view # Zusammengeführte kubeconfig-Einstellungen anzeigen.
|
||||
|
||||
# Verwenden Sie mehrere kubeconfig-Dateien gleichzeitig und zeigen Sie die zusammengeführte Konfiguration an
|
||||
KUBECONFIG=~/.kube/config:~/.kube/kubconfig2 kubectl config view
|
||||
|
||||
# Zeigen Sie das Passwort für den e2e-Benutzer an
|
||||
kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}'
|
||||
|
||||
kubectl config view -o jsonpath='{.users[].name}' # eine Liste der Benutzer erhalten
|
||||
kubectl config current-context # den aktuellen Kontext anzeigen
|
||||
kubectl config use-context my-cluster-name # Setzen Sie den Standardkontext auf my-cluster-name
|
||||
|
||||
# Fügen Sie Ihrer kubeconf einen neuen Cluster hinzu, der basic auth unterstützt
|
||||
kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword
|
||||
|
||||
# Legen Sie einen Kontext fest, indem Sie einen bestimmten Benutzernamen und einen bestimmten Namespace verwenden.
|
||||
kubectl config set-context gce --user=cluster-admin --namespace=foo \
|
||||
&& kubectl config use-context gce
|
||||
|
||||
kubectl config unset users.foo # delete user foo
|
||||
```
|
||||
|
||||
## Apply
|
||||
`apply` verwaltet Anwendungen durch Dateien, die Kubernetes-Ressourcen definieren. Es erstellt und aktualisiert Ressourcen in einem Cluster durch Ausführen von `kubectl apply`. Dies ist die empfohlene Methode zur Verwaltung von Kubernetes-Anwendungen in der Produktion. Lesen Sie die ausführliche [Kubectl Dokumentation](https://kubectl.docs.kubernetes.io) für weitere Informationen.
|
||||
|
||||
## Objekte erstellen
|
||||
|
||||
Kubernetes Manifeste können in Json oder Yaml definiert werden. Die Dateierweiterungen `.yaml`,
|
||||
`.yml`, und `.json` können verwendet werden.
|
||||
|
||||
```bash
|
||||
kubectl apply -f ./my-manifest.yaml # Ressource(n) erstellen
|
||||
kubectl apply -f ./my1.yaml -f ./my2.yaml # aus mehreren Dateien erstellen
|
||||
kubectl apply -f ./dir # Erstellen Sie Ressourcen in allen Manifestdateien in Verzeichnis
|
||||
kubectl apply -f https://git.io/vPieo # Ressource(n) aus URL erstellen
|
||||
kubectl create deployment nginx --image=nginx # Starten Sie eine einzelne Instanz von Nginx
|
||||
kubectl explain pods,svc # Zeigen Sie die Dokumentation für Pod und SVC Manifeste an
|
||||
|
||||
# Erstellen Sie mehrere YAML-Objekte aus stdin
|
||||
cat <<EOF | kubectl apply -f -
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: busybox-sleep
|
||||
spec:
|
||||
containers:
|
||||
- name: busybox
|
||||
image: busybox
|
||||
args:
|
||||
- sleep
|
||||
- "1000000"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: busybox-sleep-less
|
||||
spec:
|
||||
containers:
|
||||
- name: busybox
|
||||
image: busybox
|
||||
args:
|
||||
- sleep
|
||||
- "1000"
|
||||
EOF
|
||||
|
||||
# Erstellen Sie ein "Secret" mit mehreren Schlüsseln
|
||||
cat <<EOF | kubectl apply -f -
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: mysecret
|
||||
type: Opaque
|
||||
data:
|
||||
password: $(echo -n "s33msi4" | base64 -w0)
|
||||
username: $(echo -n "jane" | base64 -w0)
|
||||
EOF
|
||||
|
||||
```
|
||||
|
||||
## Suchen und Anzeigen von Ressourcen
|
||||
|
||||
```bash
|
||||
# Get Befehle mit grundlegenden Ausgaben
|
||||
kubectl get services # Listen Sie alle Dienste im Namespace auf
|
||||
kubectl get pods --all-namespaces # Listen Sie alle Pods in allen Namespaces auf
|
||||
kubectl get pods -o wide # Listen Sie alle Pods im Namespace mit weiteren Details auf
|
||||
kubectl get deployment my-dep # Listen Sie eine bestimmte Bereitstellung auf
|
||||
kubectl get pods # Listen Sie alle Pods im Namespace auf
|
||||
|
||||
# Describe Befehle mit ausführlicher Ausgabe
|
||||
kubectl describe nodes my-node
|
||||
kubectl describe pods my-pod
|
||||
|
||||
kubectl get services --sort-by=.metadata.name # Listen Sie Dienste nach Namen sortiert auf
|
||||
|
||||
# Listen Sie Pods Sortiert nach Restart Count auf
|
||||
kubectl get pods --sort-by='.status.containerStatuses[0].restartCount'
|
||||
|
||||
# Erhalten Sie die Versionsbezeichnung aller Pods mit der Bezeichnung app=cassandra
|
||||
kubectl get pods --selector=app=cassandra -o \
|
||||
jsonpath='{.items[*].metadata.labels.version}'
|
||||
|
||||
# Alle Worker-Knoten abrufen (verwenden Sie einen Selektor, um Ergebnisse auszuschließen,
|
||||
# die ein Label mit dem Namen 'node-role.kubernetes.io/master' tragen).
|
||||
kubectl get node --selector='!node-role.kubernetes.io/master'
|
||||
|
||||
# Zeigen Sie alle laufenden Pods im Namespace an
|
||||
kubectl get pods --field-selector=status.phase=Running
|
||||
|
||||
# Rufen Sie die externe IP aller Nodes ab
|
||||
kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="ExternalIP")].address}'
|
||||
|
||||
# Listet die Namen der Pods auf, die zu einem bestimmten RC gehören
|
||||
# Der Befehl "jq" ist nützlich für Transformationen, die für jsonpath zu komplex sind. Sie finden ihn unter https://stedolan.github.io/jq/
|
||||
sel=${$(kubectl get rc my-rc --output=json | jq -j '.spec.selector | to_entries | .[] | "\(.key)=\(.value),"')%?}
|
||||
echo $(kubectl get pods --selector=$sel --output=jsonpath={.items..metadata.name})
|
||||
|
||||
# Labels für alle Pods anzeigen (oder jedes andere Kubernetes-Objekt, das labelling unterstützt)
|
||||
# Verwendet auch "jq"
|
||||
for item in $( kubectl get pod --output=name); do printf "Labels for %s\n" "$item" | grep --color -E '[^/]+$' && kubectl get "$item" --output=json | jq -r -S '.metadata.labels | to_entries | .[] | " \(.key)=\(.value)"' 2>/dev/null; printf "\n"; done
|
||||
|
||||
# Prüfen Sie, welche Nodes bereit sind
|
||||
JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}' \
|
||||
&& kubectl get nodes -o jsonpath="$JSONPATH" | grep "Ready=True"
|
||||
|
||||
# Listen Sie alle Secrets auf, die derzeit von einem Pod verwendet werden
|
||||
kubectl get pods -o json | jq '.items[].spec.containers[].env[]?.valueFrom.secretKeyRef.name' | grep -v null | sort | uniq
|
||||
|
||||
# Ereignisse nach Zeitstempel sortiert auflisten
|
||||
kubectl get events --sort-by=.metadata.creationTimestamp
|
||||
```
|
||||
|
||||
## Ressourcen aktualisieren
|
||||
|
||||
Ab Version 1.11 ist das `rolling-update` veraltet (Lesen Sie [CHANGELOG-1.11.md](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.11.md) für weitere Informationen), verwenden Sie stattdessen `rollout`.
|
||||
|
||||
```bash
|
||||
kubectl set image deployment/frontend www=image:v2 # Fortlaufende Aktualisierung der "www" Container der "Frontend"-Bereitstellung, Aktualisierung des Images
|
||||
kubectl rollout undo deployment/frontend # Rollback zur vorherigen Bereitstellung
|
||||
kubectl rollout status -w deployment/frontend # Beobachten Sie den fortlaufenden Aktualisierungsstatus der "Frontend"-Bereitstellung bis zum Abschluss.
|
||||
|
||||
# veraltet ab Version 1.11
|
||||
kubectl rolling-update frontend-v1 -f frontend-v2.json # (veraltet) Fortlaufendes Update der Pods von Frontend-v1
|
||||
kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2 # (veraltet) Ändern Sie den Namen der Ressource und aktualisieren Sie das Image
|
||||
kubectl rolling-update frontend --image=image:v2 # (veraltet) Aktualisieren Sie das Pod-Image des Frontends
|
||||
kubectl rolling-update frontend-v1 frontend-v2 --rollback # (veraltet) Bricht das laufende Rollout ab
|
||||
|
||||
cat pod.json | kubectl replace -f - # Ersetzen Sie einen Pod basierend auf der in std übergebenen JSON
|
||||
|
||||
# Ersetzen, löschen und Ressource neu erstellen. Dies führt zu einer temprären Unerreichbarkeit des Dienstes.
|
||||
kubectl replace --force -f ./pod.json
|
||||
|
||||
# Erstellen Sie einen Dienst für eien replizierten nginx Webserver, der an Port 80 und in den Containern an Port 8000 lauscht
|
||||
kubectl expose rc nginx --port=80 --target-port=8000
|
||||
|
||||
# Aktualisieren Sie die Image-Version (Tag) eines Einzelcontainer-Pods auf Version 4
|
||||
kubectl get pod mypod -o yaml | sed 's/\(image: myimage\):.*$/\1:v4/' | kubectl replace -f -
|
||||
|
||||
kubectl label pods my-pod new-label=awesome # Label hinzufügen
|
||||
kubectl annotate pods my-pod icon-url=http://goo.gl/XXBTWq # Eine Anmerkung hinzufügen
|
||||
kubectl autoscale deployment foo --min=2 --max=10 # Automatische Skalierung einer Bereitstellung "Foo"
|
||||
```
|
||||
|
||||
## Ressourcen patchen
|
||||
|
||||
```bash
|
||||
kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}' # Aktualisieren Sie einen Node teilweise
|
||||
|
||||
# Aktualisieren Sie das Image eines Containers; spec.containers[*].name ist erforderlich, da es sich um einen Merge-Schlüssel handelt
|
||||
kubectl patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}'
|
||||
|
||||
# Aktualisieren Sie das Image eines Containers mithilfe eines Json-Patches mit Positionsarrays
|
||||
kubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]'
|
||||
|
||||
# Deaktivieren Sie eine Bereitstellung von livenessProbe durch verwenden eines Json-Patches mit Positionsarrays
|
||||
kubectl patch deployment valid-deployment --type json -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/livenessProbe"}]'
|
||||
|
||||
# Fügen Sie einem Positionsarray ein neues Element hinzu
|
||||
kubectl patch sa default --type='json' -p='[{"op": "add", "path": "/secrets/1", "value": {"name": "whatever" } }]'
|
||||
```
|
||||
|
||||
## Ressourcen bearbeiten
|
||||
Bearbeiten Sie eine beliebige API-Ressource in einem Editor.
|
||||
|
||||
```bash
|
||||
kubectl edit svc/docker-registry # Bearbeiten Sie den Dienst docker-registry
|
||||
KUBE_EDITOR="nano" kubectl edit svc/docker-registry # Verwenden Sie einen alternativen Texteditor
|
||||
```
|
||||
|
||||
## Ressourcen skalieren
|
||||
|
||||
```bash
|
||||
kubectl scale --replicas=3 rs/foo # Skaliert ein Replikat mit dem Namen 'foo' auf 3
|
||||
kubectl scale --replicas=3 -f foo.yaml # Skaliert eine in "foo.yaml" angegebene Ressource auf 3
|
||||
kubectl scale --current-replicas=2 --replicas=3 deployment/mysql # Wenn die aktuelle Konfiguration der Replikation von mysql 2 ist, skaliert mysql auf 3
|
||||
kubectl scale --replicas=5 rc/foo rc/bar rc/baz # Skaliert mehrere Replikationscontroller
|
||||
```
|
||||
|
||||
## Ressourcen löschen
|
||||
|
||||
```bash
|
||||
kubectl delete -f ./pod.json # Löscht einen Pod mit dem in pod.json angegebenen Typ und Namen
|
||||
kubectl delete pod,service baz foo # Löscht Pods und Services mit den gleichen Namen "baz" und "foo"
|
||||
kubectl delete pods,services -l name=myLabel # Löscht Pods und Services mit dem Label name=myLabel
|
||||
kubectl -n my-ns delete po,svc --all # Löscht alle Pods und Dienste, im Namespace my-ns
|
||||
```
|
||||
|
||||
## Interaktion mit laufenden Pods
|
||||
|
||||
```bash
|
||||
kubectl logs my-pod # Pod-Logdatei ausgeben (stdout)
|
||||
kubectl logs my-pod --previous # Pod-Logdatei für eine vorherige Instantiierung eines Containers ausgeben (stdout)
|
||||
kubectl logs my-pod -c my-container # Pod Container-Logdatei ausgeben (stdout, multi-container case)
|
||||
kubectl logs my-pod -c my-container --previous # Pod Container-Logdatei für eine vorherige Instantiierung eines Containers ausgeben (stdout, multi-container case)
|
||||
kubectl logs -f my-pod # Pod-Logdatei streamen (stdout)
|
||||
kubectl logs -f my-pod -c my-container # Pod Container-Logdatei streamen (stdout, multi-container case)
|
||||
kubectl run -i --tty busybox --image=busybox -- sh # Pod als interaktive Shell ausführen
|
||||
kubectl attach my-pod -i # An laufenden Container anhängen
|
||||
kubectl port-forward my-pod 5000:6000 # Lauscht auf Port 5000 auf dem lokalen Computer und leitet den Port 6000 auf my-pod weiter
|
||||
kubectl exec my-pod -- ls / # Befehl in vorhandenem Pod ausführen (1 Container)
|
||||
kubectl exec my-pod -c my-container -- ls / # Befehl in vorhandenem Pod ausführen (Mehrere Container)
|
||||
kubectl top pod POD_NAME --containers # Zeigt Metriken für einen bestimmten Pod und seine Container an
|
||||
```
|
||||
|
||||
## Mit Nodes und Clustern interagieren
|
||||
|
||||
```bash
|
||||
kubectl cordon my-node # Markiert "my-node" als unplanbar
|
||||
kubectl drain my-node # Entleert "my-node" zur Vorbereitung der Wartung
|
||||
kubectl uncordon my-node # Markiert "my-node" als planbar
|
||||
kubectl top node my-node # Metriken für einen bestimmten Node anzeigen
|
||||
kubectl cluster-info # Adressen des Masters und der Services anzeigen
|
||||
kubectl cluster-info dump # Ausgabe des aktuellen Clusterstatus in stdout
|
||||
kubectl cluster-info dump --output-directory=/pfad/zum/cluster-status # Aktuellen Cluster-Status in /pfad/zum/cluster-status ausgeben
|
||||
|
||||
# Wenn bereits ein Taint mit diesem Key und Effekt vorhanden ist, wird sein Wert wie angegeben ersetzt.
|
||||
kubectl taint nodes foo dedicated=special-user:NoSchedule
|
||||
```
|
||||
|
||||
### Ressourcentypen
|
||||
|
||||
Liste aller unterstützten Ressourcentypen mit ihren Kurzbezeichnungen, der [API-Gruppe](/docs/concepts/overview/kubernetes-api/#api-groups), unabhängig davon ob sie im Namespace liegen, und der [Art](/docs/concepts/overview/working-with-objects/kubernetes-objects):
|
||||
|
||||
```bash
|
||||
kubectl api-resources
|
||||
```
|
||||
|
||||
Andere Operationen zum Erkunden von API-Ressourcen:
|
||||
|
||||
```bash
|
||||
kubectl api-resources --namespaced=true # Alle Ressourcen im Namespace
|
||||
kubectl api-resources --namespaced=false # Alle nicht im Namespace befindlichen Ressourcen
|
||||
kubectl api-resources -o name # Alle Ressourcen mit einfacher Ausgabe (nur der Ressourcenname)
|
||||
kubectl api-resources -o wide # Alle Ressourcen mit erweiterter Ausgabe (aka "Wide")
|
||||
kubectl api-resources --verbs=list,get # Alle Ressourcen, die "list" und "get" Verben unterstützen anfordern
|
||||
kubectl api-resources --api-group=extensions # Alle Ressourcen in der API-Gruppe "extensions"
|
||||
```
|
||||
|
||||
### Ausgabe formatieren
|
||||
|
||||
Um Details in einem bestimmten Format an Ihr Terminalfenster auszugeben, können Sie entweder das `-o` oder `--output` Flag zu einem unterstützten `kubectl` Befehl anhängens.
|
||||
|
||||
Ausgabeformat | Beschreibung
|
||||
--------------| -----------
|
||||
`-o=custom-columns=<spec>` | Ausgabe einer Tabelle mit einer durch Kommas getrennten Liste benutzerdefinierter Spalten
|
||||
`-o=custom-columns-file=<dateiname>` | Drucken Sie eine Tabelle mit der benutzerdefinierten Spaltenvorlage in der `<dateiname>` Datei
|
||||
`-o=json` | Ausgabe eines JSON-formatierten API-Objekts
|
||||
`-o=jsonpath=<template>` | Ausgabe der in einem [jsonpath](/docs/reference/kubectl/jsonpath)-Ausdruck definierten Felder
|
||||
`-o=jsonpath-file=<dateiname>` | Ausgabe der in einem [jsonpath](/docs/reference/kubectl/jsonpath)-Ausdruck definierten Felder in der `<dateiname>` Datei
|
||||
`-o=name` | Ausgabe von nur dem Ressourcennamen und nichts anderes
|
||||
`-o=wide` | Ausgabe im Klartextformat mit zusätzlichen Informationen. Bei Pods ist der Node-Name enthalten
|
||||
`-o=yaml` | Gibt ein YAML-formatiertes API-Objekt aus
|
||||
|
||||
### Kubectl Ausgabe Ausführlichkeit und Debugging
|
||||
|
||||
Die Ausführlichkeit von Kubectl wird mit den Flags `-v` oder `--v ` gesteuert, gefolgt von einer Ganzzahl, die die Protokollebene darstellt. Allgemeine Protokollierungskonventionen für Kubernetes und die zugehörigen Protokollebenen werden [hier](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md) beschrieben.
|
||||
|
||||
Ausführlichkeit | Beschreibung
|
||||
--------------| -----------
|
||||
`--v=0` | Allgemein nützlich, damit dies für den Bediener IMMER sichtbar ist.
|
||||
`--v=1` | Eine vernünftige Standardprotokollebene, wenn Sie keine Ausführlichkeit wünschen.
|
||||
`--v=2` | Nützliche Informationen zum stabilen Status des Dienstes und wichtige Protokollnachrichten, die möglicherweise zu erheblichen Änderungen im System führen. Dies ist die empfohlene Standardprotokollebene für die meisten Systeme.
|
||||
`--v=3` | Erweiterte Informationen zu Änderungen.
|
||||
`--v=4` | Debug-Level-Ausführlichkeit.
|
||||
`--v=6` | Angeforderte Ressourcen anzeigen
|
||||
`--v=7` | HTTP-Anforderungsheader anzeigen
|
||||
`--v=8` | HTTP-Anforderungsinhalt anzeigen
|
||||
`--v=9` | HTTP-Anforderungsinhalt anzeigen, ohne den Inhalt zu kürzen.
|
||||
|
||||
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
|
||||
* Lernen Sie mehr im [Überblick auf kubectl](/docs/reference/kubectl/overview/).
|
||||
|
||||
* Erkunden Sie [kubectl](/docs/reference/kubectl/kubectl/) Optionen.
|
||||
|
||||
* Und ebenfalls die [kubectl Nutzungskonventionen](/docs/reference/kubectl/conventions/) um zu verstehen, wie man es in wiederverwendbaren Skripten verwendet.
|
||||
|
||||
* Entdecken Sie mehr Community [kubectl Spickzettel](https://github.com/dennyzhang/cheatsheet-kubernetes-A4).
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
---
|
||||
title: API Referenzinformationen
|
||||
weight: 30
|
||||
---
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: Setup-Tools Referenzinformationen
|
||||
weight: 50
|
||||
toc-hide: true
|
||||
---
|
||||
@@ -1,52 +0,0 @@
|
||||
---
|
||||
title: Tools
|
||||
content_type: concept
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
Kubernetes enthält mehrere integrierte Tools, die Ihnen bei der Arbeit mit dem Kubernetes System helfen.
|
||||
|
||||
|
||||
<!-- body -->
|
||||
## Kubectl
|
||||
|
||||
[`kubectl`](/docs/tasks/tools/install-kubectl/) ist ein Kommandozeilenprogramm für Kubernetes. Es steuert den Kubernetes Clustermanager.
|
||||
|
||||
## Kubeadm
|
||||
|
||||
[`kubeadm`](/docs/setup/independent/install-kubeadm/) ist ein Kommandozeilenprogramm zur einfachen Bereitstellung eines sicheren Kubernetes-Clusters auf physischen oder Cloud-Servern oder virtuellen Maschinen (derzeit in alpha).
|
||||
|
||||
## Kubefed
|
||||
|
||||
[`kubefed`](/docs/tasks/federation/set-up-cluster-federation-kubefed/) ist ein Kommandozeilenprogramm um Ihnen bei der Verwaltung Ihrer Verbundcluster zu helfen.
|
||||
|
||||
## Minikube
|
||||
|
||||
[`minikube`](/docs/tasks/tools/install-minikube/) ist ein Tool, das es Ihnen einfach macht, einen Kubernetes-Cluster mit einem einzigen Knoten lokal auf Ihrer Workstation für Entwicklungs- und Testzwecke auszuführen.
|
||||
|
||||
## Dashboard
|
||||
|
||||
[`Dashboard`](/docs/tasks/access-application-cluster/web-ui-dashboard/), die webbasierte Benutzeroberfläche von Kubernetes ermöglicht es Ihnen containerisierte Anwendungen in einem Kubernetes-Cluster bereitzustellen Fehler zu beheben und den Cluster und seine Ressourcen selbst zu verwalten.
|
||||
|
||||
## Helm
|
||||
|
||||
[`Kubernetes Helm`](https://github.com/kubernetes/helm) ist ein Tool zur Verwaltung von Paketen mit vorkonfigurierten Kubernetes-Ressourcen, auch bekannt als Kubernetes charts.
|
||||
|
||||
Verwenden Sie Helm um:
|
||||
|
||||
* Beliebte Software verpackt als Kubernetes charts zu finden und zu verwenden
|
||||
* Ihre eigenen Applikationen als Kubernetes charts zu teilen
|
||||
* Reproduzierbare Builds Ihrer Kubernetes Anwendungen zu erstellen
|
||||
* Intelligenten Verwaltung von Ihren Kubernetes manifest files
|
||||
* Verwalten von Versionen von Helm Paketen
|
||||
|
||||
## Kompose
|
||||
|
||||
[`Kompose`](https://github.com/kubernetes-incubator/kompose) ist ein Tool, das Docker Compose Benutzern hilft, nach Kubernetes zu wechseln.
|
||||
|
||||
Verwenden Sie Kompose um:
|
||||
|
||||
* Ein Docker Compose Datei in Kubernetes Objekte zu übersetzen
|
||||
* Von Ihrer lokalen Docker Entwicklung auf eine Kubernetes verwaltete Entwicklung zu wechseln
|
||||
* v1 oder v2 Docker Compose `yaml` Dateien oder [Distributed Application Bundles](https://docs.docker.com/compose/bundles/) zu konvertieren
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: Verwendung der Kubernetes-API
|
||||
weight: 10
|
||||
toc-hide: true
|
||||
---
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user