├── .gitignore ├── OBS ├── alert-box-custom.css ├── chat.css └── kubenews.json ├── README.md ├── documents ├── README.md └── streaming-overview.png ├── episodes ├── .gitkeep ├── 001-private │ └── README.md ├── 001 │ └── README.md ├── 002 │ └── README.md ├── 003 │ └── README.md ├── 004 │ └── README.md ├── 005 │ └── README.md ├── 006 │ └── README.md ├── 007 │ └── README.md ├── 008 │ └── README.md ├── 009 │ └── README.md ├── 010 │ └── README.md ├── 011 │ └── README.md ├── 012 │ └── README.md ├── 013 │ └── README.md ├── 014 │ └── README.md ├── 015 │ └── README.md ├── 016 │ └── README.md ├── 017 │ └── README.md ├── 018 │ └── README.md ├── 019 │ └── README.md ├── 020 │ └── README.md ├── 021 │ └── README.md ├── 022 │ └── README.md ├── 023 │ └── README.md ├── 024 │ └── README.md ├── 025 │ └── README.md └── 026 │ └── README.md ├── images ├── afdesign │ ├── kubenews-hashtag.afdesign │ ├── kubenews-message.afdesign │ ├── kubenews-thumbnail-org.afdesign │ ├── kubenews-thumbnail-v2.afdesign │ └── kubenews-thumbnail.afdesign ├── kubenews-hashtag.png ├── kubenews-message.png ├── kubenews-thumbnail-org.png └── kubenews-thumbnail.png └── resource └── .DS_Store /.gitignore: -------------------------------------------------------------------------------- 1 | **/.DS_Store 2 | -------------------------------------------------------------------------------- /OBS/alert-box-custom.css: -------------------------------------------------------------------------------- 1 | .widget-AlertBox { 2 | position: relative; 3 | } 4 | body, 5 | html { 6 | height: 100%; 7 | width: 100%; 8 | overflow: hidden; 9 | } 10 | #wrap { 11 | position: relative; 12 | height: 100%; 13 | width: 100%; 14 | } 15 | #alert-box { 16 | height: 100%; 17 | width: 100%; 18 | position: absolute; 19 | } 20 | #alert-box.hidden, 21 | .hidden { 22 | opacity: 0; 23 | } 24 | #alert-text { 25 | padding: 20px; 26 | text-shadow: 0px 0px 1px #000, 0px 0px 2px #000, 0px 0px 3px #000, 0px 0px 4px #000, 0px 0px 5px #000; 27 | } 28 | #alert-message, 29 | #alert-user-message { 30 | text-align: center; 31 | } 32 | #alert-user-message img { 33 | vertical-align: middle; 34 | height: 1em; 35 | } 36 | #alert-image { 37 | position: relative; 38 | } 39 | #alert-image video { 40 | width: 100%; 41 | height: 100%; 42 | position: absolute; 43 | top: 0; 44 | left: 0; 45 | } 46 | #alert-message > span > span { 47 | display: inline-block; 48 | } 49 | #alert-image { 50 | z-index: 6; 51 | position: relative; 52 | } 53 | #alert-text { 54 | z-index: 6; 55 | position: relative; 56 | } 57 | #alert-text-wrap { 58 | z-index: 6; 59 | position: relative; 60 | background-color: rgba(0,0,0,0.6); /* Added */ 61 | } 62 | -------------------------------------------------------------------------------- /OBS/chat.css: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * CSS生成日 : 2020/11/23 23:46:12 3 | * バージョン: Chat v2.0 Style Generator 日本語版 2020.05.31 4 | **********************************************************************/ 5 | 6 | @import url("https://fonts.googleapis.com/css2?family=Kosugi+Maru&family=Noto+Sans+SC&family=Noto+Sans+TC&family=Noto+Sans+KR&family=Noto+Sans&display=swap"); 7 | 8 | /* Background colors - 背景色 */ 9 | body { 10 | overflow: hidden; 11 | background-color: rgba(0,0,0,0.12); 12 | } 13 | /* Transparent background - 背景透過 */ 14 | yt-live-chat-renderer { 15 | background-color: transparent !important; 16 | } 17 | yt-live-chat-text-message-renderer, 18 | yt-live-chat-text-message-renderer[is-highlighted] { 19 | background-color: transparent !important; 20 | } 21 | 22 | yt-live-chat-text-message-renderer[author-type="owner"], 23 | yt-live-chat-text-message-renderer[author-type="owner"][is-highlighted] { 24 | background-color: transparent !important; 25 | } 26 | 27 | yt-live-chat-text-message-renderer[author-type="moderator"], 28 | yt-live-chat-text-message-renderer[author-type="moderator"][is-highlighted] { 29 | background-color: transparent !important; 30 | } 31 | 32 | yt-live-chat-text-message-renderer[author-type="member"], 33 | yt-live-chat-text-message-renderer[author-type="member"][is-highlighted] { 34 | background-color: transparent !important; 35 | } 36 | 37 | 38 | yt-live-chat-author-chip #author-name { 39 | background-color: transparent !important; 40 | } 41 | /* Outlines - 縁取り */ 42 | yt-live-chat-renderer * { 43 | text-shadow: -2px -2px #000000,-2px -1px #000000,-2px 0px #000000,-2px 1px #000000,-2px 2px #000000,-1px -2px #000000,-1px -1px #000000,-1px 0px #000000,-1px 1px #000000,-1px 2px #000000,0px -2px #000000,0px -1px #000000,0px 0px #000000,0px 1px #000000,0px 2px #000000,1px -2px #000000,1px -1px #000000,1px 0px #000000,1px 1px #000000,1px 2px #000000,2px -2px #000000,2px -1px #000000,2px 0px #000000,2px 1px #000000,2px 2px #000000; 44 | font-family: "Kosugi Maru","Noto Sans SC","Noto Sans TC","Noto Sans KR","Noto Sans", sans-serif; 45 | font-size: 28px !important; 46 | line-height: 30px !important; 47 | } 48 | 49 | yt-live-chat-text-message-renderer #content, 50 | yt-live-chat-legacy-paid-message-renderer #content { 51 | overflow: initial !important; 52 | } 53 | 54 | /* Hide scrollbar - スクロールバー非表示 */ 55 | yt-live-chat-item-list-renderer #items{ 56 | overflow: hidden !important; 57 | } 58 | 59 | yt-live-chat-item-list-renderer #item-scroller{ 60 | overflow: hidden !important; 61 | } 62 | 63 | /* Hide header and input - ヘッダーと入力欄非表示 */ 64 | #panel-pages, 65 | yt-live-chat-header-renderer, 66 | yt-live-chat-message-input-renderer { 67 | display: none !important; 68 | } 69 | 70 | /* Reduce side padding - 余白設定 */ 71 | yt-live-chat-text-message-renderer { 72 | padding-left: 4px !important; 73 | padding-right: 4px !important; 74 | } 75 | 76 | yt-live-chat-membership-item-renderer, 77 | yt-live-chat-legacy-paid-message-renderer, 78 | yt-live-chat-paid-sticker-renderer, 79 | yt-live-chat-paid-message-renderer { 80 | padding-left: 4px !important; 81 | padding-right: 4px !important; 82 | } 83 | 84 | /* Avatars - チャンネルアイコン */ 85 | yt-img-shadow #img, 86 | yt-live-chat-text-message-renderer #author-photo, 87 | yt-live-chat-paid-message-renderer #author-photo, 88 | yt-live-chat-membership-message-renderer #author-photo, 89 | yt-live-chat-legacy-paid-message-renderer #author-photo { 90 | display: none !important; 91 | width: 24px !important; 92 | height: 24px !important; 93 | border-radius: 24px !important; 94 | margin-right: 6px !important; 95 | } 96 | 97 | /* Member Badge - モデレーター・メンバーのバッジ(アイコン)サイズ */ 98 | img.yt-live-chat-author-badge-renderer, 99 | div #image, 100 | svg.yt-icon { 101 | width: 20px !important; 102 | height: 20px !important; 103 | } 104 | 105 | /* Emoji - 絵文字・メンバー用スタンプ */ 106 | #message > img , 107 | img.yt-live-chat-text-message-renderer { 108 | width: 24px !important; 109 | height: 24px !important; 110 | } 111 | 112 | /* Hide badges - バッジ非表示. */ 113 | yt-live-chat-text-message-renderer #author-badges, 114 | yt-live-chat-text-message-renderer #chat-badges { 115 | 116 | vertical-align: text-top !important; 117 | } 118 | 119 | /* Timestamps - 時刻表示 */ 120 | yt-live-chat-text-message-renderer #timestamp { 121 | display: none !important; 122 | color: #999999 !important; 123 | font-family: "Kosugi Maru","Noto Sans SC","Noto Sans TC","Noto Sans KR","Noto Sans", sans-serif; 124 | font-size: 16px !important; 125 | line-height: 16px !important; 126 | font-weight: 500 !important; 127 | } 128 | 129 | /* Badges - 名前・バッジの色 */ 130 | yt-live-chat-text-message-renderer #author-name[type="owner"], 131 | yt-live-chat-text-message-renderer #author-name.owner, 132 | yt-live-chat-text-message-renderer yt-live-chat-author-badge-renderer[type="owner"] { 133 | color: #ffd600 !important; 134 | } 135 | 136 | yt-live-chat-text-message-renderer #author-name[type="moderator"], 137 | yt-live-chat-text-message-renderer #author-name.moderator, 138 | yt-live-chat-text-message-renderer yt-live-chat-author-badge-renderer[type="moderator"] { 139 | color: #5e84f1 !important; 140 | } 141 | 142 | yt-live-chat-text-message-renderer #author-name[type="member"], 143 | yt-live-chat-text-message-renderer #author-name.member, 144 | yt-live-chat-text-message-renderer yt-live-chat-author-badge-renderer[type="member"] { 145 | color: #0f9d58 !important; 146 | } 147 | 148 | /* Channel names - チャンネル名 */ 149 | yt-live-chat-text-message-renderer #author-name { 150 | color: #5e86f1 !important; 151 | font-family: "Kosugi Maru","Noto Sans SC","Noto Sans TC","Noto Sans KR","Noto Sans", sans-serif; 152 | font-size: 22px !important; 153 | line-height: 22px !important; 154 | font-weight: 700 !important; 155 | } 156 | 157 | /* チャンネル名を隠す */ 158 | yt-live-chat-author-chip { 159 | 160 | } 161 | 162 | /* チャンネル名の余白削除 */ 163 | yt-live-chat-author-chip[is-highlighted] #author-name.yt-live-chat-author-chip, 164 | yt-live-chat-author-chip { 165 | padding: 0px 0px; 166 | } 167 | 168 | 169 | yt-live-chat-text-message-renderer #author-name::after { 170 | content: ":"; 171 | margin-left: 2px; 172 | } 173 | 174 | /* Messages - チャット本文 */ 175 | yt-live-chat-text-message-renderer #message, 176 | yt-live-chat-text-message-renderer #message * { 177 | color: #ffffff !important; 178 | font-family: "Kosugi Maru","Noto Sans SC","Noto Sans TC","Noto Sans KR","Noto Sans", sans-serif; 179 | font-size: 28px !important; 180 | line-height: 30px !important; 181 | font-weight: 500 !important; 182 | } 183 | 184 | yt-live-chat-text-message-renderer #message { 185 | display: block !important; 186 | } 187 | 188 | /* SuperChat/Fan Funding Messages - スーパーチャットメッセージ */ 189 | yt-live-chat-paid-message-renderer #author-name, 190 | yt-live-chat-paid-message-renderer #author-name *, 191 | yt-live-chat-paid-sticker-renderer #author-name, 192 | yt-live-chat-paid-sticker-renderer #author-name *, 193 | yt-live-chat-membership-item-renderer #author-name, 194 | yt-live-chat-membership-item-renderer #author-name *, 195 | yt-live-chat-legacy-paid-message-renderer #event-text, 196 | yt-live-chat-legacy-paid-message-renderer #event-text * { 197 | color: #ffffff !important; 198 | font-family: "Kosugi Maru","Noto Sans SC","Noto Sans TC","Noto Sans KR","Noto Sans", sans-serif; 199 | font-size: 20px !important; 200 | line-height: 20px !important; 201 | font-weight: 700 !important; 202 | } 203 | 204 | yt-live-chat-paid-message-renderer #purchase-amount, 205 | yt-live-chat-paid-message-renderer #purchase-amount *, 206 | yt-live-chat-paid-sticker-renderer #purchase-amount-chip, 207 | yt-live-chat-paid-sticker-renderer #purchase-amount-chip *, 208 | yt-live-chat-membership-item-renderer #header-subtext, 209 | yt-live-chat-membership-item-renderer #header-subtext *, 210 | yt-live-chat-donation-announcement-renderer #text, 211 | yt-live-chat-donation-announcement-renderer #text *, 212 | yt-live-chat-legacy-paid-message-renderer #detail-text, 213 | yt-live-chat-legacy-paid-message-renderer #detail-text * { 214 | color: #ffffff !important; 215 | font-family: "Kosugi Maru","Noto Sans SC","Noto Sans TC","Noto Sans KR","Noto Sans", sans-serif; 216 | font-size: 18px !important; 217 | line-height: 18px !important; 218 | font-weight: 500 !important; 219 | } 220 | 221 | yt-formatted-string, 222 | yt-live-chat-paid-message-renderer #content, 223 | yt-live-chat-paid-message-renderer #content *, 224 | yt-live-chat-membership-item-renderer #header-subtext, 225 | yt-live-chat-membership-item-renderer #header-subtext * { 226 | color: #ffffff !important; 227 | font-family: "Kosugi Maru","Noto Sans SC","Noto Sans TC","Noto Sans KR","Noto Sans", sans-serif; 228 | font-size: 18px !important; 229 | line-height: 18px !important; 230 | font-weight: 500 !important; 231 | } 232 | 233 | yt-live-chat-paid-message-renderer, 234 | yt-live-chat-membership-item-renderer { 235 | margin: 4px 0 !important; 236 | } 237 | 238 | yt-live-chat-legacy-paid-message-renderer { 239 | background-color: #0f9d58 !important; 240 | margin: 4px 0 !important; 241 | } 242 | 243 | yt-live-chat-text-message-renderer a, 244 | yt-live-chat-legacy-paid-message-renderer a { 245 | text-decoration: none !important; 246 | } 247 | 248 | yt-live-chat-text-message-renderer[is-deleted], 249 | yt-live-chat-legacy-paid-message-renderer[is-deleted] { 250 | display: none !important; 251 | } 252 | 253 | yt-live-chat-ticker-renderer { 254 | background-color: transparent !important; 255 | box-shadow: none !important; 256 | } 257 | yt-live-chat-ticker-renderer { 258 | display: none !important; 259 | } 260 | 261 | 262 | yt-live-chat-ticker-paid-message-item-renderer, 263 | yt-live-chat-ticker-paid-message-item-renderer *, 264 | yt-live-chat-ticker-sponsor-item-renderer, 265 | yt-live-chat-ticker-sponsor-item-renderer * { 266 | color: #ffffff !important; 267 | font-family: "Kosugi Maru","Noto Sans SC","Noto Sans TC","Noto Sans KR","Noto Sans", sans-serif; 268 | font-weight: 500 !important; 269 | } 270 | 271 | yt-live-chat-mode-change-message-renderer, 272 | yt-live-chat-viewer-engagement-message-renderer, 273 | yt-live-chat-server-error-message, 274 | yt-live-chat-banner-manager, 275 | yt-live-chat-restricted-participation-renderer { 276 | display: none !important; 277 | } 278 | 279 | /* アニメーションの設定 */ 280 | 281 | 282 | /* チャット欄をすごく小さくした時に表示を崩れないようにする */ 283 | 284 | 285 | -------------------------------------------------------------------------------- /OBS/kubenews.json: -------------------------------------------------------------------------------- 1 | { 2 | "DesktopAudioDevice1": { 3 | "balance": 0.5, 4 | "deinterlace_field_order": 0, 5 | "deinterlace_mode": 0, 6 | "enabled": true, 7 | "flags": 0, 8 | "hotkeys": { 9 | "libobs.mute": [], 10 | "libobs.push-to-mute": [], 11 | "libobs.push-to-talk": [], 12 | "libobs.unmute": [] 13 | }, 14 | "id": "wasapi_output_capture", 15 | "mixers": 255, 16 | "monitoring_type": 0, 17 | "muted": false, 18 | "name": "デスクトップ音声", 19 | "prev_ver": 436207618, 20 | "private_settings": {}, 21 | "push-to-mute": false, 22 | "push-to-mute-delay": 0, 23 | "push-to-talk": false, 24 | "push-to-talk-delay": 0, 25 | "settings": { 26 | "device_id": "default" 27 | }, 28 | "sync": 0, 29 | "versioned_id": "wasapi_output_capture", 30 | "volume": 0.0 31 | }, 32 | "current_program_scene": "配信画面", 33 | "current_scene": "配信画面", 34 | "current_transition": "フェード", 35 | "groups": [ 36 | { 37 | "balance": 0.5, 38 | "deinterlace_field_order": 0, 39 | "deinterlace_mode": 0, 40 | "enabled": true, 41 | "flags": 0, 42 | "hotkeys": { 43 | "libobs.hide_scene_item.Youtube Live Chat": [], 44 | "libobs.hide_scene_item.message": [], 45 | "libobs.hide_scene_item.チャンネル登録通知": [], 46 | "libobs.hide_scene_item.ハッシュタグ": [], 47 | "libobs.show_scene_item.Youtube Live Chat": [], 48 | "libobs.show_scene_item.message": [], 49 | "libobs.show_scene_item.チャンネル登録通知": [], 50 | "libobs.show_scene_item.ハッシュタグ": [] 51 | }, 52 | "id": "group", 53 | "mixers": 0, 54 | "monitoring_type": 0, 55 | "muted": false, 56 | "name": "widget", 57 | "prev_ver": 436207618, 58 | "private_settings": {}, 59 | "push-to-mute": false, 60 | "push-to-mute-delay": 0, 61 | "push-to-talk": false, 62 | "push-to-talk-delay": 0, 63 | "settings": { 64 | "custom_size": true, 65 | "cx": 1920, 66 | "cy": 687, 67 | "id_counter": 0, 68 | "items": [ 69 | { 70 | "align": 5, 71 | "bounds": { 72 | "x": 0.0, 73 | "y": 0.0 74 | }, 75 | "bounds_align": 0, 76 | "bounds_type": 0, 77 | "crop_bottom": 0, 78 | "crop_left": 0, 79 | "crop_right": 0, 80 | "crop_top": 0, 81 | "group_item_backup": false, 82 | "id": 12, 83 | "locked": false, 84 | "name": "Youtube Live Chat", 85 | "pos": { 86 | "x": 1549.875, 87 | "y": 0.0 88 | }, 89 | "private_settings": {}, 90 | "rot": 0.0, 91 | "scale": { 92 | "x": 1.0575000047683716, 93 | "y": 1.0569230318069458 94 | }, 95 | "scale_filter": "disable", 96 | "visible": true 97 | }, 98 | { 99 | "align": 5, 100 | "bounds": { 101 | "x": 0.0, 102 | "y": 0.0 103 | }, 104 | "bounds_align": 0, 105 | "bounds_type": 0, 106 | "crop_bottom": 0, 107 | "crop_left": 0, 108 | "crop_right": 0, 109 | "crop_top": 0, 110 | "group_item_backup": false, 111 | "id": 18, 112 | "locked": false, 113 | "name": "ハッシュタグ", 114 | "pos": { 115 | "x": 0.0, 116 | "y": 640.0 117 | }, 118 | "private_settings": {}, 119 | "rot": 0.0, 120 | "scale": { 121 | "x": 0.45908272266387939, 122 | "y": 0.4563106894493103 123 | }, 124 | "scale_filter": "disable", 125 | "visible": true 126 | }, 127 | { 128 | "align": 5, 129 | "bounds": { 130 | "x": 0.0, 131 | "y": 0.0 132 | }, 133 | "bounds_align": 0, 134 | "bounds_type": 0, 135 | "crop_bottom": 0, 136 | "crop_left": 0, 137 | "crop_right": 0, 138 | "crop_top": 0, 139 | "group_item_backup": false, 140 | "id": 20, 141 | "locked": false, 142 | "name": "message", 143 | "pos": { 144 | "x": 370.0, 145 | "y": 639.0 146 | }, 147 | "private_settings": {}, 148 | "rot": 0.0, 149 | "scale": { 150 | "x": 0.45730769634246826, 151 | "y": 0.45714285969734192 152 | }, 153 | "scale_filter": "disable", 154 | "visible": true 155 | }, 156 | { 157 | "align": 5, 158 | "bounds": { 159 | "x": 0.0, 160 | "y": 0.0 161 | }, 162 | "bounds_align": 0, 163 | "bounds_type": 0, 164 | "crop_bottom": 0, 165 | "crop_left": 0, 166 | "crop_right": 0, 167 | "crop_top": 0, 168 | "group_item_backup": false, 169 | "id": 21, 170 | "locked": false, 171 | "name": "チャンネル登録通知", 172 | "pos": { 173 | "x": 0.0, 174 | "y": 441.0 175 | }, 176 | "private_settings": {}, 177 | "rot": 0.0, 178 | "scale": { 179 | "x": 0.33000001311302185, 180 | "y": 0.33000001311302185 181 | }, 182 | "scale_filter": "disable", 183 | "visible": true 184 | } 185 | ] 186 | }, 187 | "sync": 0, 188 | "versioned_id": "group", 189 | "volume": 1.0 190 | }, 191 | { 192 | "balance": 0.5, 193 | "deinterlace_field_order": 0, 194 | "deinterlace_mode": 0, 195 | "enabled": true, 196 | "flags": 0, 197 | "hotkeys": { 198 | "libobs.hide_scene_item.音声入力キャプチャ": [], 199 | "libobs.hide_scene_item.音声出力キャプチャ": [], 200 | "libobs.show_scene_item.音声入力キャプチャ": [], 201 | "libobs.show_scene_item.音声出力キャプチャ": [] 202 | }, 203 | "id": "group", 204 | "mixers": 0, 205 | "monitoring_type": 0, 206 | "muted": false, 207 | "name": "音声", 208 | "prev_ver": 436207618, 209 | "private_settings": {}, 210 | "push-to-mute": false, 211 | "push-to-mute-delay": 0, 212 | "push-to-talk": false, 213 | "push-to-talk-delay": 0, 214 | "settings": { 215 | "custom_size": true, 216 | "cx": 0, 217 | "cy": 0, 218 | "id_counter": 0, 219 | "items": [ 220 | { 221 | "align": 5, 222 | "bounds": { 223 | "x": 0.0, 224 | "y": 0.0 225 | }, 226 | "bounds_align": 0, 227 | "bounds_type": 0, 228 | "crop_bottom": 0, 229 | "crop_left": 0, 230 | "crop_right": 0, 231 | "crop_top": 0, 232 | "group_item_backup": false, 233 | "id": 7, 234 | "locked": false, 235 | "name": "音声入力キャプチャ", 236 | "pos": { 237 | "x": 0.0, 238 | "y": 0.0 239 | }, 240 | "private_settings": {}, 241 | "rot": 0.0, 242 | "scale": { 243 | "x": 1.0, 244 | "y": 1.0 245 | }, 246 | "scale_filter": "disable", 247 | "visible": false 248 | }, 249 | { 250 | "align": 5, 251 | "bounds": { 252 | "x": 0.0, 253 | "y": 0.0 254 | }, 255 | "bounds_align": 0, 256 | "bounds_type": 0, 257 | "crop_bottom": 0, 258 | "crop_left": 0, 259 | "crop_right": 0, 260 | "crop_top": 0, 261 | "group_item_backup": false, 262 | "id": 8, 263 | "locked": false, 264 | "name": "音声出力キャプチャ", 265 | "pos": { 266 | "x": 0.0, 267 | "y": 0.0 268 | }, 269 | "private_settings": {}, 270 | "rot": 0.0, 271 | "scale": { 272 | "x": 1.0, 273 | "y": 1.0 274 | }, 275 | "scale_filter": "disable", 276 | "visible": true 277 | } 278 | ] 279 | }, 280 | "sync": 0, 281 | "versioned_id": "group", 282 | "volume": 1.0 283 | } 284 | ], 285 | "modules": { 286 | "auto-scene-switcher": { 287 | "active": false, 288 | "interval": 300, 289 | "non_matching_scene": "", 290 | "switch_if_not_matching": false, 291 | "switches": [] 292 | }, 293 | "captions": { 294 | "enabled": false, 295 | "lang_id": 1041, 296 | "provider": "mssapi", 297 | "source": "" 298 | }, 299 | "output-timer": { 300 | "autoStartRecordTimer": false, 301 | "autoStartStreamTimer": false, 302 | "pauseRecordTimer": true, 303 | "recordTimerHours": 0, 304 | "recordTimerMinutes": 0, 305 | "recordTimerSeconds": 30, 306 | "streamTimerHours": 0, 307 | "streamTimerMinutes": 0, 308 | "streamTimerSeconds": 30 309 | }, 310 | "scripts-tool": [] 311 | }, 312 | "name": "kubenews", 313 | "preview_locked": false, 314 | "quick_transitions": [ 315 | { 316 | "duration": 300, 317 | "fade_to_black": false, 318 | "hotkeys": [], 319 | "id": 1, 320 | "name": "カット" 321 | }, 322 | { 323 | "duration": 300, 324 | "fade_to_black": false, 325 | "hotkeys": [], 326 | "id": 2, 327 | "name": "フェード" 328 | }, 329 | { 330 | "duration": 300, 331 | "fade_to_black": true, 332 | "hotkeys": [], 333 | "id": 3, 334 | "name": "フェード" 335 | } 336 | ], 337 | "saved_projectors": [], 338 | "scaling_enabled": false, 339 | "scaling_level": 0, 340 | "scaling_off_x": 0.0, 341 | "scaling_off_y": 0.0, 342 | "scene_order": [ 343 | { 344 | "name": "サムネイル" 345 | }, 346 | { 347 | "name": "配信画面" 348 | } 349 | ], 350 | "sources": [ 351 | { 352 | "balance": 0.5, 353 | "deinterlace_field_order": 0, 354 | "deinterlace_mode": 0, 355 | "enabled": true, 356 | "flags": 0, 357 | "hotkeys": {}, 358 | "id": "monitor_capture", 359 | "mixers": 0, 360 | "monitoring_type": 0, 361 | "muted": false, 362 | "name": "画面キャプチャ", 363 | "prev_ver": 436207618, 364 | "private_settings": {}, 365 | "push-to-mute": false, 366 | "push-to-mute-delay": 0, 367 | "push-to-talk": false, 368 | "push-to-talk-delay": 0, 369 | "settings": { 370 | "monitor": 1 371 | }, 372 | "sync": 0, 373 | "versioned_id": "monitor_capture", 374 | "volume": 1.0 375 | }, 376 | { 377 | "balance": 0.5, 378 | "deinterlace_field_order": 0, 379 | "deinterlace_mode": 0, 380 | "enabled": true, 381 | "flags": 0, 382 | "hotkeys": { 383 | "OBSBasic.SelectScene": [], 384 | "libobs.hide_scene_item.画像": [], 385 | "libobs.show_scene_item.画像": [] 386 | }, 387 | "id": "scene", 388 | "mixers": 0, 389 | "monitoring_type": 0, 390 | "muted": false, 391 | "name": "サムネイル", 392 | "prev_ver": 436207618, 393 | "private_settings": {}, 394 | "push-to-mute": false, 395 | "push-to-mute-delay": 0, 396 | "push-to-talk": false, 397 | "push-to-talk-delay": 0, 398 | "settings": { 399 | "custom_size": false, 400 | "id_counter": 1, 401 | "items": [ 402 | { 403 | "align": 5, 404 | "bounds": { 405 | "x": 0.0, 406 | "y": 0.0 407 | }, 408 | "bounds_align": 0, 409 | "bounds_type": 0, 410 | "crop_bottom": 0, 411 | "crop_left": 0, 412 | "crop_right": 0, 413 | "crop_top": 0, 414 | "group_item_backup": false, 415 | "id": 1, 416 | "locked": false, 417 | "name": "画像", 418 | "pos": { 419 | "x": 0.0, 420 | "y": 0.0 421 | }, 422 | "private_settings": {}, 423 | "rot": 0.0, 424 | "scale": { 425 | "x": 1.5, 426 | "y": 1.5 427 | }, 428 | "scale_filter": "disable", 429 | "visible": true 430 | } 431 | ] 432 | }, 433 | "sync": 0, 434 | "versioned_id": "scene", 435 | "volume": 1.0 436 | }, 437 | { 438 | "balance": 0.5, 439 | "deinterlace_field_order": 0, 440 | "deinterlace_mode": 0, 441 | "enabled": true, 442 | "flags": 0, 443 | "hotkeys": {}, 444 | "id": "image_source", 445 | "mixers": 0, 446 | "monitoring_type": 0, 447 | "muted": false, 448 | "name": "画像", 449 | "prev_ver": 436207618, 450 | "private_settings": {}, 451 | "push-to-mute": false, 452 | "push-to-mute-delay": 0, 453 | "push-to-talk": false, 454 | "push-to-talk-delay": 0, 455 | "settings": { 456 | "file": "" 457 | }, 458 | "sync": 0, 459 | "versioned_id": "image_source", 460 | "volume": 1.0 461 | }, 462 | { 463 | "balance": 0.5, 464 | "deinterlace_field_order": 0, 465 | "deinterlace_mode": 0, 466 | "enabled": true, 467 | "flags": 0, 468 | "hotkeys": { 469 | "OBSBasic.SelectScene": [], 470 | "libobs.hide_scene_item.widget": [], 471 | "libobs.hide_scene_item.画面キャプチャ": [], 472 | "libobs.hide_scene_item.背景": [], 473 | "libobs.hide_scene_item.音声": [], 474 | "libobs.show_scene_item.widget": [], 475 | "libobs.show_scene_item.画面キャプチャ": [], 476 | "libobs.show_scene_item.背景": [], 477 | "libobs.show_scene_item.音声": [] 478 | }, 479 | "id": "scene", 480 | "mixers": 0, 481 | "monitoring_type": 0, 482 | "muted": false, 483 | "name": "配信画面", 484 | "prev_ver": 436207618, 485 | "private_settings": {}, 486 | "push-to-mute": false, 487 | "push-to-mute-delay": 0, 488 | "push-to-talk": false, 489 | "push-to-talk-delay": 0, 490 | "settings": { 491 | "custom_size": false, 492 | "id_counter": 23, 493 | "items": [ 494 | { 495 | "align": 5, 496 | "bounds": { 497 | "x": 0.0, 498 | "y": 0.0 499 | }, 500 | "bounds_align": 0, 501 | "bounds_type": 0, 502 | "crop_bottom": 0, 503 | "crop_left": 0, 504 | "crop_right": 0, 505 | "crop_top": 0, 506 | "group_item_backup": true, 507 | "id": 7, 508 | "locked": false, 509 | "name": "音声入力キャプチャ", 510 | "pos": { 511 | "x": 0.0, 512 | "y": 0.0 513 | }, 514 | "private_settings": {}, 515 | "rot": 0.0, 516 | "scale": { 517 | "x": 1.0, 518 | "y": 1.0 519 | }, 520 | "scale_filter": "disable", 521 | "visible": false 522 | }, 523 | { 524 | "align": 5, 525 | "bounds": { 526 | "x": 0.0, 527 | "y": 0.0 528 | }, 529 | "bounds_align": 0, 530 | "bounds_type": 0, 531 | "crop_bottom": 0, 532 | "crop_left": 0, 533 | "crop_right": 0, 534 | "crop_top": 0, 535 | "group_item_backup": true, 536 | "id": 8, 537 | "locked": false, 538 | "name": "音声出力キャプチャ", 539 | "pos": { 540 | "x": 0.0, 541 | "y": 0.0 542 | }, 543 | "private_settings": {}, 544 | "rot": 0.0, 545 | "scale": { 546 | "x": 1.0, 547 | "y": 1.0 548 | }, 549 | "scale_filter": "disable", 550 | "visible": true 551 | }, 552 | { 553 | "align": 5, 554 | "bounds": { 555 | "x": 0.0, 556 | "y": 0.0 557 | }, 558 | "bounds_align": 0, 559 | "bounds_type": 0, 560 | "crop_bottom": 0, 561 | "crop_left": 0, 562 | "crop_right": 0, 563 | "crop_top": 0, 564 | "group_item_backup": false, 565 | "id": 23, 566 | "locked": false, 567 | "name": "音声", 568 | "pos": { 569 | "x": 0.0, 570 | "y": 0.0 571 | }, 572 | "private_settings": {}, 573 | "rot": 0.0, 574 | "scale": { 575 | "x": 1.0, 576 | "y": 1.0 577 | }, 578 | "scale_filter": "disable", 579 | "visible": true 580 | }, 581 | { 582 | "align": 5, 583 | "bounds": { 584 | "x": 0.0, 585 | "y": 0.0 586 | }, 587 | "bounds_align": 0, 588 | "bounds_type": 0, 589 | "crop_bottom": 0, 590 | "crop_left": 0, 591 | "crop_right": 0, 592 | "crop_top": 0, 593 | "group_item_backup": false, 594 | "id": 17, 595 | "locked": false, 596 | "name": "背景", 597 | "pos": { 598 | "x": 0.0, 599 | "y": 0.0 600 | }, 601 | "private_settings": {}, 602 | "rot": 0.0, 603 | "scale": { 604 | "x": 1.5, 605 | "y": 1.5 606 | }, 607 | "scale_filter": "disable", 608 | "visible": true 609 | }, 610 | { 611 | "align": 5, 612 | "bounds": { 613 | "x": 0.0, 614 | "y": 0.0 615 | }, 616 | "bounds_align": 0, 617 | "bounds_type": 0, 618 | "crop_bottom": 0, 619 | "crop_left": 0, 620 | "crop_right": 0, 621 | "crop_top": 0, 622 | "group_item_backup": false, 623 | "id": 16, 624 | "locked": false, 625 | "name": "画面キャプチャ", 626 | "pos": { 627 | "x": 0.0, 628 | "y": 0.0 629 | }, 630 | "private_settings": {}, 631 | "rot": 0.0, 632 | "scale": { 633 | "x": 1.0, 634 | "y": 1.0 635 | }, 636 | "scale_filter": "disable", 637 | "visible": true 638 | }, 639 | { 640 | "align": 5, 641 | "bounds": { 642 | "x": 0.0, 643 | "y": 0.0 644 | }, 645 | "bounds_align": 0, 646 | "bounds_type": 0, 647 | "crop_bottom": 0, 648 | "crop_left": 0, 649 | "crop_right": 0, 650 | "crop_top": 0, 651 | "group_item_backup": true, 652 | "id": 12, 653 | "locked": false, 654 | "name": "Youtube Live Chat", 655 | "pos": { 656 | "x": 1549.875, 657 | "y": 393.0 658 | }, 659 | "private_settings": {}, 660 | "rot": 0.0, 661 | "scale": { 662 | "x": 1.0575000047683716, 663 | "y": 1.0569230318069458 664 | }, 665 | "scale_filter": "disable", 666 | "visible": true 667 | }, 668 | { 669 | "align": 5, 670 | "bounds": { 671 | "x": 0.0, 672 | "y": 0.0 673 | }, 674 | "bounds_align": 0, 675 | "bounds_type": 0, 676 | "crop_bottom": 0, 677 | "crop_left": 0, 678 | "crop_right": 0, 679 | "crop_top": 0, 680 | "group_item_backup": true, 681 | "id": 18, 682 | "locked": false, 683 | "name": "ハッシュタグ", 684 | "pos": { 685 | "x": 0.0, 686 | "y": 1033.0 687 | }, 688 | "private_settings": {}, 689 | "rot": 0.0, 690 | "scale": { 691 | "x": 0.45908272266387939, 692 | "y": 0.4563106894493103 693 | }, 694 | "scale_filter": "disable", 695 | "visible": true 696 | }, 697 | { 698 | "align": 5, 699 | "bounds": { 700 | "x": 0.0, 701 | "y": 0.0 702 | }, 703 | "bounds_align": 0, 704 | "bounds_type": 0, 705 | "crop_bottom": 0, 706 | "crop_left": 0, 707 | "crop_right": 0, 708 | "crop_top": 0, 709 | "group_item_backup": true, 710 | "id": 20, 711 | "locked": false, 712 | "name": "message", 713 | "pos": { 714 | "x": 370.0, 715 | "y": 1032.0 716 | }, 717 | "private_settings": {}, 718 | "rot": 0.0, 719 | "scale": { 720 | "x": 0.45730769634246826, 721 | "y": 0.45714285969734192 722 | }, 723 | "scale_filter": "disable", 724 | "visible": true 725 | }, 726 | { 727 | "align": 5, 728 | "bounds": { 729 | "x": 0.0, 730 | "y": 0.0 731 | }, 732 | "bounds_align": 0, 733 | "bounds_type": 0, 734 | "crop_bottom": 0, 735 | "crop_left": 0, 736 | "crop_right": 0, 737 | "crop_top": 0, 738 | "group_item_backup": true, 739 | "id": 21, 740 | "locked": false, 741 | "name": "チャンネル登録通知", 742 | "pos": { 743 | "x": 0.0, 744 | "y": 834.0 745 | }, 746 | "private_settings": {}, 747 | "rot": 0.0, 748 | "scale": { 749 | "x": 0.33000001311302185, 750 | "y": 0.33000001311302185 751 | }, 752 | "scale_filter": "disable", 753 | "visible": true 754 | }, 755 | { 756 | "align": 5, 757 | "bounds": { 758 | "x": 0.0, 759 | "y": 0.0 760 | }, 761 | "bounds_align": 0, 762 | "bounds_type": 0, 763 | "crop_bottom": 0, 764 | "crop_left": 0, 765 | "crop_right": 0, 766 | "crop_top": 0, 767 | "group_item_backup": false, 768 | "id": 22, 769 | "locked": false, 770 | "name": "widget", 771 | "pos": { 772 | "x": 0.0, 773 | "y": 393.0 774 | }, 775 | "private_settings": {}, 776 | "rot": 0.0, 777 | "scale": { 778 | "x": 1.0, 779 | "y": 1.0 780 | }, 781 | "scale_filter": "disable", 782 | "visible": true 783 | } 784 | ] 785 | }, 786 | "sync": 0, 787 | "versioned_id": "scene", 788 | "volume": 1.0 789 | }, 790 | { 791 | "balance": 0.5, 792 | "deinterlace_field_order": 0, 793 | "deinterlace_mode": 0, 794 | "enabled": true, 795 | "flags": 0, 796 | "hotkeys": { 797 | "libobs.mute": [], 798 | "libobs.push-to-mute": [], 799 | "libobs.push-to-talk": [], 800 | "libobs.unmute": [] 801 | }, 802 | "id": "wasapi_input_capture", 803 | "mixers": 255, 804 | "monitoring_type": 0, 805 | "muted": false, 806 | "name": "音声入力キャプチャ", 807 | "prev_ver": 436207618, 808 | "private_settings": {}, 809 | "push-to-mute": false, 810 | "push-to-mute-delay": 0, 811 | "push-to-talk": false, 812 | "push-to-talk-delay": 0, 813 | "settings": { 814 | "device_id": "{0.0.1.00000000}.{6f9ad796-7fa0-4f98-b515-28ebbd10da83}" 815 | }, 816 | "sync": 0, 817 | "versioned_id": "wasapi_input_capture", 818 | "volume": 1.0 819 | }, 820 | { 821 | "balance": 0.5, 822 | "deinterlace_field_order": 0, 823 | "deinterlace_mode": 0, 824 | "enabled": true, 825 | "flags": 0, 826 | "hotkeys": { 827 | "libobs.mute": [], 828 | "libobs.push-to-mute": [], 829 | "libobs.push-to-talk": [], 830 | "libobs.unmute": [] 831 | }, 832 | "id": "wasapi_output_capture", 833 | "mixers": 255, 834 | "monitoring_type": 0, 835 | "muted": false, 836 | "name": "音声出力キャプチャ", 837 | "prev_ver": 436207618, 838 | "private_settings": {}, 839 | "push-to-mute": false, 840 | "push-to-mute-delay": 0, 841 | "push-to-talk": false, 842 | "push-to-talk-delay": 0, 843 | "settings": { 844 | "device_id": "default" 845 | }, 846 | "sync": 0, 847 | "versioned_id": "wasapi_output_capture", 848 | "volume": 0.0 849 | }, 850 | { 851 | "balance": 0.5, 852 | "deinterlace_field_order": 0, 853 | "deinterlace_mode": 0, 854 | "enabled": true, 855 | "flags": 0, 856 | "hotkeys": { 857 | "libobs.mute": [], 858 | "libobs.push-to-mute": [], 859 | "libobs.push-to-talk": [], 860 | "libobs.unmute": [] 861 | }, 862 | "id": "browser_source", 863 | "mixers": 255, 864 | "monitoring_type": 0, 865 | "muted": false, 866 | "name": "Youtube Live Chat", 867 | "prev_ver": 436207618, 868 | "private_settings": {}, 869 | "push-to-mute": false, 870 | "push-to-mute-delay": 0, 871 | "push-to-talk": false, 872 | "push-to-talk-delay": 0, 873 | "settings": { 874 | "css": "/**********************************************************************\n * CSS生成日 : 2020/11/23 23:46:12\n * バージョン: Chat v2.0 Style Generator 日本語版 2020.05.31\n **********************************************************************/\n\n@import url(\"https://fonts.googleapis.com/css2?family=Kosugi+Maru&family=Noto+Sans+SC&family=Noto+Sans+TC&family=Noto+Sans+KR&family=Noto+Sans&display=swap\");\n\n/* Background colors - 背景色 */\nbody {\n overflow: hidden;\n background-color: rgba(0,0,0,0.12);\n}\n/* Transparent background - 背景透過 */\nyt-live-chat-renderer {\n background-color: transparent !important;\n}\nyt-live-chat-text-message-renderer,\nyt-live-chat-text-message-renderer[is-highlighted] {\n background-color: transparent !important;\n}\n\nyt-live-chat-text-message-renderer[author-type=\"owner\"],\nyt-live-chat-text-message-renderer[author-type=\"owner\"][is-highlighted] {\n background-color: transparent !important;\n}\n\nyt-live-chat-text-message-renderer[author-type=\"moderator\"],\nyt-live-chat-text-message-renderer[author-type=\"moderator\"][is-highlighted] {\n background-color: transparent !important;\n}\n\nyt-live-chat-text-message-renderer[author-type=\"member\"],\nyt-live-chat-text-message-renderer[author-type=\"member\"][is-highlighted] {\n background-color: transparent !important;\n}\n\n\nyt-live-chat-author-chip #author-name {\n background-color: transparent !important;\n}\n/* Outlines - 縁取り */\nyt-live-chat-renderer * {\n text-shadow: -2px -2px #000000,-2px -1px #000000,-2px 0px #000000,-2px 1px #000000,-2px 2px #000000,-1px -2px #000000,-1px -1px #000000,-1px 0px #000000,-1px 1px #000000,-1px 2px #000000,0px -2px #000000,0px -1px #000000,0px 0px #000000,0px 1px #000000,0px 2px #000000,1px -2px #000000,1px -1px #000000,1px 0px #000000,1px 1px #000000,1px 2px #000000,2px -2px #000000,2px -1px #000000,2px 0px #000000,2px 1px #000000,2px 2px #000000;\n font-family: \"Kosugi Maru\",\"Noto Sans SC\",\"Noto Sans TC\",\"Noto Sans KR\",\"Noto Sans\", sans-serif;\n font-size: 28px !important;\n line-height: 30px !important;\n}\n\nyt-live-chat-text-message-renderer #content,\nyt-live-chat-legacy-paid-message-renderer #content {\n overflow: initial !important;\n}\n\n/* Hide scrollbar - スクロールバー非表示 */\nyt-live-chat-item-list-renderer #items{\n overflow: hidden !important;\n}\n\nyt-live-chat-item-list-renderer #item-scroller{\n overflow: hidden !important;\n}\n\n/* Hide header and input - ヘッダーと入力欄非表示 */\n#panel-pages,\nyt-live-chat-header-renderer,\nyt-live-chat-message-input-renderer {\n display: none !important;\n}\n\n/* Reduce side padding - 余白設定 */\nyt-live-chat-text-message-renderer {\n padding-left: 4px !important;\n padding-right: 4px !important;\n}\n\nyt-live-chat-membership-item-renderer,\nyt-live-chat-legacy-paid-message-renderer,\nyt-live-chat-paid-sticker-renderer,\nyt-live-chat-paid-message-renderer {\n padding-left: 4px !important;\n padding-right: 4px !important;\n}\n\n/* Avatars - チャンネルアイコン */\nyt-img-shadow #img,\nyt-live-chat-text-message-renderer #author-photo,\nyt-live-chat-paid-message-renderer #author-photo,\nyt-live-chat-membership-message-renderer #author-photo,\nyt-live-chat-legacy-paid-message-renderer #author-photo {\n display: none !important;\n width: 24px !important;\n height: 24px !important;\n border-radius: 24px !important;\n margin-right: 6px !important;\n}\n\n/* Member Badge - モデレーター・メンバーのバッジ(アイコン)サイズ */\nimg.yt-live-chat-author-badge-renderer,\ndiv #image,\nsvg.yt-icon {\n width: 20px !important;\n height: 20px !important;\n}\n\n/* Emoji - 絵文字・メンバー用スタンプ */\n#message > img ,\nimg.yt-live-chat-text-message-renderer {\n width: 24px !important;\n height: 24px !important;\n}\n\n/* Hide badges - バッジ非表示. */\nyt-live-chat-text-message-renderer #author-badges,\nyt-live-chat-text-message-renderer #chat-badges {\n\n vertical-align: text-top !important;\n}\n\n/* Timestamps - 時刻表示 */\nyt-live-chat-text-message-renderer #timestamp {\n display: none !important;\n color: #999999 !important;\n font-family: \"Kosugi Maru\",\"Noto Sans SC\",\"Noto Sans TC\",\"Noto Sans KR\",\"Noto Sans\", sans-serif;\n font-size: 16px !important;\n line-height: 16px !important;\n font-weight: 500 !important;\n}\n\n/* Badges - 名前・バッジの色 */\nyt-live-chat-text-message-renderer #author-name[type=\"owner\"],\nyt-live-chat-text-message-renderer #author-name.owner,\nyt-live-chat-text-message-renderer yt-live-chat-author-badge-renderer[type=\"owner\"] {\n color: #ffd600 !important;\n}\n\nyt-live-chat-text-message-renderer #author-name[type=\"moderator\"],\nyt-live-chat-text-message-renderer #author-name.moderator,\nyt-live-chat-text-message-renderer yt-live-chat-author-badge-renderer[type=\"moderator\"] {\n color: #5e84f1 !important;\n}\n\nyt-live-chat-text-message-renderer #author-name[type=\"member\"],\nyt-live-chat-text-message-renderer #author-name.member,\nyt-live-chat-text-message-renderer yt-live-chat-author-badge-renderer[type=\"member\"] {\n color: #0f9d58 !important;\n}\n\n/* Channel names - チャンネル名 */\nyt-live-chat-text-message-renderer #author-name {\n color: #5e86f1 !important;\n font-family: \"Kosugi Maru\",\"Noto Sans SC\",\"Noto Sans TC\",\"Noto Sans KR\",\"Noto Sans\", sans-serif;\n font-size: 22px !important;\n line-height: 22px !important;\n font-weight: 700 !important;\n}\n\n/* チャンネル名を隠す */\nyt-live-chat-author-chip {\n\n}\n\n/* チャンネル名の余白削除 */\nyt-live-chat-author-chip[is-highlighted] #author-name.yt-live-chat-author-chip,\nyt-live-chat-author-chip {\n padding: 0px 0px;\n}\n\n\nyt-live-chat-text-message-renderer #author-name::after {\n content: \":\";\n margin-left: 2px;\n}\n\n/* Messages - チャット本文 */\nyt-live-chat-text-message-renderer #message,\nyt-live-chat-text-message-renderer #message * {\n color: #ffffff !important;\n font-family: \"Kosugi Maru\",\"Noto Sans SC\",\"Noto Sans TC\",\"Noto Sans KR\",\"Noto Sans\", sans-serif;\n font-size: 28px !important;\n line-height: 30px !important;\n font-weight: 500 !important;\n}\n\nyt-live-chat-text-message-renderer #message {\n display: block !important;\n}\n\n/* SuperChat/Fan Funding Messages - スーパーチャットメッセージ */\nyt-live-chat-paid-message-renderer #author-name,\nyt-live-chat-paid-message-renderer #author-name *,\nyt-live-chat-paid-sticker-renderer #author-name,\nyt-live-chat-paid-sticker-renderer #author-name *,\nyt-live-chat-membership-item-renderer #author-name,\nyt-live-chat-membership-item-renderer #author-name *,\nyt-live-chat-legacy-paid-message-renderer #event-text,\nyt-live-chat-legacy-paid-message-renderer #event-text * {\n color: #ffffff !important;\n font-family: \"Kosugi Maru\",\"Noto Sans SC\",\"Noto Sans TC\",\"Noto Sans KR\",\"Noto Sans\", sans-serif;\n font-size: 20px !important;\n line-height: 20px !important;\n font-weight: 700 !important;\n}\n\nyt-live-chat-paid-message-renderer #purchase-amount,\nyt-live-chat-paid-message-renderer #purchase-amount *,\nyt-live-chat-paid-sticker-renderer #purchase-amount-chip,\nyt-live-chat-paid-sticker-renderer #purchase-amount-chip *,\nyt-live-chat-membership-item-renderer #header-subtext,\nyt-live-chat-membership-item-renderer #header-subtext *,\nyt-live-chat-donation-announcement-renderer #text,\nyt-live-chat-donation-announcement-renderer #text *,\nyt-live-chat-legacy-paid-message-renderer #detail-text,\nyt-live-chat-legacy-paid-message-renderer #detail-text * {\n color: #ffffff !important;\n font-family: \"Kosugi Maru\",\"Noto Sans SC\",\"Noto Sans TC\",\"Noto Sans KR\",\"Noto Sans\", sans-serif;\n font-size: 18px !important;\n line-height: 18px !important;\n font-weight: 500 !important;\n}\n\nyt-formatted-string,\nyt-live-chat-paid-message-renderer #content,\nyt-live-chat-paid-message-renderer #content *,\nyt-live-chat-membership-item-renderer #header-subtext,\nyt-live-chat-membership-item-renderer #header-subtext * {\n color: #ffffff !important;\n font-family: \"Kosugi Maru\",\"Noto Sans SC\",\"Noto Sans TC\",\"Noto Sans KR\",\"Noto Sans\", sans-serif;\n font-size: 18px !important;\n line-height: 18px !important;\n font-weight: 500 !important;\n}\n\nyt-live-chat-paid-message-renderer,\nyt-live-chat-membership-item-renderer {\n margin: 4px 0 !important;\n}\n\nyt-live-chat-legacy-paid-message-renderer {\n background-color: #0f9d58 !important;\n margin: 4px 0 !important;\n}\n\nyt-live-chat-text-message-renderer a,\nyt-live-chat-legacy-paid-message-renderer a {\n text-decoration: none !important;\n}\n\nyt-live-chat-text-message-renderer[is-deleted],\nyt-live-chat-legacy-paid-message-renderer[is-deleted] {\n display: none !important;\n}\n\nyt-live-chat-ticker-renderer {\n background-color: transparent !important;\n box-shadow: none !important;\n}\nyt-live-chat-ticker-renderer {\n display: none !important;\n}\n\n\nyt-live-chat-ticker-paid-message-item-renderer,\nyt-live-chat-ticker-paid-message-item-renderer *,\nyt-live-chat-ticker-sponsor-item-renderer,\nyt-live-chat-ticker-sponsor-item-renderer * {\n color: #ffffff !important;\n font-family: \"Kosugi Maru\",\"Noto Sans SC\",\"Noto Sans TC\",\"Noto Sans KR\",\"Noto Sans\", sans-serif;\n font-weight: 500 !important;\n}\n\nyt-live-chat-mode-change-message-renderer, \nyt-live-chat-viewer-engagement-message-renderer, \nyt-live-chat-server-error-message, \nyt-live-chat-banner-manager,\nyt-live-chat-restricted-participation-renderer {\n display: none !important;\n}\n\n/* アニメーションの設定 */\n\n\n/* チャット欄をすごく小さくした時に表示を崩れないようにする */\n\n\n", 875 | "height": 650, 876 | "url": "", 877 | "width": 350 878 | }, 879 | "sync": 0, 880 | "versioned_id": "browser_source", 881 | "volume": 1.0 882 | }, 883 | { 884 | "balance": 0.5, 885 | "deinterlace_field_order": 0, 886 | "deinterlace_mode": 0, 887 | "enabled": true, 888 | "flags": 0, 889 | "hotkeys": {}, 890 | "id": "image_source", 891 | "mixers": 0, 892 | "monitoring_type": 0, 893 | "muted": false, 894 | "name": "背景", 895 | "prev_ver": 436207618, 896 | "private_settings": {}, 897 | "push-to-mute": false, 898 | "push-to-mute-delay": 0, 899 | "push-to-talk": false, 900 | "push-to-talk-delay": 0, 901 | "settings": { 902 | "file": "" 903 | }, 904 | "sync": 0, 905 | "versioned_id": "image_source", 906 | "volume": 1.0 907 | }, 908 | { 909 | "balance": 0.5, 910 | "deinterlace_field_order": 0, 911 | "deinterlace_mode": 0, 912 | "enabled": true, 913 | "flags": 0, 914 | "hotkeys": {}, 915 | "id": "image_source", 916 | "mixers": 0, 917 | "monitoring_type": 0, 918 | "muted": false, 919 | "name": "ハッシュタグ", 920 | "prev_ver": 436207618, 921 | "private_settings": {}, 922 | "push-to-mute": false, 923 | "push-to-mute-delay": 0, 924 | "push-to-talk": false, 925 | "push-to-talk-delay": 0, 926 | "settings": { 927 | "file": "" 928 | }, 929 | "sync": 0, 930 | "versioned_id": "image_source", 931 | "volume": 1.0 932 | }, 933 | { 934 | "balance": 0.5, 935 | "deinterlace_field_order": 0, 936 | "deinterlace_mode": 0, 937 | "enabled": true, 938 | "filters": [ 939 | { 940 | "balance": 0.5, 941 | "deinterlace_field_order": 0, 942 | "deinterlace_mode": 0, 943 | "enabled": true, 944 | "flags": 0, 945 | "hotkeys": {}, 946 | "id": "scroll_filter", 947 | "mixers": 0, 948 | "monitoring_type": 0, 949 | "muted": false, 950 | "name": "スクロール", 951 | "prev_ver": 436207618, 952 | "private_settings": {}, 953 | "push-to-mute": false, 954 | "push-to-mute-delay": 0, 955 | "push-to-talk": false, 956 | "push-to-talk-delay": 0, 957 | "settings": { 958 | "cx": 2450, 959 | "limit_cx": true, 960 | "speed_x": 50.0 961 | }, 962 | "sync": 0, 963 | "versioned_id": "scroll_filter", 964 | "volume": 1.0 965 | } 966 | ], 967 | "flags": 0, 968 | "hotkeys": {}, 969 | "id": "image_source", 970 | "mixers": 0, 971 | "monitoring_type": 0, 972 | "muted": false, 973 | "name": "message", 974 | "prev_ver": 436207618, 975 | "private_settings": {}, 976 | "push-to-mute": false, 977 | "push-to-mute-delay": 0, 978 | "push-to-talk": false, 979 | "push-to-talk-delay": 0, 980 | "settings": { 981 | "file": "" 982 | }, 983 | "sync": 0, 984 | "versioned_id": "image_source", 985 | "volume": 1.0 986 | }, 987 | { 988 | "balance": 0.5, 989 | "deinterlace_field_order": 0, 990 | "deinterlace_mode": 0, 991 | "enabled": true, 992 | "filters": [ 993 | { 994 | "balance": 0.5, 995 | "deinterlace_field_order": 0, 996 | "deinterlace_mode": 0, 997 | "enabled": true, 998 | "flags": 0, 999 | "hotkeys": {}, 1000 | "id": "color_filter", 1001 | "mixers": 0, 1002 | "monitoring_type": 0, 1003 | "muted": false, 1004 | "name": "色補正", 1005 | "prev_ver": 436207618, 1006 | "private_settings": {}, 1007 | "push-to-mute": false, 1008 | "push-to-mute-delay": 0, 1009 | "push-to-talk": false, 1010 | "push-to-talk-delay": 0, 1011 | "settings": {}, 1012 | "sync": 0, 1013 | "versioned_id": "color_filter", 1014 | "volume": 1.0 1015 | } 1016 | ], 1017 | "flags": 0, 1018 | "hotkeys": { 1019 | "libobs.mute": [], 1020 | "libobs.push-to-mute": [], 1021 | "libobs.push-to-talk": [], 1022 | "libobs.unmute": [] 1023 | }, 1024 | "id": "browser_source", 1025 | "mixers": 255, 1026 | "monitoring_type": 0, 1027 | "muted": false, 1028 | "name": "チャンネル登録通知", 1029 | "prev_ver": 436207618, 1030 | "private_settings": {}, 1031 | "push-to-mute": false, 1032 | "push-to-mute-delay": 0, 1033 | "push-to-talk": false, 1034 | "push-to-talk-delay": 0, 1035 | "settings": { 1036 | "url": "" 1037 | }, 1038 | "sync": 0, 1039 | "versioned_id": "browser_source", 1040 | "volume": 1.0 1041 | } 1042 | ], 1043 | "transition_duration": 600, 1044 | "transitions": [] 1045 | } 1046 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # kubenews 2 | 3 | [#kubenews](https://twitter.com/search?q=%23kubenews)のリポジトリ 4 | ネタとかその他管理用 5 | 6 | Youtube playlist: https://www.youtube.com/playlist?list=PL9CsU1X5GYXrB1Clp2c-CbVJnWTnikaMg 7 | 8 | ![](https://github.com/kubernetes-internal/kubenews/blob/main/images/kubenews-thumbnail-org.png) 9 | 10 | 参考にした配信: https://github.com/vmware-tanzu/tgik 11 | -------------------------------------------------------------------------------- /documents/README.md: -------------------------------------------------------------------------------- 1 | # documents 2 | 3 | ## 配信概要 4 | 5 | - Kubernetes/Cloud Native関連のニュースや記事について視聴者/他の配信メンバーに紹介する形式で雑談していく配信 6 | - 取り上げる記事については 7 | - 事前に結構読み込んだり調べたりした上で話すものもあれば 8 | - ちょっと面白そうだから一緒に読まない?くらいの温度感のものもあり 9 | - という感じで紹介する内容が正しいかどうかにはこだわらず 10 | - こういうのがあるらしいよ 11 | - これ気になったので他の人のコメントが欲しい 12 | - くらいの感じで配信メンバーの興味があったり配信メンバーが面白そうと思うことベースで雑談していく 13 | - なので記事紹介の配信というより、雑談配信のネタとして記事やニュースを取り上げているというのに近い 14 | 15 | 16 | ## 配信について 17 | 18 | - 基本は毎週金曜 22:00~で配信 19 | - 金曜だと参加できない人がいる場合で土曜に変更すれば全員参加できそうな場合は土曜に変更 20 | - ずらすのも難しい場合は金曜で配信参加可能なメンバーで配信する 21 | 22 | 23 | ## 雑談ネタの準備 24 | 25 | - 基本配信の2日前までにネタを用意 26 | - ネタは3人×1人3 ~ 4個用意=合計9~12くらいで収まるように調整 27 | - ネタは https://github.com/kubernetes-internal/kubenews/brob/main/episodes/XXX/README.md にまとめる形で用意する 28 | - それで被りとかあれば前日~配信前までに調整 29 | 30 | 31 | ## 配信で利用するツール 32 | 33 | 種別 | 利用するツール | 用途 34 | --- | --- | --- 35 | 配信プラットホーム | YouTube | ライブ配信/動画/ライブチャット 36 | チャンネル登録通知 | streamlabs alert box | 配信中にチャンネル登録を通知してOBSの画面に出してくれる 37 | 画面構成/配信ツール | OBS | 配信用の画面構成+Youtube Liveへの配信 38 | MTGツール | Zoom | 画面+カメラ+音声共有 39 | SNS | Twitter | #kubenews ハッシュタグ付きで感想など 40 | 雑談ネタ置き場+α+公式サイト? | Github | 雑談ネタ置き場+α+公式サイト? 41 | 42 | ## 配信周りの機器構成 43 | 44 | ![](https://github.com/kubernetes-internal/kubenews/blob/main/documents/streaming-overview.png) 45 | 46 | Google Drawing: https://docs.google.com/drawings/d/1evvAtWzqhbcgnoeR16KrIy2iZjIO7sp1TbxTmJCB_5M/edit 47 | 48 | - 配信用マシンは 49 | - OBS 50 | - Youtube Live管理 51 | - Youtube Live Chat 52 | - Zoom画面+音声共有 53 | - のみ行い、配信マシンから直接Zoomの画面共有や音声共有は行わない 54 | - 配信者含め画面共有やマイク音声などは別マシンからZoomにつないで行い、全てZoomを経由して情報を共有する 55 | 56 | ## 配信画面 57 | 58 | 実際の配信画面の例 59 | ![12311231321kubenews__1_-_YouTube](https://user-images.githubusercontent.com/2158863/99866961-fc514380-2bf8-11eb-82cb-3b5d54bb120e.png) 60 | 61 | このOBS設定については 62 | https://github.com/kubernetes-internal/kubenews/tree/main/OBS 63 | においてある 64 | 65 | YouTube LiveについてはOBSのブラウザ機能を使って表示しており 66 | http://css4obs.starfree.jp/ 67 | で生成したCSSを利用している 68 | 69 | 利用している実際のCSSは 70 | https://github.com/kubernetes-internal/kubenews/blob/main/OBS/chat.css 71 | においてある 72 | 73 | ## 配信内容 74 | 75 | 基本的にはこんな感じ 76 | 77 | 種別 | 説明 78 | --- | --- 79 | Opening | 挨拶 80 | _ | 配信の説明 81 | _ | 自己紹介 82 | _ | リアルタイム視聴のコメントはYoutube Liveコメント/感想などはTwitter #kubenews ハッシュタグ付きでツイートお願いします 83 | メインコンテンツ | https://github.com/kubernetes-internal/kubenews/tree/main/episodes で用意したネタを中心に雑談 84 | Ending | 来週も同じ時間にやるので良ければ見てください 85 | _ | 良ければ高評価、チャンネル登録お願いします 86 | _ | 締めの挨拶 87 | 88 | 89 | ## Youtube Live設定 90 | 91 | ### 配信の説明欄 92 | 93 | ``` 94 | #kubenews 95 | https://twitter.com/search?q=%23kubenews 96 | 97 | Today's Topic 98 | https://github.com/kubernetes-internal/kubenews/tree/main/episodes/001 99 | 100 | この配信では 101 | ・@ry(https://twitter.com/URyo_0213) 102 | ・@chago(https://twitter.com/it__chago) 103 | ・@bells17(https://twitter.com/bells17_) 104 | が中心となってKubernetesやCloud Native界隈で気になったニュースや記事について、雑談をしながら取り上げていきます。 105 | 106 | ・紹介する記事については紹介者が気になった記事を中心に取り上げるので、最新のニュースかどうかに関わらず様々な記事をピックアップしていく予定です 107 | ・事前に調べて面白かったから取り上げる記事もあれば、ちょっと気になったので他の配信メンバー/視聴者と一緒に詳しく読んでいきたいという記事も取り上げます 108 | ・そのため記事の理解については正しくない内容が含まれることがあります 109 | ・取り扱ってる記事やニュースについて詳しい人はライブチャットなどで教えて下さい! 110 | 111 | 配信中はYoutube Liveのチャットでコメント頂けると配信メンバーが反応できるかもしれません 112 | 感想などはTwitterで #kubenews ハッシュタグをつけて頂けると後から見れるので助かります 113 | https://twitter.com/search?q=%23kubenews 114 | 115 | またこれまでに配信で取り上げたネタについては 116 | https://github.com/kubernetes-internal/kubenews/tree/main/episodes 117 | にありますので興味ある方いれば御覧ください 118 | ``` 119 | -------------------------------------------------------------------------------- /documents/streaming-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubernetes-internal/kubenews/75a0db57ffdb2a73048ab3295a3f2872e80612f5/documents/streaming-overview.png -------------------------------------------------------------------------------- /episodes/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubernetes-internal/kubenews/75a0db57ffdb2a73048ab3295a3f2872e80612f5/episodes/.gitkeep -------------------------------------------------------------------------------- /episodes/001-private/README.md: -------------------------------------------------------------------------------- 1 | # 001-private 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2020-11-21 5 | - Video: privte 6 | 7 | ## Contents 8 | 9 | ### @ryojsb 10 | 11 | - [KubeLinterを使用したYAMLのベストプラクティスの確保](https://www.civo.com/learn/yaml-best-practices-using-kubelinter) 12 | - KubeWeekly #240: November 6, 2020 13 | - Kubernetes YAMLファイルとHelmチャートをチェックして、それらに表されているアプリケーションがベストプラクティスに準拠していることを確認する静的分析ツール 14 | - CIに統合するなど、様々な使い方が期待できる。 15 | - 選定理由 16 | - kubernetesを始めたばかりであったり、なかなか周りに聞ける環境ではない中でbest practiceを最初から設定していくことは難しい 17 | - kustomizeやhelmと連携していく中で、こういったチェックを簡単にはさめるツールはとてもありがたい。 18 | 19 | - [TokenRequestとTokenRequestProjectionのGA](https://github.com/kubernetes/kubernetes/pull/93258) 20 | - [LWKD Week Ending November 1, 2020](http://lwkd.info/2020/20201102) 21 | - Secretに書かれないと記載あり 22 | - [Service Account Token Projection](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-token-volume-projection) 23 | - manifestの記載例 24 | - [A Look at How to Use TokenRequest Api](https://jpweber.io/blog/a-look-at-tokenrequest-api/) 25 | - REST APIでの呼び出しについて書かれている。 26 | - Podに対して期限つきのServiceAccountTokenを指定パスに指定することができ、期限が切れた際は、自動で更新される。 27 | - 選定理由 28 | - 期限を決めて自動更新できたり、ポッドまたはServiceAccountが削除されると、サービスアカウントトークンもAPIに対して無効になり、TokenはSecretに残らないと言うことなので、Security 的にとても有用だと思った。 29 | 30 | - [Introducing the Anthos Developer Sandbox—free with a Google account](https://cloud.google.com/blog/topics/anthos/introducing-the-anthos-developer-sandbox) 31 | - ついにAnthosを無料で体験することができるようになった。 32 | - 新規でGCP上にGKEを立てたり、既存のKubernetesを登録したりできるので、楽しめそう。 33 | - 最近よく耳にするAnthosがつい最近まで無料アカウントではさわれない状態だったので、純粋にありがたい。 34 | 35 | - [Unleash developer productivity with Gitpod on Oracle Container Engine for Kubernetes](https://blogs.oracle.com/cloud-infrastructure/unleash-developer-productivity-with-gitpod-on-oracle-container-engine-for-kubernetes) 36 | - `gitpod.io/#`をURLの最初につけるだけで起動できる。 37 | - VS Codeライクに使うことが可能 38 | - .gitpod.yml にimageなどを記載することで、Workspaceをコンテナで立てることができる。 39 | - https://www.gitpod.io/docs/config-gitpod-file/ 40 | - kubernetesの上で用いることで、使い捨ての開発環境をすぐに立てることができる。 41 | - [Install on kubernetes](https://www.gitpod.io/docs/self-hosted/latest/install/install-on-kubernetes/) 42 | 43 | - [Container Security Book](https://container-security.dev/) 44 | - 前半にContainerの基礎となる部分があり、そこだけでも勉強になる。 45 | - [コンテナ技術入門](https://eh-career.com/engineerhub/entry/2019/02/05/103000#%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%81%A8%E3%81%AF) 46 | - Containerのセキュリティはいつでも課題になるので、基礎知識として良さそう。 47 | 48 | ### @bells17 49 | 50 | #### [【インターンレポート】KubernetesのOperator Patternを用いた効率的なHypervisorの更新システムの構築](https://engineering.linecorp.com/ja/blog/internship-report20-hypervisor-update-system-with-kubernetes/) 51 | 52 | - LINEのインターンの方がVerda開発チームという社内プライベートクラウドのHypervisorの更新処理システムをKubernetes Operatorで作成したというお話 53 | - 元々Jenkins + Ansibleでタスクを並列実行していたものを、Kubernetes Operator + Ansibleとすることで高速化につながったとのこと 54 | - 一部出ていたCRDのSpecを見る限り内部的にはOperatorの調整ループ内部でAnsibleを実行している雰囲気 55 | - 個人的には(調べてないけど) https://access.redhat.com/documentation/ja-jp/openshift_container_platform/4.2/html/operators/osdk-ansible と近いのでは?というところが気になってる 56 | 57 | 58 | ![1【インターンレポート】KubernetesのOperator_Patternを用いた効率的なHypervisorの更新システムの構築_-_LINE_ENGINEERING](https://user-images.githubusercontent.com/2158863/99149095-5751da80-26cf-11eb-80c5-fe2eb7df37f4.png) 59 | 60 | 61 | #### [KEP-1959: Service Type=LoadBalancer Class Field](https://github.com/kubernetes/enhancements/pull/1960) 62 | 63 | - ついにServiceの type: Loadbalancer でもLBを使い分けられるように 64 | - CCM周りを開発したりする側からするとありがたい 65 | - type: Loadbalancerだけを扱う拡張アプリケーションとかを書いてる人からしてもありがたいかも 66 | - これいんだくたーさんにはあんまりいらなそうって言われたんだけどプラットホーム提供者側としては結構ありがたいと思ってる 67 | - すぱぶらさんのツイートで見つけた 68 | 69 |

複数の Service type=LoadBalancer の実装を使えるようにしようという KEP。たしかに Service type=LoadBalancer が提供されてしまっていると他の実装を使えない。新しい Service API では GatewayClass としてこれに相当する機能があるそう。 #kubernetes https://t.co/ioM0c8yOFf

— すぱぶら (Kazuki Suda) (@superbrothers) November 1, 2020
70 | 71 | #### [Rancher Day](https://rancher.co.jp/rdt2020/) 72 | 73 | - 11/12にあったRancherという様々な環境のKubernetesクラスターを管理・運用・構築できるソフトウェアなどを開発しているRancher Labsの各種製品に関するイベント\ 74 | - 個人的には以下のあたりが面白かった/聞けてよかった点 75 | - KDDIさんが自社内のプライベートクラウド環境へのCaaS提供をRancherを使って行っているという話し 76 | - Rancherを外側から拡張して色々な開発を行いCaaSを提供しているという話が面白かった 77 | - ちなみにRacher Labs的にはこういう外側での拡張は大歓迎とのこと 78 | 79 | #### [イラストでわかるDockerとKubernetes](https://www.amazon.co.jp/dp/4297118378) 80 | 81 | - まだ情報がほぼ無いんだけど、タイトル的にはDocker/Kubernetes初学者向けの本? 82 | - 著者はNTTの徳永さんという方(多分直接お話したこと無い) 83 | - https://www.youtube.com/watch?v=W5dcfyuHohw 84 | - 初心者向けの情報が増えるのは良さそう 85 | 86 | #### [CKS Certified Kubernetes Security Specialist](https://medium.com/faun/cks-certified-kubernetes-security-specialist-418d55c86465) 87 | 88 | - 新しくできたk8sの資格であるCKSについての紹介記事 89 | - CKSの試験範囲や勉強に役立つコンテンツへのリンクが紹介されている 90 | - ちょっと勉強してみたい気もする(まだCKAも持ってないけど) 91 | 92 | #### [eBPF - The Future of Networking & Security](https://cilium.io/blog/2020/11/10/ebpf-future-of-networking/) 93 | 94 | - eBPFとCiliumなどの解説記事 95 | - 今までに何度か(e)BPFをテーマにしたセッションを聞いてなんとなく一部分を知った気はするけど、でもeBPF相変わらず全然わかってないという感じだったんだけど、この記事見て改めて興味出てきたので勉強したい 96 | - わかってないんだけど、図とかいっぱい使って結構細かく特徴を説明してくれてるのでちょっとだけわかったつもりになれる 97 | - 参考で紹介されてる https://ebpf.io/ も見て勉強してきたい 98 | 99 | #### [Introduction to Kubernetes Networking](https://www.tigera.io/lp/kubernetes-networking-ebook) 100 | 101 | - 登録するとKubernetesのネットワークに関する情報をまとめたPDF本がもらえる 102 | - 51pあったからちょっと時間をとって見ていきたい 103 | - 内容的にはKubernetesの基本的なネットワークの話しからeBPFやCalicoの話しなど結構網羅的な感じっぽい 104 | - 最近taishoさんもzennでKubernetesのネットワーク本を出してたと思うので合わせて読んできたいな 105 | 106 | 107 | #### [Kubernetesネットワーク 徹底解説](https://zenn.dev/taisho6339/books/fc6facfb640d242dc7ec) 108 | 109 | - taishoさんが書いたKubernetesのネットワークで起きてることを色々と書いてくれてるzennの本 110 | - 僕が弱々な色んなネットワークの色んな概念やコマンドとかその見方など含めてKubernetesのネットワークがどんなふうに設定されているについて色々と書いてくれてるっぽい 111 | - ぶっちゃけネットワークの知識が無いので軽く眺めただけだと雰囲気しかわからないけど、すごいわかりやすく書いてくれてる気がしているので、これをベースに色々試してみてネットワーク周りの理解を深めたいなという感じ 112 | - まずこれを元に勉強してからeBPFとかも触っていきたい 113 | 114 | #### [Banzai Cloud Logging operator](https://github.com/banzaicloud/logging-operator) 115 | 116 | - Banzai Cloudが提供するfluentd/fluent-bitのOperator 117 | - Rancher Day 2020で紹介されててRancher2.5からのRancherのLoggingはこれが使用されるらしい 118 | - 実態としてはKubernetesのログを転送するためのfluent-bit/fluentdのOperatorっぽくて結構良さげな印象だった 119 | 120 | ![logging_operator_flow](https://user-images.githubusercontent.com/2158863/99152424-0c42c200-26e5-11eb-9594-4b47489f7b7a.png) 121 | 122 | #### [Geographically Distributed Stateful Workloads Part One: Cluster Preparation](https://www.openshift.com/blog/geographically-distributed-stateful-workloads-part-one-cluster-preparation) 123 | 124 | - 地理的に分散されたStatefulワークロードを動かす3つのアクティブ/アクティブ構成のOpenshiftクラスターの構築方法について話されていて面白かった 125 | - リクエストをクラスター間でデプロイするためのGSLBとしてRoute53を利用して分散を行っていて(DNSによるクラスターへのリクエスト分散をしてるっぽい) 126 | - クラスター間の接続にRancherのSubmarinerを利用していて 127 | - クラスター間の信頼確立のための認証局をVaultで用意して 128 | - 証明書管理をcert-managerで行って 129 | - といった感じでマルチクラスター運用のノウハウが書かれていて面白かった 130 | - この記事ではStatefulワークロード自体には詳しく触れていないけど、それは前提となる別のブログ記事「[Disaster Recovery Strategies for Applications Running on OpenShift 131 | ](https://www.openshift.com/blog/disaster-recovery-strategies-for-applications-running-on-openshift)」で触れられていて 132 | - 元記事と同じアクティブ/アクティブのときにはCockroachDBやTiDBなどの利用を例として上げていたり 133 | - また2クラスターで構築した際のアクティブ/パッシブのパターンについてレプリケーションやストレージレベルでの同期などのパターンによるディザスタリカバリの方法が紹介されていた 134 | 135 | ![Geographical-Availability-with-OpenShift-Nov-02-2020-04-06-03-66-PM](https://user-images.githubusercontent.com/2158863/99153101-b1f83000-26e9-11eb-993d-3b491651157e.png) 136 | -------------------------------------------------------------------------------- /episodes/001/README.md: -------------------------------------------------------------------------------- 1 | # 001 2 | 3 | - Hosted by @chago 4 | - Recording date: 2020-11-27 5 | - Video: https://youtu.be/DXDF3TOJ7l0 6 | 7 | ## Contents 8 | 9 | ### @ryojsb 10 | 11 | - [Edge Computing with openness](https://www.cncf.io/webinars/kubernetes-in-the-context-of-on-premises-edge-and-network-edge-computing/) 12 | - kubeweekly 13 | - 今後、ますます使い道が増えていくであろうEdge ComputingについてのKubernetes活用方の紹介 14 | - 個人的には、2019年にwalmartの話を聞いてから、edge-computingにおけるkubernetesの活用に意識が向きはじめた。 15 | - [KubeCon North America 2019](https://kccncna19.sched.com/event/UdJf/keynote-seamless-customer-experience-at-walmart-stores-powered-by-kubernetesedge-maneesh-vittolia-principal-architect-sriram-komma-principal-product-owner-walmart) 16 | - kubeedgeというものも増えていた。 17 | - [CNCF Cloud Native Interactive Landscape](https://landscape.cncf.io/) 18 | - [github - kubeedge](https://github.com/kubeedge/kubeedge) 19 | 20 | - [kubectl logsのデフォルトコンテナを指定](https://text.superbrothers.dev/201123-allow-to-preselect-interesting-container-in-logs/) 21 | - [すぱぶらさん](https://twitter.com/superbrothers)による投稿 22 | - これまで、ずっと「kubectl logs ~ -c 」 23 | - kubernetes 1.18から、annotationに`kubectl.kubernetes.io/default-logs-container: container name`を用いることで、-cで指定しない際のデフォルトのコンテナを選択できるようになった。 24 | 25 | - [Chaos Engineering tools comparison](https://www.gremlin.com/community/tutorials/chaos-engineering-tools-comparison/) 26 | - Chaos Engineeringの比較について書かれている。 27 | - GremlinというChaos Engineering Toolについて書かれている記事 28 | - [Developers.IO](https://dev.classmethod.jp/articles/gremlin_ecs_php_sample_app/) 29 | 30 | ### @chago 31 | 32 | - [Diamanti Extends Kubernetes Stateful Storage Reach and Support for AWS](https://thenewstack.io/diamanti-extends-kubernetes-stateful-storage-reach-and-support-for-aws/) 33 | - Diamantiはコンテナ版HCI 34 | - ハイブリッドクラウドに対応するため「spektra」をリリース 35 | - 最初にAzureをサポートし、今回新たにAWSサポート発表 36 | - 2021年初頭にはGCPも対応予定 37 | 38 | - [How to set up k0s Kubernetes: A quick and dirty guide](https://www.mirantis.com/blog/how-to-set-up-k0s-kubernetes-a-quick-and-dirty-guide/) 39 | - MIRANTIS社 40 | - Docker Enterpriseを買収したことで話題に 41 | - (参考)[早速K0sを試してみた(日本情報通信株式会社)](https://www.niandc.co.jp/sol/tech/date20201124_1935.php) 42 | - minikubeと違いvirtualboxやKVMが不要 43 | 44 | ### @bells17 45 | 46 | #### [おうち Kubernetes のための Auth0 コトハジメ](https://atpons.hateblo.jp/entry/20201122/1606014048) 47 | 48 | - https://github.com/int128/kubelogin というkubectlプラグインを使ってAuth0の認証をKubernetesクラスターに組み込むという内容 49 | - Kubernetesの認証方法については理解が浅い & どこからとっついて行けばよいかピンと来てないのでかなり面白かったし、勉強になった 50 | - Kubernetesの認証の理解を深めるきっかけにしたいので今度試してみたいな 51 | 52 | #### [Nomad, Kubernetes, and a Pragmatic Look at Choosing Orchestrators](https://www.hashicorp.com/blog/nomad-kubernetes-a-pragmatic-look-at-choosing-orchestrators) 53 | 54 | - Nomadはhashicorp社が開発しているコンテナオーケストレーターの1つ 55 | - この記事ではhashicorpの視点でNomadとKubernetesの比較やどんなユースケースにNomadが適しているかなどを説明してくれている 56 | - またここ2年でNomadを導入する企業も増えているとのこと 57 | - Nomadはgetting startedくらいしか試した記憶がないので、いつかアーキテクチャなど含めて勉強してみたい 58 | 59 | #### [LitmusChaos and Argo Bring Chaos Workflows to Kubernetes](https://thenewstack.io/litmuschaos-and-argo-bring-chaos-workflows-to-kubernetes/) 60 | 61 | - LitmusChaosというKubernetesを利用したカオスエンジニアリングツールとArgoというワークフローエンジンを利用したカオスエンジニアリングについて先日のKubeConでお話されてた内容をまとめたものっぽい 62 | - LitmusChaosを使うとPodを削除したりなど色んなカオスエンジニアリングを実現できるテンプレートが揃っている 63 | - こういうカオスエンジニアリングをCIのテストに組み込んでいくのもできるのかもなーと思った 64 | 65 | -------------------------------------------------------------------------------- /episodes/002/README.md: -------------------------------------------------------------------------------- 1 | # 002 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2020-12-04 5 | - Video: https://youtu.be/eET4AfQr3VM 6 | 7 | ## Contents 8 | 9 | ### @bells17 10 | 11 | ### [What’s new in Kubernetes 1.20?](https://sysdig.com/blog/whats-new-kubernetes-1-20/) 12 | 13 | - https://techfeed.io/comments/5fc906950fda63927720251b 14 | 15 | ### [Contributor Celebration](https://www.kubernetes.dev/events/kcc2020/) 16 | 17 | - https://techfeed.io/comments/5fc8ebcc0fda6392772020ef 18 | 19 | ### [Kubernetes: kube-scheduler をソースコードレベルで理解する](https://ccvanishing.hateblo.jp/entry/2020/12/02/181155) 20 | 21 | - https://techfeed.io/comments/5fc8ee2d0fda639277202140 22 | 23 | ### [Prometheus Adapterを利用したPodのオートスケール](https://qiita.com/Ladicle/items/5ff251b89df2f1ebb821) 24 | 25 | - https://techfeed.io/comments/5fc8f5120fda63927720223f 26 | 27 | ### [Google Open Source Live presents Kubernetes](https://opensourcelive.withgoogle.com/events/kubernetes?talk=opening) 28 | 29 | - https://techfeed.io/comments/5fc9e982b7b334fa4d4adb20 30 | 31 | ### @ryojsb 32 | 33 | - [AWS、オンプレミス向けコンテナ基盤ソフトウェア「Amazon ECS Anywhere」「Amazon EKS Anywhere」発表](https://www.publickey1.jp/blog/20/awsamazon_ecs_anywhereamazon_eks_anywhereaws_reinvent_2021.html) 34 | - [1.20からDockerが非推奨になる理由](https://blog.inductor.me/entry/2020/12/03/061329) 35 | 36 | ### @chago 37 | 38 | - Docker malware is now common, so devs need to take Docker security seriously 39 | - https://www.zdnet.com/article/docker-malware-is-now-common-so-devs-need-to-take-docker-security-seriously/ 40 | - Amazon EKS Distro: Amazon EKS で使用される Kubernetes ディストリビューション 41 | - https://aws.amazon.com/jp/blogs/news/amazon-eks-distro-the-kubernetes-distribution-used-by-amazon-eks/ 42 | -------------------------------------------------------------------------------- /episodes/003/README.md: -------------------------------------------------------------------------------- 1 | # 003 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2020-12-11 5 | - Video: 6 | 7 | ## Contents 8 | 9 | ### @chago 10 | 11 | - [Announcing General Availability of HashiCorp Nomad 1.0](https://www.hashicorp.com/blog/announcing-general-availability-of-hashicorp-nomad-1-0) 12 | - Nomad 1.0 GA 13 | - Nomad は hashicorp社のコンテナオーケストレータ 14 | - 参考 [Nomad? Kubernetes? どう違うの?](https://medium.com/hashicorp-engineering/nomad-kubernetes-%E3%81%AA%E3%81%AB%E3%81%8C%E9%81%95%E3%81%86%E3%81%AE-a3b1caf81d05) 15 | 16 | - [NetApp To Embed Rancher Kubernetes In Its Hyperconverged Infrastructure](https://www.crn.com/news/cloud/netapp-to-embed-rancher-kubernetes-in-its-hyperconverged-infrastructure) 17 | - NetAppがHCIにRancherを取り込む 18 | 19 | ### @bells17 20 | 21 | #### [「イラストでわかるDockerとKubernetes」は完全に良書](https://jaco.udcp.info/entry/2020/12/08/215058) 22 | 23 | - https://techfeed.io/comments/5fd1f6c715fc5aa76ae8c846 24 | 25 | #### [KubernetesのLoadBalancerやClusterIPを用いた中間者攻撃(CVE-2020-8554)](https://knqyf263.hatenablog.com/entry/2020/12/08/155720) 26 | 27 | #### [Amazon EKS add-ons のご紹介: Kubernetes 運用ソフトウェアのライフサイクル管理](https://aws.amazon.com/jp/blogs/news/introducing-amazon-eks-add-ons-jp/) 28 | 29 | #### [WebAssembly Night #10](https://youtu.be/HOAuzkGLVd8) 30 | 31 | #### [ちょいと早い忘年会 OpenShift.Run Winter 2020 #11](https://openshift.connpass.com/event/191402/) 32 | 33 | #### [descheduler v0.20.0](https://github.com/kubernetes-sigs/descheduler/releases/tag/v0.20.0) 34 | 35 | #### [Kubernetes 1.20から始まるDockerランタイムの非推奨化に備えよう!我々が知っておくべきこと・すべきこと](https://thinkit.co.jp/article/18024) 36 | 37 | ### @ryojsb 38 | 39 | #### With the release of GKE node version 1.19, the Container-Optimized OS with Docker (cos) variant is deprecated 40 | 41 | - [release note on 12/8](https://cloud.google.com/kubernetes-engine/docs/release-notes#december_8_2020) 42 | - [containerd image](https://cloud.google.com/kubernetes-engine/docs/concepts/using-containerd) 43 | 44 | #### Amazon EMR on Amazon Elastic Kubernetes Service (EKS) 45 | - Amazon EMR: big data platform for processing vast amounts of data using open source tools such as Apache Spark, Apache Hive, Apache HBase, Apache Flink, Apache Hudi, and Presto. 46 | - [AWS News Blog](https://aws.amazon.com/jp/blogs/aws/new-amazon-emr-on-amazon-elastic-kubernetes-service-eks/) 47 | - さまざまなEC2インスタンスタイプでパフォーマンスを最適化して、価格とパフォーマンスの要件を満たしていたものを、EKS上で動かすことでリソースを共有したり、管理を統合できたりなどのメリットがある。 48 | - 現在EC2で使用しているものと同じEMR機能をすべてEKSで利用できる。 49 | 50 | #### Kubernetes CRDs = Huge Pain In Multi-Tenant Clusters 51 | - [DevSpace Technologies Inc. Blog](https://medium.com/@loft-sh/kubernetes-crds-huge-pain-in-multi-tenant-clusters-a4b394ccd2d9) 52 | - 簡単にどんなことが書かれているか 53 | 54 | ``` 55 | Kubernetesにおけるマルチテナンシーとは、複数のユーザー、アプリケーション、またはワークロードがいわゆるテナントを形成し、 56 | 共有クラスター内で互いに共存しているシステムアーキテクチャです。 57 | マルチテナントを管理する際、以下のことが重要である。 58 | 59 | ・侵害されたテナントが残りのユーザーまたはワークロードに与える影響を最小限に抑えるために、テナント間に適切なレベルの分離を実装する必要がある。 60 | ・各テナントがタスクを完了するために必要なものにアクセスできるよう、コンピューティング、ネットワーキング、 61 | およびその他のリソースがクラスター内のすべてのテナント間で公平に共有されるようにする必要がある。 62 | 63 | この2つを満たすために、テナントには独自のCRDおよびRBACルールを追加または管理することを許可されていないというケースが多い。 64 | 65 | マルチテナントクラスターでCRDを使用する際の問題点 66 | ・クラスター内の他のユーザーが使用している他のリソースと競合しないようにする 67 | ・マルチテナントクラスターにセキュリティの脆弱性をもたらす可能性がある 68 | (https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11247) 69 | ・CRDが互換性のない方法で変更または変更された場合、クラスター全体で問題が発生する可能性がある。 70 | ・マルチテナント設定でCRDを使用すると、管理上の責任と課題がさらに追加される。 71 | 72 | 解決策 73 | 74 | ・回避できる場合はCRDを使用しない。 75 | ・個別のクラスターまたは仮想クラスターを検討する。 76 | (https://loft.sh/blog/introduction-into-virtual-clusters-in-kubernetes/) 77 | ``` 78 | 79 | #### Graceful shutdown in Kubernetes is not always trivial 80 | - [FLANT blog](https://medium.com/flant-com/kubernetes-graceful-shutdown-nginx-php-fpm-d5ab266963c2) 81 | - nginxとPHP-FPMにおける、Graceful Shutdownの違いについて簡単に説明している。 82 | - 一例として以下のことが書かれていた。 83 | - nginxでは、preStopに書くものは、`nginx -s quit` だけで良い。 84 | - PHP-FPMでは、プロセスを止めるのにsignalsで `sigterm`ではなく`sigquit`を送る必要があった。 85 | - 結論としては、 86 | - Application側 87 | - 数秒待ってから、新しい接続の受け入れを停止する必要があります。 88 | - すべての要求が完了するまで待機し、アイドル状態のキープアライブ接続をすべて閉じる。 89 | - 独自のプロセスを終了する必要があります。 90 | - k8s側 91 | - sleepなどの特定の遅延を実行するpreStopを追加します。 92 | - 負荷試験などによって段階的にバックエンド構成を分析して、止める際に必要なparameterを導き出しましょう。 93 | 94 | -------------------------------------------------------------------------------- /episodes/004/README.md: -------------------------------------------------------------------------------- 1 | # 004 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2020-12-18 5 | - Video: https://youtu.be/H6wCBH_QJA4 6 | - Guest: @inductor 7 | 8 | ## Contents 9 | 10 | ### @chago 11 | 12 | #### [Integrating Kubebuilder and Operator SDK](https://github.com/kubernetes-sigs/kubebuilder/blob/master/designs/integrating-kubebuilder-and-osdk.md) 13 | 14 | - https://twitter.com/y_taka_23/status/1339484757155987456 15 | - https://twitter.com/ttsubo/status/1339527347616157696?s=20 16 | 17 | 18 | ### @bells17 19 | 20 | #### [Amazon Managed Service for Prometheus features](https://aws.amazon.com/jp/grafana/) 21 | 22 | - https://techfeed.io/comments/5fd978d220b65e5c6b97c5d5 23 | - Grafanaのマネージドサービスも合わせて出ているよう 24 | - https://techfeed.io/comments/5fd9798320b65e5c6b97c5f1 25 | 26 | #### [Rancher Harvesterでk8sから仮想マシンを管理する](https://note.com/ryoma_0923/n/n5dc18f50545a) 27 | 28 | - https://techfeed.io/comments/5fdb4ea195e7b2ea3e072a56 29 | 30 | #### [今さら聞けないLivenessProbeとCrashLoopBackOffの挙動](https://qiita.com/shmurata/items/01109ae1a5a949e7b8e7) 31 | 32 | - https://techfeed.io/comments/5fdafd5bdbe8347e7643c2b2 33 | 34 | #### [Cluster API v0.3.12](https://github.com/kubernetes-sigs/cluster-api/releases/tag/v0.3.12) 35 | 36 | - https://techfeed.io/comments/5fdaff1be83f354d34ef6096 37 | 38 | #### [Cloud Native 読書会第二回](https://docs.google.com/document/d/1beh1cRxaU-Qnu_SS574ANH7-q1aH9gFx3YKs3deND18/edit#) 39 | 40 | - https://techfeed.io/comments/5fdae3f7dbe8347e7643bfd6 41 | 42 | #### [Kubernetes Internal #4](https://k8sinternal.connpass.com/event/199410) 43 | 44 | - 1月もやるよ! 45 | 46 | ### @ryojsb 47 | 48 | #### Efficient Multi-Zone Networking with Topology Aware Routing 49 | 50 | - kubeweekly(12/12) 51 | - [Google OSS Blog](https://opensource.googleblog.com/2020/11/kubernetes-efficient-multi-zone.html) 52 | - [Service Topology](https://kubernetes.io/docs/concepts/services-networking/service-topology/) 53 | - [チェシャ猫さん資料](https://speakerdeck.com/ytaka23/jaws-container-sig-16th) 54 | 55 | Topology Aware Routing of Services: `topologyKeys`を用いてトラフィックを細かく分割する方法 56 | 57 | - Kubernetes v1.17 alpha機能であり、影響範囲はPod-Pod間の通信 58 | - TopologyKeyにおいて、Nodeのlabelを設定することで、上から書かれている順番に応じて、優先的に指定Labelを持つNode上で動くPodに通信が流れるように設定できる。 59 | - 例えばマルチAZ構成において、クライアントと同一ノードまたは同一AZのようなネットワーク的に近いエンドポイントにトラフィックが優先的にルーティングされるように指定できる。 60 | - 1Serviceに複数Endpointがひも付く構成になる。 61 | 62 | 以下のマニフェストでは、 63 | 1. `kubernetes.io/hostname`より、同一Node 64 | 2. `topology.kubernetes.io/zone`より、同一Zone 65 | 3. `topology.kubernetes.io/region`より、同一region 66 | 4. `*`より、その他全て 67 | 68 | ```yaml 69 | apiVersion: v1 70 | kind: Service 71 | metadata: 72 | name: my-service 73 | spec: 74 | selector: 75 | app: my-app 76 | ports: 77 | - protocol: TCP 78 | port: 80 79 | targetPort: 9376 80 | topologyKeys: 81 | - "kubernetes.io/hostname" 82 | - "topology.kubernetes.io/zone" 83 | - "topology.kubernetes.io/region" 84 | - "*" 85 | ``` 86 | 87 | #### OPA The Easy Way 88 | - kubeweekly(12/12) 89 | - [InflaCloud Blog](https://www.infracloud.io/blogs/opa-the-easy-way-featuring-styra-das/) 90 | - [How to Use a Policy Engine to Improve Your Security Posture](https://nirmata.com/2020/12/05/how-to-use-a-policy-engine-to-improve-your-security-posture/) 91 | - [Presentation in Kubernetes Novice Tokyo by ry](https://speakerdeck.com/ry/policy-managershi-sitemita) 92 | - [Validation with kyverno](https://ryo-xjsbx.hatenablog.com/entry/kyverno) 93 | 94 | [無料オンライントレーニング](https://academy.styra.com/)と[Styra DAS Free](https://www.styra.com/pricing)の宣伝。 95 | 96 | [VScode OPA Plugin](https://marketplace.visualstudio.com/items?itemName=tsandall.opa)もあるらしい。 97 | 98 | - Styra DAS Freeへのアクセス 99 | - 自分のk8s clusterの登録 100 | - 各種ルールの作成 101 | - ルールのテスト 102 | - etc 103 | 104 | 自分的に一番嬉しいのが、AddmissionReviewの取得ができるらしい! 105 | 106 | 107 | #### Automating Volume Expansion Management 108 | - kubeweekly(12/12) 109 | - [Redhut Openshift blog](https://www.openshift.com/blog/automating-volume-expansion-management-an-operator-based-approach) 110 | - [volume-expander-operator](https://github.com/redhat-cop/volume-expander-operator) 111 | 112 | Persistent Volumeを用いる際は、PrometheusにこのAlertを入れたほうがいい。 113 | 114 | ```yaml 115 | - alert: "Storage Saturation" 116 | labels: 117 | severity: critical 118 | annotations: 119 | summary: Storage usage over 75% 120 | persistentvolumeclaim: 121 | namespace: 122 | expr: kubelet_volume_stats_used_bytes / kubelet_volume_stats_capacity_bytes > 0.75 123 | for: 1m 124 | ``` 125 | 126 | という前置きの元、PVの拡張を自動化するソリューションとして、volume-expander-operatorに関する紹介が始まる。 127 | 128 | - 監視したいPVCのannotationに`volume-expander-operator.redhat-cop.io/autoexpand: “true”`を設定が必要。 129 | - Once enabled, the volume-expander-operator will start polling the platform Prometheus instance that is part of OpenShift Monitoringとあり、OpenShiftでしかできなそう?? 130 | - `kubelet_volume_stats_used_bytes`と`kubelet_volume_stats_capacity_bytes`の2つのメトリックより判断。 131 | - その他設定するannotaionは以下 132 | - volume-expander-operator.redhat-c​​op.io/expand-threshold-percent: ボリュームの拡張をトリガーする閾値 133 | - volume-expander-operator.redhat-c​​op.io/expand-by-percent: 拡張される既存ボリュームのサイズに基づくパーセンテージ 134 | - volume-expander-operator.redhat-c​​op.io/expand-up-to: ボリュームの上限 135 | - volume-expander-operator.redhat-c​​op.io/polling-frequency: ポーリングする頻度 136 | 137 | 参考manifest 138 | 139 | ```yaml 140 | kind: PersistentVolumeClaim 141 | apiVersion: v1 142 | metadata: 143 | annotations: 144 | volume-expander-operator.redhat-cop.io/autoexpand: 'true' 145 | volume-expander-operator.redhat-cop.io/expand-threshold-percent: "85" 146 | volume-expander-operator.redhat-cop.io/expand-by-percent: "20" 147 | volume-expander-operator.redhat-cop.io/polling-frequency: "1m" 148 | volume-expander-operator.redhat-cop.io/expand-up-to: "20Gi" 149 | name: to-be-expanded 150 | spec: 151 | accessModes: 152 | - ReadWriteOnce 153 | resources: 154 | requests: 155 | storage: "1Gi" 156 | ``` 157 | 158 | ### @inductor 159 | 160 | - [Kubernetes 1.20: SIG-API Machineryの変更内容](https://qiita.com/Ladicle/items/85d0ae2ddd4893ac4ca6) by Ladicle 161 | - [AWS・GCPとKubernetesの権限まわりの用語を具体例から理解する](https://tech.jxpress.net/entry/terms-and-concepts-of-iam-for-aws-and-gcp-and-k8s) by JX Press 162 | - 開発者向けにAWSとGCPのIAMリソースの考え方の違いをわかりやすく解説 163 | - EKS/GKEに関する例まで踏み込んで解説されている 164 | - [【Go言語】自作コンテナ沼。スクラッチでミニDockerを作ろう](https://kaminashi-developer.hatenablog.jp/entry/dive-into-swamp-container-scratch) by Kaminashi 165 | - Liz Riceが作ったGo言語製の https://github.com/lizrice/containers-from-scratch をベースに、手を動かしながらコンテナを自前で作ってしまう話 166 | - [Kubernetes Podcast Episode #132: Akri, with Kate Goldenring](https://kubernetespodcast.com/episode/132-akri/) 167 | - MSのSWEかつAkriのメンテナを務める[Kate Goldenring](https://twitter.com/KateGoldenring)をゲストとして、エッジデバイスを管理するための[Akri](https://github.com/deislabs/akri)に関するあれこれ話している 168 | - Akriにおける「エッジデバイスの管理」はクラスターで完結している点が特徴 169 | - デバイス側では何も設定する必要がない。以下のいずれかを満たしているデバイスが自動的に検出される 170 | - ワーカーノードにUSBなどで接続された周辺機器 171 | - ワーカーノードの所属するネットワークに接続されたネットワーク越しのデバイス(ネットワークカメラなど) 172 | - 内部的には[RTSP](https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol)を用いて接続を試行することによってディスカバリを行っているようだ 173 | - まだ現状はAlphaで、今後はプロトコルの拡張性を高めたり、ディスカバリ周りの改善などを行っていくといった旨が語られている 174 | - Device Pluginを使った開発の面白さ 175 | - Rustを使って開発している点 176 | ![](https://github.com/deislabs/akri/blob/main/docs/media/akri-architecture.svg) 177 | -------------------------------------------------------------------------------- /episodes/005/README.md: -------------------------------------------------------------------------------- 1 | # 005 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-01-15 5 | - Video: https://youtu.be/8Y_aHyveDUY 6 | 7 | ## Contents 8 | 9 | ### @chago 10 | 11 | #### [Kubernetes Ingress Controllerの機能比較表](https://docs.google.com/spreadsheets/d/191WWNpjJ2za6-nbG4ZoUMXMpUK8KlCIosvQB0f-oq3k/edit#gid=907731238) 12 | - https://twitter.com/openshiftjp/status/1346963518302658562 13 | - OpenShift Community Japan のツイートより 14 | #### [2021年に注目すべきCNCFの5つのテクノロジーを「Kubernetes Meetup Tokyo」のセッション記事から解説する](https://zenn.dev/hodagi/articles/5461eb6f7e19bb) 15 | 16 | #### [Sysdig 2021 container security and usage report](https://sysdig.com/blog/sysdig-2021-container-security-usage-report/) 17 | 18 | p.s. 技術書典お疲れ様でした! 19 | 20 | ### @bells17 21 | 22 | #### [Kubernetes で cgroup がどう利用されているか](https://valinux.hatenablog.com/entry/20210114) 23 | 24 | - Kubernetesでcgroupがどう利用されているか調べられたという記事 25 | - Kubeletの解析も技術同人誌である程度まとめたくらいには進んだので、そろそろLinuxコンテナやコンテナランタイム周りの理解もしていきたいなということで気になった記事 26 | - なお内容が理解できているわけではないです 27 | 28 | #### [Toolboxの話](https://speakerdeck.com/kenya888/toolboxfalsehua-1438a53a-7182-4e0e-98c1-2607fe8047f1) 29 | 30 | - 気になる👀 31 | 32 | #### [Kubernetes InternalでKubeletについて話すときに使った補足資料です](https://speakerdeck.com/bells17/kubelet) 33 | 34 | - https://techfeed.io/comments/60007e344085a1b904ff58e1 35 | 36 | #### [Kubeletから読み解くKubernetesのコンテナ管理の裏側](https://techbookfest.org/product/5738785868349440) 37 | 38 | - 技術書典10で販売したKubelet解説本です。興味ある方どうぞ 39 | - Boothでも販売開始しました 40 | - https://bells17.booth.pm/items/2649601 41 | 42 | ### @ryojsb 43 | 44 | #### [Kubernetes Storage Performance Comparison](https://medium.com/volterra-io/kubernetes-storage-performance-comparison-v2-2020-updated-1c0b69f0dcf4) 45 | - GlusterFS, CEPH, Portworx, OpenEBS(cStor backend), OpenEBS MayaStor, Longhornの比較記事 46 | - 比較はAKS上で実施 47 | - 結果としては、Portworx と OpenEBS Mayastorがすごそう 48 | 49 | #### [KubernetesにおけるContainer Object Storage Interface (COSI)の概要](https://qiita.com/ysakashita/items/9916f8ae922601e6fe6e#apis) 50 | - Object Storage用のCSI相当であるCOSIについての解説記事 51 | - BucketRequest (PVC)、Bucket (PV)、BucketClass (StorageClass)は分かった。 52 | - BucketAccessRequest、BucketAccess、BucketAccessClassあたりがいまいち。。。 53 | -------------------------------------------------------------------------------- /episodes/006/README.md: -------------------------------------------------------------------------------- 1 | # 006 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-01-22 5 | - Video: https://youtu.be/Gr7dAYtM5W0 6 | 7 | ## Contents 8 | 9 | ### @chago 10 | 11 | #### [【オンライン】脱初心者への道!Kubernetes Middle Way!! - cndjp第16回](https://cnd.connpass.com/event/198619/) 12 | - [整理しながら理解するKubernetesネットワークの仕組み](https://speakerdeck.com/hhiroshell/kubernetes-network-fundamentals-69d5c596-4b7d-43c0-aac8-8b0e5a633fc2) 13 | - [これから学ぶKubernetesのReconciliation Loop](https://speakerdeck.com/yosshi_/korekaraxue-hukubernetesfalsereconciliation-loop) 14 | 15 | #### [Nvidia Views Kubernetes as Key to GPU Accelerated AI Scale](https://www.sdxcentral.com/articles/news/nvidia-views-kubernetes-as-key-to-gpu-accelerated-ai-scale/2021/01/?utm_campaign=website&utm_source=sendgrid&utm_medium=email) 16 | 17 | #### [Amazon: NOT OK - why we had to change Elastic licensing](https://www.elastic.co/jp/blog/why-license-change-AWS) 18 | - [Stepping up for a truly open source Elasticsearch](https://aws.amazon.com/jp/blogs/opensource/stepping-up-for-a-truly-open-source-elasticsearch/) 19 | - @_inductor_ , @takamori_tech , @tzkb さんから 20 | 21 | ### @bells17 22 | 23 | #### [Hitachi Kubernetes Service](https://www.hitachivantara.com/en-us/services/edge-to-cloud-infrastructure-services/kubernetes.html) 24 | 25 | - 日立さんのManaged Kubernetes Serviceのように見える 26 | - ebookが https://www.hitachivantara.com/en-us/pdfd/ebook/multicloud-kubernetes-management-ebook.pdf に公開されているよう 27 | - まだあまり情報が無いが、ハイブリットクラウドなどでの利用を想定したもので簡単に利用するためのUIを用意したものように見える... 28 | - https://www.hitachivantara.com/en-us/resources.html#vid=6223900960001 の動画内でダッシュボードが映っているが、印象としてはRancherをシンプル目にしたUIという印象 29 | 30 | #### [Welcome To The Container Jungle: Docker vs. containerd vs. Nabla vs. Kata vs. Firecracker and more!](https://www.inovex.de/blog/containers-docker-containerd-nabla-kata-firecracker/) 31 | 32 | - コンテナランタイムの種類についての紹介記事 33 | 34 | #### [ZAP - ZCPをベースとしたマルチK8sのアプリケーション実行基盤](https://youtu.be/KUdLCzHW3hs) 35 | 36 | スライド: https://www2.slideshare.net/techblogyahoo/zap-zcpk8s-yjtc-yjtc21-b3-241223242 37 | 38 | - ZLabがYahoo!向けに構築しているZCPというKubernetes基盤の上に構築したZAPというアプリケーション基盤の紹介 39 | - ZAPはマルチテナントk8sクラスターでZAP管理者がZAP全体を管理するらしい 40 | - Appというカスタムリソースを記述することで、Kubernetesのリソースを自動作成してくれる 41 | - k8sのトラブルシュートに慣れてない人でもトラブルシュートに取り組めるようにkubectlをラップしていくつかの独自コマンドを追加したflctlというコマンドを提供 42 | - Flagship(Kubernetesクラスターのグループ?)/Ship(グループに参加するKubernetesクラスター)という仕組みによってマルチクラスター化することで大規模Kubernetesクラスターを実現しているよう 43 | - ZAP全体でFlagshipというのは1つにまとめられているのか?それともFlagshipも複数にわかれているのか?というのが気になった 44 | 45 | 46 | ### @ryojsb 47 | #### [GCPSketchnote](https://github.com/priyankavergadia/GCPSketchnote) 48 | GCPの様々なリソースについて絵を使って、動作やユースケースなどの説明してくれている。 49 | 50 | 51 | #### [CNCF Security Whitepaper Shows the Complexity of Securing Cloud Native Operations](https://thenewstack.io/cncf-security-whitepaper-shows-the-complexity-of-securing-cloud-native-operations/) 52 | - [Cloud Native Security Whitepaper](https://github.com/cncf/sig-security/blob/master/security-whitepaper/CNCF_cloud-native-security-whitepaper-Nov2020.pdf)というものがあるらしい。 53 | - CNCFは、クラウドネイティブ開発は、develop、destribute、deploy、runtimeの4つの異なるライフサイクルフェーズにモデリングする必要があると述べている。 54 | - Develop: アプリケーション作成段階 55 | - セキュリティはアプリケーションライフサイクルの早い段階で導入する必要がある。 56 | - セキュリティテストではコンプライアンス違反や設定ミスを即座に特定しよう。 57 | - 12 FactorAppなどの推奨デザインパターンに準拠しよう。 58 | - Destribute: CICDの段階 59 | - 開発者は、マルウェアを含んだimageをデプロイする可能性がある。 60 | - 脆弱性、マルウェア、および安全でないコーディングをコンスタントにスキャンする必要がある。 61 | - Deploy: Containerとして動かす段階 62 | - 次のことを確認しよう。 63 | - 署名されたアーティファクト(ソースコード、デザインファイル、テストのエビデンス、ログファイルなどなど)となっているか検証できているか。 64 | - コンテナイメージはセキュリティポリシーに準拠しているか。 65 | - ホストの適合性を検証したか。 66 | - 監視は、次の3つに基づいて実施 67 | - metrics 68 | - trace 69 | - log 70 | - Runtime: 基盤に関して 71 | - 認可されたプロセスのみがコンテナ名前空間内で動作する 72 | - 不正なリソースアクセスを防ぐ 73 | - 敵対的なツールアクティビティを検出するために、ネットワーク監視を行う 74 | 75 | #### [What’s Your Kubernetes Maturity?](https://www.cncf.io/blog/2021/01/12/whats-your-kubernetes-maturity/) 76 | - [Kubernetes Maturity Model](https://www.fairwinds.com/kubernetes-maturity-model)というものをざっくりと解説した記事 77 | - Phase1: Prepare 78 | - Kubernetesが、ビジネス目標と技術目標の推進にどのように役立つか、コスト、および達成しようとしていることを検討 79 | - Phase2: Transform 80 | - 基礎的な知識や理解、マインドセットだったりエコシステムの変革を行う段階 81 | - 既存の技術をCloud Nativeな文脈から見ること、技術的負債を払拭してKubernetes内に持ち込まないこと 82 | - Phase3: Deploy 83 | - 実際にKubernetes上でApplicationを本番運用し始める。 84 | - CI / CDのセットアップ、開発者の権限付与、限定的な監視と可観測性の導入 85 | - Phase4: Build Confidence 86 | - 経験から自信をつける段階 87 | - Phase5: Improve Operation 88 | - Kubernetesクラスターのセキュリティ、効率、信頼性を向上させる段階 89 | - Phase6: Measure & Control 90 | - この段階では、何を測定および追跡し、どのようにKubernetesを制御するかを理解すべく、より多くのデータ、インサイト、ツールによる情報を収集して処理する。 91 | - infrastructure as code and CI/CD driven processes 92 | - Phase7: Optimize and Auutomate 93 | -------------------------------------------------------------------------------- /episodes/007/README.md: -------------------------------------------------------------------------------- 1 | # 007 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-01-29 5 | - Video: https://youtu.be/uVGFl7O2CCw 6 | 7 | ## Contents 8 | 9 | 10 | ### @ryojsb 11 | 12 | #### [Kubernetes Cost Reporting using Kubecost](https://www.infracloud.io/blogs/kubernetes-cost-reporting-using-kubecost/) 13 | - kubernetesの上で動かし、現在の使用状況からどれくらいのコストがかかりそうか、どれくらいのコストカットができそうかなどをみることができる。 14 | - 実際に見てもらいたいと思います。 15 | 16 | #### [Project Agumbe: Share Objects Across Namespaces in Kubernetes](https://engineering.salesforce.com/project-agumbe-share-objects-across-namespaces-in-kubernetes-1fc2e1ddb3eb) 17 | - Global ResourceというCRD オブジェクトを使って、Namespaceに依存するリソースの複製を他のNamespaceにつくるもの 18 | - コピー元をParent Object、コピーをChild Objectと呼ぶ。 19 | 20 | #### [【EKSWorkshop】EKSやkubernetes周辺を効率よく学ぶのにオススメなチュートリアル集](https://dev.classmethod.jp/articles/eks-workshop/) 21 | - EKSを学んでいくためのチュートリアル 22 | - 一緒にやっていく人を大募集中なので、よければryにご連絡ください。 23 | - やりたいもの 24 | - Start the workshop 25 | - Deploy the Example Microservices 26 | - Autoscaling our Applications and Clusters 27 | - Using Spot Instances with EKS 28 | - Service Mesh With App Mesh 29 | 30 | ### @chago 31 | 32 | 欠席します!!ごめんなさい!! 33 | Container Runtime Meetup楽しかったのでよかったらこの話で盛り上がってください。 34 | 35 | - [Container Runtime Meetup #3 connpass](https://runtime.connpass.com/event/198071/) 36 | - [Container Runtime Meetup #3 youtube](https://www.youtube.com/watch?v=6Nii4k7nKmM&feature=youtu.be) 37 | 38 | ### @bells17 39 | 40 | #### [kubeletctl](https://github.com/cyberark/kubeletctl) 41 | 42 | - https://twitter.com/uesyn/status/1353615409639878657 のツイートで知った 43 | - https://techfeed.io/comments/600efcdb78df31bc1b2c96a9 44 | 45 | #### [Kubernetes Community Day - El Salvador](https://community.cncf.io/events/details/cncf-san-salvador-presents-kubernetes-community-day-el-salvador/) 46 | 47 | - Kubernetes Community Dayをやるらしい 48 | - これはオンライン配信なのかな? 49 | - エルサルバドルの首都のサンサルバドルというところで開催するっぽい 50 | - https://ja.wikipedia.org/wiki/%E3%82%B5%E3%83%B3%E3%82%B5%E3%83%AB%E3%83%90%E3%83%89%E3%83%AB 51 | 52 | #### [コンテナレジストリの可用性を高める取り組み](https://blog.cybozu.io/entry/2021/01/26/090000) 53 | 54 | #### [Scaling Kubernetes to 7,500 Nodes](https://openai.com/blog/scaling-kubernetes-to-7500-nodes/) 55 | -------------------------------------------------------------------------------- /episodes/008/README.md: -------------------------------------------------------------------------------- 1 | # 008 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-02-05 5 | - Video: https://youtu.be/QtHOLScNtXY 6 | - Guest: @tzkb 7 | 8 | ## Contents 9 | 10 | ### @tzkb 11 | #### [KUBERNETES上にGo言語とNoSQLで、独自のマイクロサービスフレームワークを構築した話](https://speakerdeck.com/iwask/kubernetes-shang-ni-go-yan-yu-to-nosql-de-du-zi-falsemaikurosabisuhuremuwakuwo-gou-zhu-sitahua) 12 | - DB on Kubernetesがてんこもり。 13 | 14 | #### [分散ストレージCephのオーケストレータRookのデータ破壊バグを修正しました](https://blog.cybozu.io/entry/2021/01/28/065400) 15 | - いい話。 16 | 17 | #### [業界初のクラウドネイティブ専用ベアメタルコンテナプラットフォームDIAMANTIを知ろう!](https://hybridcloud.connpass.com/event/203151/) 18 | - 来週のMeetup 19 | - Kubernetes用のHCIであるDIAMANTIを取り上げた、国内では珍しい内容になる模様。 20 | 21 | ### @ryojsb 22 | #### [スクリュードライバーとKubernetesを使用したデータベースのマイグレーション](https://www.verizonmedia.com/technology/blog/database-migrations-using-screwdriver-kubernetes) 23 | - もともと、DBのマイグレーションは物理サーバー1つの上でshell scriptsを動かすところから、Screwdriverを用いてJavaアプリケーションからパッチファイルを叩くものに変更した。 24 | - 今回は、screwdriverとCronJobを用いて、DBのマイグレーションをするようにした 25 | - DBの文脈におけるマイグレーションって?? 26 | - [Screwdriver](https://screwdriver.cd/) 27 | - [Athenz](https://www.athenz.io/) 28 | 29 | #### [Self-Service Velero Backups with Kyverno](https://nirmata.com/2021/01/24/self-service-velero-backups-with-kyverno/) 30 | veleroを使ってバックアップの準備をし、kyvernoのgenerate機能を用いて`nirmata.io/auto-backup: enabled`というlabelが付いたNamespaceが作成されたときに、VeleroのBackup Scheduleを作成するもの。 31 | 32 | #### [LWKD](http://lwkd.info/2021/20210202) 33 | - 気になったトピック 34 | - [Add EndPort to Network Policy](https://github.com/kubernetes/kubernetes/pull/97058) 35 | - [prefer nominated node](https://github.com/kubernetes/kubernetes/pull/93179) 36 | 37 | ### @chago 38 | 39 | #### [Nested OpenShift using OpenShift Virtualization](https://www.openshift.com/blog/nested-openshift-using-openshift-virtualization) 40 | - OpenShift Virtualization (KubeVirt) で作成した VM で クラスタをつくる話 (by @superbrothers) 41 | #### [KubeVirt Summit](https://community.cncf.io/events/details/cncf-kubevirt-community-presents-kubevirt-summit/#/) 42 | - 2021年2月9日14:00 - 2021年2月10日19:00 (UTC) 43 | - 実際のところ、どれくらい使われてるんだろうか? (by @yosshi_) 44 | #### [Cloud Native Computing Foundation Announces Open Policy Agent Graduation](https://www.cncf.io/announcements/2021/02/04/cloud-native-computing-foundation-announces-open-policy-agent-graduation/) 45 | 46 | 余談:話題のアプリclubhouseで「今週のKubernetes☸ 」という企画を目撃した 47 | 48 | ### @bells17 49 | 50 | #### [Hacking Kubernetes](https://www.oreilly.com/library/view/hacking-kubernetes/9781492081722/) 51 | 52 | Table of Contentsはこんな感じらしい 53 | ネットワーク周り面白そう 54 | 55 | - Preface 56 | - Who Should Read This Book 57 | - Why We Wrote This Book 58 | - How To Use This Book 59 | - Conventions Used in This Book 60 | - Using Code Examples 61 | - O’Reilly Online Learning 62 | - How to Contact Us 63 | - 1. Networking 64 | - Defaults 65 | - Threat models 66 | - Intra-pod networking 67 | - Inter-pod networking 68 | - Traffic flow control 69 | - ARP-based attacks 70 | - No security context 71 | - No environmental restrictions 72 | - No workload identity 73 | - No encryption on the wire 74 | - Service Meshes 75 | - Concept 76 | - Options and uptake 77 | - Case study: mTLS with Linkerd 78 | - 2. Container Runtime Isolation 79 | - Sensitive Workloads 80 | - What’s wrong with containers? 81 | - User Namespace Vulnerabilities 82 | - Containers, VMs, and sandboxes 83 | - How virtual machines work 84 | - Sandboxes: Mixing Containers and VMs 85 | - gVisor vs Firecracker vs Kata 86 | - gVisor 87 | - Firecracker 88 | - Kata Containers 89 | - rust-vmm 90 | - What are the risks of next gen proc iso? 91 | - Which Sandbox to Use? 92 | - Kubernetes RuntimeClass 93 | 94 | ### [DockerとPodmanの比較 [Container Runtime Meetup #3]](https://link.medium.com/LoBk7HNSCdb) 95 | 96 | すださんによるPodmanとDockerの比較 97 | Container Runtime Meetupのブログ版 98 | -------------------------------------------------------------------------------- /episodes/009/README.md: -------------------------------------------------------------------------------- 1 | # 009 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-02-12 5 | - Video: https://youtu.be/WH3FcQY3zk8 6 | - Guest: - 7 | 8 | ## Contents 9 | 10 | ### @chago 11 | 12 | #### [Kubernetesを標的とする新たなTeamTNTのクリプトジャックマルウェア](https://unit42.paloaltonetworks.jp/hildegard-malware-teamtnt/) 13 | - TwitterのTLで話題になっていた 14 | - セキュアではないDockerデーモンを悪用し、悪意のあるコンテナイメージをデプロイする 15 | 16 | #### [NetworkPolicy Editor: Create, Visualize, and Share Kubernetes NetworkPolicies](https://cilium.io/blog/2021/02/10/network-policy-editor) 17 | 18 | ### @bells17 19 | 20 | #### [Living with Kubernetes: API Lifecycles and You - The New Stack](https://thenewstack.io/living-with-kubernetes-api-lifecycles-and-you/) 21 | 22 | #### [kstatus: k8s リソースの status 判定ツール](https://zenn.dev/dulltz/articles/02f2e820a658b8) 23 | 24 | #### [Cloud Native Rust Day | Linux Foundation Events](https://events.linuxfoundation.org/cloud-native-rust-day/) 25 | 26 | ### @ryojsb 27 | #### [NetworkPolicy Editor: Create, Visualize, and Share Kubernetes NetworkPolicies](https://cilium.io/blog/2021/02/10/network-policy-editor) 28 | 29 | #### [Kubernetes Policy Comparison: OPA/Gatekeeper vs Kyverno](https://neonmirrors.net/post/2021-02/kubernetes-policy-comparison-opa-gatekeeper-vs-kyverno/) 30 | 31 | - PSP(Pod Security Policy)の廃止に伴って、代替手段としてOPA-GAtekeeperとKyvernoを比較している。 32 | - ゲートキーパーの利点 33 | - 非常に複雑なポリシーを表現できる 34 | - コミュニティにおける確立性の高さ 35 | - 可用性と拡張性のために複数のレプリカをサポート 36 | - ゲートキーパーの短所 37 | - 新しいプログラミング言語を必要とすることの学習コスト 38 | - Munationがまだ初期段階 39 | - Generationの能力がない 40 | - ポリシーが複雑で、実装するには複数のドキュメントが必要 41 | 42 | - Kyvernoの利点 43 | - ポリシー表現のシンプルさ 44 | - Mutationが安定している 45 | - GeneratingやSyncなどの機能があり、ユースケースが多様 46 | - Kyvernoの短所 47 | - 複雑なポリシーの作成が一般的に不可能 48 | - APIルックアップ機能は初期段階 49 | - HAが未対応 50 | 51 | 52 | #### [EKS vs GKE vs AKS](https://www.stackrox.com/post/2021/01/eks-vs-gke-vs-aks-jan2021/) 53 | - 3つのサービスを表を用いて比較してくれている。 54 | -------------------------------------------------------------------------------- /episodes/010/README.md: -------------------------------------------------------------------------------- 1 | # 010 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-02-19 5 | - Video: https://youtu.be/xWVjAig2Gyc 6 | - Guest: - 7 | 8 | ## Contents 9 | 10 | ### @bells17 11 | 12 | #### [Kubernetes Internal #5](https://k8sinternal.connpass.com/event/203946/) 13 | 14 | - 来週月曜日にやります! 15 | 16 | #### [Donating Docker Distribution to the CNCF](https://www.docker.com/blog/donating-docker-distribution-to-the-cncf/) 17 | 18 | - https://techfeed.io/comments/602f89caff99973924d02638 19 | 20 | #### [今からでも遅くない! Kubernetesを最速で学ぶための学習法とは](https://thinkit.co.jp/article/18079) 21 | 22 | - https://techfeed.io/comments/602f8b9d5c30c09a60efc003 23 | 24 | ### @ryojsb (欠席) 25 | 26 | 27 | ### @chago (欠席) 28 | -------------------------------------------------------------------------------- /episodes/011/README.md: -------------------------------------------------------------------------------- 1 | # 011 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-03-05 5 | - Video: https://youtu.be/vOfg0ZiHPN4 6 | - Guest: - 7 | 8 | ## Contents 9 | 10 | ### @chago 11 | 12 | #### [Kubernetesの分散処理をOptunaで最適化してみた](https://zenn.dev/masap/articles/41ddc467caf74f) 13 | - [Optuna](https://optuna.org/)によってレンダリング高速化を実現 14 | #### [kubernetes/website issue](https://github.com/kubernetes/website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22+label%3Alanguage%2Fja) 15 | - @_inductor_ さんのツイートより 16 | - 初心者でもコントリビュートしてみたい人のためのおすすめIssueがいっぱいあるらしい 17 | #### [Red Hat OpenShift for Windows Containers - Technical Overview](https://speakerdeck.com/redhatopenshift/red-hat-openshift-for-windows-containers-technical-overview) 18 | - OpenShiftがWindows Containerにどう対応しているかっていう話 19 | #### [Install Docker on Windows (WSL) "without" Docker Desktop](https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9) 20 | - これ読んだらWSL2に強くなれるかも(?) 21 | 22 | #### [完全マネージドな k8s ! GKE Autopilot を解説する](https://medium.com/google-cloud-jp/gke-autopilot-87f8458ccf74?source=social.tw&_branch_match_id=890382845353688350) 23 | - by @kazshinohara さん 24 | #### [ともに踏み出すCloudNative祭 プレイベント](https://cloudnativedays.connpass.com/event/203386/) 25 | - 本日先ほどまで行われていました!(←先週の話) 26 | - 3/11, 3/12の2日間にわたって行われるよ! 27 | 28 | #### [巨大モノリスをKubernetesに移行してシングルクラスタ運用にするためにどうしたか](https://engineering.mercari.com/blog/entry/20210302-move-monolith-into-kube/) 29 | - モノリシックからマイクロサービス 30 | - 31 | 32 | p.s. novice meetupの番外編でhashicorp noviceみたいなのやりたいんですけど需要ありますかね?? 33 | 34 | 35 | ### @bells17 36 | 37 | #### [Kubernetes co-creator Joe Beda answers 2 key questions](https://www.infoworld.com/article/3605728/kubernetes-co-creator-joe-beda-answers-2-key-questions.html) 38 | 39 | - https://techfeed.io/comments/602fa6da5c30c09a60efc324 40 | 41 | #### [11 tools that make Kubernetes better](https://www.infoworld.com/article/3261450/11-tools-that-make-kubernetes-better.html) 42 | 43 | - https://techfeed.io/comments/602fb018ff99973924d02a9a 44 | 45 | #### [Kubernetes 専門家として知るべき 47 のこと](https://ymmt.hatenablog.com/entry/k8s-things) 46 | 47 | - https://twitter.com/bells17_/status/1367404110647980036 48 | 49 | 50 | ### @ryojsb 51 | 52 | #### [Getting started with Kubernetes audit logs and Falco](https://sysdig.com/blog/kubernetes-audit-log-falco/) 53 | 54 | #### [Achieving Cloud Native Security and Compliance with Teleport](https://www.infracloud.io/blogs/achieving-cloud-native-security-compliance-teleport/) 55 | teleport 56 | - SSH/Kubernetes ゲートウェイ マシンとして機能 57 | - Kubernetes クラスターで実行されるすべての kubectl コマンドの監査ログと記録を提供 58 | - 静的なkeyに依存せず、SSH 証明書に基づく認証を提供 59 | - etc 60 | その他アーキテクチャ、デモが紹介されている。 61 | サイボウズからも情報がでている。(https://blog.cybozu.io/entry/2019/07/31/100000) 62 | 63 | #### [CNCF Live Webinar: How to Manage Kubernetes Application Lifecycle Using Carvel](https://community.cncf.io/events/details/cncf-cncf-online-programs-presents-cncf-live-webinar-how-to-manage-kubernetes-application-lifecycle-using-carvel/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz-_HBVKRXAD06_CpuwK_EwXMGM-hEpOtjwyOkwa6ITw9rv9WMi3Iea2ZUlAh39jPBswmTSEI#/) 64 | 65 | #### [Configure multi-tenancy with Kubernetes namespaces](https://opensource.com/article/21/2/kubernetes-namespaces) 66 | - 以下のポイントを抑える。 67 | - RBAC: Kubernetes のロールベースのアクセス制御 68 | - Network Policy: namespace間のトラフィックを分離するには 69 | - Resource Quota: クラスタリソースへのフェアなアクセスを制御 70 | 71 | - [Userの作り方はこちらを参照](https://www.adaltas.com/en/2019/08/07/users-rbac-kubernetes/) 72 | 73 | -------------------------------------------------------------------------------- /episodes/012/README.md: -------------------------------------------------------------------------------- 1 | # 012 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-03-012 5 | - Video: https://youtu.be/WBYJi0UF_Uw 6 | - Guest: - 7 | 8 | ## Contents 9 | 10 | ### @chago 11 | 12 | ### @bells17 13 | 14 | #### 宣伝 15 | 16 | - https://book-tech.com/books/60bd61be-7da2-4830-83a1-a8b0a45e24b0 17 | 18 | - https://k8sinternal.connpass.com/event/207184/ 19 | 20 | 21 | ### @ryojsb 22 | 23 | -------------------------------------------------------------------------------- /episodes/013/README.md: -------------------------------------------------------------------------------- 1 | # 013 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-03-26 5 | - Video: https://youtu.be/RGms05yeuq8 6 | - Guest: - 7 | 8 | ## Contents 9 | 10 | 11 | ### @ryojsb 12 | 13 | #### [Open Source solutions for chaos engineering in Kubernetes](https://blog.flant.com/chaos-engineering-in-kubernetes-open-source-tools/) 14 | 15 | #### [MinIO as Object Storage as a Service](https://blog.min.io/object_storage_as_a_service_on_minio/) 16 | 17 | #### [netapp astra](https://siliconangle.com/2021/03/10/netapp-astra-brings-data-portability-kubernetes-apps-netapp-astra/) 18 | - コンテナイメージからKubernetesの状態情報、構成データまで多岐にわたるデータを管理するソリューション 19 | - 通常のスナップショットでデータを保護する機能が含まれていて、ユーザーは、データが誤って削除または破損した場合に、Kubernetes クラスターを以前のスナップショットに戻すことが可能 20 | - リモート・バックアップを使用して、アプリケーションとそのアプリケーションの現在の状態に対するフルバックアップを取り、別のリージョンの別の Kubernetes クラスターに復元することが可能。 21 | - アクティブクローンを用いて、アプリ全体とそのデータを、場所に関係なく、あるKubernetes クラスターから別のクラスターに移動可能。 22 | 23 | #### [Configure your Kubernetes Ingress with Ingress Builder](https://www.jetstack.io/blog/introducing-ingress-builder/) 24 | 以前にNetworkPloicyに関して、GUIでManifestを作成できるツールをご紹介しましたが、 25 | 今回は、Ingressに関するツールが出たようです。 26 | https://ingressbuilder.jetstack.io/#tab-content-v1 27 | 28 | Ingress Builder was developed to make configuring Ingress resources more interactive by allowing users to discover and configure annotations for their Ingress controllers easily in a single web interface. 29 | 30 | と書かれているので、Annotation専用になっている。 31 | 少し勿体無い。。。 32 | 33 | #### [Who Needs Open Policy Agent?](https://www.itprotoday.com/devops-and-software-development/who-needs-open-policy-agent) 34 | - EnterpriseはOPAが必要か。 35 | - 会社にOPAが必要かどうかは、ワークロードをどの程度スケーラブルにする必要があるか、およびワークフローの作成をどの程度自動化するかによって異なる。 36 | - いつOPAを採用する必要が 37 | - 新しいテクノロジーの採用に慎重な場合は、OPAを本番ワークフローに組み込む前に少し待つことをお勧する。 38 | - エンジニアがどのようなスキルと好みを持っているかに一部依存するため、最新かつ最高のDevOpsツールを使用するのが好きならOPAは良いかもしれない一方、最先端よりも実証済みの方法を好む場合は、OPAが成熟するのを待つことをお勧します。 39 | 40 | #### [Cosign — Signed Container Images](https://dlorenc.medium.com/cosign-signed-container-images-c1016862618) 41 | Notaryとどっちが有用? 42 | 43 | ### @bells17 44 | 45 | #### [KUBERNETES THE HARD WAY IN "VAGRANT"?](https://suraj.io/post/2021/03/kthw-vagrant/) 46 | 47 | - Kubernetes The Hard WayをVagrantでやるためのリポジトリを紹介してくれてる 48 | - control plane(+etcd) と workerが別々のVMに分かれてて結構本格的な気がしてる 49 | 50 | #### [VictoriaMetrics と Grafana による Kubernetes クラスタのモニタリング](https://blog.cybozu.io/entry/2021/03/18/115743) 51 | 52 | - サイボウズさんがVictoriaMetricsを採用した話 53 | - VictoriaMetrics operatorにもコントリビューションしてるのが強いなと思った 54 | 55 | 56 | ### @chago 57 | -------------------------------------------------------------------------------- /episodes/014/README.md: -------------------------------------------------------------------------------- 1 | # 014 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-04-02 5 | - Video: https://youtu.be/VxRDMBmaDgU 6 | - Guest: - 7 | 8 | ## Contents 9 | 10 | 11 | ### @ryojsb 12 | 13 | #### [Quark Container](https://github.com/QuarkContainer/Quark) 14 | RUST製のOCI Runtime 15 | - OCI compatible 16 | - Secure 17 | - High Performance 18 | 19 | ゲストシステムコールを通じて、QuarkのKernelを使う。 20 | Host Kernelを使う場合は、QkernelからQcall + Host systemcall もしくは IO-Uring 21 | 22 | #### [Modern continuous delivery on Kubernetes for developers](https://dev.to/gabrieltanner/modern-continuous-delivery-on-kubernetes-for-developers-5chf) 23 | 〇 CDの概念 24 | - 宣言型 25 | - 開発者は何を行う必要があるかを定義し、残りをCDツールに処理させる 26 | - スケーラブル 27 | - 既存のパイプラインまたは宣言的に定義されたプロジェクトに、新しいサービスを追加することの容易性やサービスのこれらのさまざまな構成を維持することに対する労力を考慮する必要がある。 28 | - 拡張可能性 29 | - 既存のツールを使用してCDワークフローと統合し、既存の機能とともに新しいカスタム機能を実装することができるか 30 | - Prometheusなどの可観測性ツールやJmeterやNeoloadなどのテスト自動化 31 | - 品質ゲート 32 | - サービスを本番環境にデプロイする前に、具体的に定義された基準(応答時間、エラー率、スループットなど)が満たされていることを自動的に確認するための仕組み 33 | - SLI 34 | - 応答時間、エラー率、スループットなど、アプリケーションのいくつかの側面の定量的指標 35 | - SLO 36 | - テストに合格するために満たす必要があるSLIを使用して特定の条件 37 | 38 | 〇 Keptonの紹介 39 | - Kobaさん提供 40 | - kubestrというツールについて 41 | 42 | ``` 43 | 宣言型アプローチ 44 | 45 | Keptnには、SLIやSLOなどのSRE原則に基づく組み込みの品質ゲートも含まれており、 46 | 定義された基準を評価およびスコアリングして、新しいバージョンを次の展開段階に昇格できるかどうか、 47 | または保留する必要があるかどうかを判断できます。 48 | 49 | JMeter、LitmusChaos、Prometheusなどの多くの有名なサービスとの統合をすでに備えており、ユーザーは独自の統合を簡単に追加できる。 50 | ``` 51 | 52 | この後、Keptonについての導入方法が書かれている。 53 | 54 | #### [Identify, Evaluate and Benchmark Kubernetes Storage](https://www.kasten.io/press-releases/kubestr-open-source-kubernetes-solution) 55 | - kobaさん提供 56 | - [kubestr](https://kubestr.io/)について 57 | 58 | 59 | ### @bells17 60 | 61 | #### [1ヶ月間仕事でOSSの開発をしてきた](https://blog.tako8ki.me/posts/cyberagent-oss-job/) 62 | 63 | #### [Postgres Operator](https://github.com/zalando/postgres-operator) 64 | 65 | - おまけ 66 | - https://github.com/banzaicloud/logging-operator/blob/3.9.2/pkg/sdk/api/v1beta1/logging_types.go#L275 67 | 68 | #### [KubernetesのReconcile処理で無駄な更新をしない方法](https://zenn.dev/zoetro/articles/7cf5bbf58e163e) 69 | 70 | ### @chago 71 | 72 | #### [コマンド1発でKubernetes上にProduction Readyな環境を手に入れる](https://www.lifull.blog/entry/2021/03/30/100000) 73 | - @mochizuki875 さんからの提供 74 | 75 | #### [ネットアップ、Kubernetesアプリとデータの統合管理「NetApp Astra」発表](https://ascii.jp/elem/000/004/049/4049630/) 76 | -------------------------------------------------------------------------------- /episodes/015/README.md: -------------------------------------------------------------------------------- 1 | # 015 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-04-09 5 | - Video: https://www.youtube.com/watch?v=qfoJRRTZHrQ 6 | - Guest: - 7 | 8 | ## Contents 9 | 10 | ### @bells17 11 | 12 | #### [Kubernetes Internal #7](https://www.youtube.com/watch?v=NrSmtWqJwD0) 13 | 14 | - 開催しました! 15 | - containerdの話 16 | 17 | #### [Strategic Merge Patch](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-api-machinery/strategic-merge-patch.md) 18 | 19 | - https://github.com/bells17/kustomize-demo 20 | 21 | #### [Kubernetes 1.21: Power to the Community](https://github.com/atoato88/k8s-release-memo/blob/master/v1.21.md) 22 | 23 | - https://groups.google.com/g/kubernetes-sig-release/c/VIc907IGaJU/m/Cc9wnXpXCgAJ 24 | 25 | #### [CNCFのkubestrのwebiner](https://youtu.be/N79NY_0aO0w) 26 | 27 | #### [cybozu-go/pod-security-admission](https://github.com/cybozu-go/pod-security-admission) 28 | 29 | ### @ryojsb 30 | #### [Awesome Kubernetes (K8s) Security](https://github.com/magnologan/awesome-k8s-security) 31 | 32 | ##### Tool 33 | 34 | - [rakkess](https://github.com/corneliusweig/rakkess) 35 | 36 | #### [Pod Security Policy replacement](https://github.com/kubernetes/enhancements/issues/2579) 37 | 38 | #### [service-mesh-comparison](https://www.toptal.com/kubernetes/service-mesh-comparison) 39 | 40 | ### @chago 41 | -------------------------------------------------------------------------------- /episodes/016/README.md: -------------------------------------------------------------------------------- 1 | # 016 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-04-16 5 | - Video: 6 | - Guest: - 7 | 8 | ## Contents 9 | 10 | ### @chago 11 | 12 | #### [Comparing Helm vs Kustomize](https://harness.io/blog/devops/helm-vs-kustomize/) 13 | - Improve Kubernetes Deployments with Harness 14 | #### [Release v1.6.0 - rook/rook](https://github.com/rook/rook/releases/tag/v1.6.0) 15 | - Removed Storage Providers (CockroachDB / EdgeFS / YugabyteDB) 16 | #### [Certified Kubernetes Security (CKS) Specialist with Practice Tests](https://kodekloud.com/p/certified-kubernetes-security-specialist-cks) 17 | - @mochizuki875 さんから提供 18 | #### [Kubegres](https://www.kubegres.io/) 19 | - 10 April 2021: Release of Kubegres version 1.0 20 | - OperatorでありPostgreSqlインスタンスのクラスタをデプロイ 21 | - https://github.com/reactive-tech/kubegres 22 | - 時間あったら get started 実演します 23 | 24 | ### @ryojsb 25 | 26 | #### [Site Reliability Engineering (SRE) Best Practices](https://www.infracloud.io/blogs/sre-best-practices/?utm_medium=email&_hsmi=120543736&_hsenc=p2ANqtz--h-hPB_wtSbD8y40TdFLHbjdCzOpNQEC28zt4IJVMOCyKxTpde4gyS6S_aOxr7X0Fos1fwjjSTec2xF-SWX-ULULURDw&utm_content=120543736&utm_source=hs_email) 27 | 28 | #### [bringing-your-vms-to-kubernetes-with-kubevirt](https://www.kubermatic.com/blog/bringing-your-vms-to-kubernetes-with-kubevirt/?utm_medium=email&_hsmi=120543736&_hsenc=p2ANqtz-_GN-jKoIDP9ilwiNjr-3Vf0LZSNkf3s1gshQWdENvC-wZ246eVySE7kxeApsHvf8O5tENc963ThDNvKd4jMXvd3R3nZA&utm_content=120543736&utm_source=hs_email) 29 | 30 | #### [OPAL](https://github.com/authorizon/opal) 31 | 32 | ### @bells17 33 | 34 | #### [コンテナ型仮想化概論](https://www.amazon.co.jp/dp/4877834788) 35 | 36 | #### [初心者が絵で理解する Docker](https://zenn.dev/suzuki_hoge/books/2021-04-docker-picture-60fbe950136be9c7ad85) 37 | 38 | #### [PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021](https://www.slideshare.net/pfi/pfnmldlkubernetes-devopsdays-tokyo-2021) 39 | 40 | -------------------------------------------------------------------------------- /episodes/017/README.md: -------------------------------------------------------------------------------- 1 | # 017 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-04-30 5 | - Video: https://youtu.be/h_cMug43Hk4 6 | - Guest: - 7 | 8 | ## Contents 9 | 10 | ### @chago 11 | 12 | #### [Understanding the VMware Tanzu Kubernetes Terminology](https://veducate.co.uk/tanzu-terminology/) 13 | 14 | #### [Loft Labs Open-Sources Virtual Cluster Technology for Kubernetes](https://www.businesswire.com/news/home/20210419005152/en/Loft-Labs-Open-Sources-Virtual-Cluster-Technology-for-Kubernetes) 15 | - [vcluster](https://www.vcluster.com/) 16 | 17 | ### @ryojsb 18 | 19 | #### [Upcoming networking changes in Istio 1.10](https://istio.io/latest/blog/2021/upcoming-networking-changes/?utm_medium=email&_hsmi=123074855&_hsenc=p2ANqtz-_EflWsS_5JDjupRZBeOKemAzbYkPH86VVp1U0H1MDKft7BcowJqjw-sDNjVsp6xg-hNYOH5fVueLNvBwop9DIuj8k4zA&utm_content=123074855&utm_source=hs_email) 20 | 21 | #### [Tracing in Grafana with Tempo and Jaeger](https://www.infracloud.io/blogs/tracing-grafana-tempo-jaeger/?utm_medium=email&_hsmi=123074855&_hsenc=p2ANqtz-_l99McvuLwl65FcN6xM8EI_T9kFblbBSyw6Tupz4nhVA4qYOpF0NBEIfpL4FCZgvKSk_SvPtdYrSO9DpggX_LipDpclg&utm_content=123074855&utm_source=hs_email) 22 | 23 | - OpenTracingの基本的な要素 24 | - スパン:分散トレースの主要な構成要素で、名前、開始時間、および期間で構成される。 25 | - トレース:分散システムを通過するときの要求/トランザクションの視覚化。 26 | - タグ:スパンを識別するためのキー値情報で、トレースデータのクエリ、フィルタリング、分析に役立ちます。 27 | - ログ:ログは、スパン固有のログメッセージや、アプリケーション自体からのその他のデバッグまたは情報出力をキャプチャするのに役立つキーと値のペア。 28 | - スパンコンテキスト:特定のデータを着信要求に関連付けるプロセスであり、このコンテキストは、同じプロセス内のアプリケーションの他のすべてのレイヤーでアクセスが可能 29 | - OpenTracingと互換性のある利用可能なツール 30 | - zipkin 31 | - Jeager 32 | - Appadash 33 | - Grafana Tempo 34 | 35 | #### [Horizontal Pod Autoscaler in Kubernetes](https://around25.com/blog/horizontal-pod-autoscaler-in-kubernetes/?utm_medium=email&_hsmi=123074855&_hsenc=p2ANqtz--kIuU-duO4RDTnPz-S4LGR4hIdNVTfQHtoLeqT0Y7JAOLphgRuBt86g8UKoyGikg36wIuvAnwu6RMeTcv27x5lpbQgwA&utm_content=123074855&utm_source=hs_email) 36 | 37 | ### @bells17 38 | 39 | #### [DMP(Data Management Platform)開発を担当した際の所感](https://techblog.gmo-ap.jp/2021/04/28/minerva/) 40 | 41 | #### [[ANNOUNCE] Kubernetes is moving to three releases per year](https://groups.google.com/g/kubernetes-announce/c/is_pjOd5hho/m/afNTxmLlAAAJ) 42 | 43 | #### [Go design theory learned from Kubernetes](https://speakerdeck.com/onsd/go-design-theory-learned-from-kubernetes) 44 | 45 | #### [DevOps の能力](https://cloud.google.com/architecture/devops/capabilities?hl=ja) 46 | 47 | #### [ユニコーン企業のひみつ/訳者あとがき](https://scrapbox.io/iki-iki/%E3%83%A6%E3%83%8B%E3%82%B3%E3%83%BC%E3%83%B3%E4%BC%81%E6%A5%AD%E3%81%AE%E3%81%B2%E3%81%BF%E3%81%A4%2F%E8%A8%B3%E8%80%85%E3%81%82%E3%81%A8%E3%81%8C%E3%81%8D) 48 | -------------------------------------------------------------------------------- /episodes/018/README.md: -------------------------------------------------------------------------------- 1 | # 018 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-05-14 5 | - Video: https://youtu.be/CVSaVvkiJ_U 6 | - Guest: - 7 | 8 | ## Contents 9 | 10 | 11 | ### @ryojsb 12 | 13 | #### [Kubernetes 変更内容共有会(v1.21)](https://kubernetes-updates.connpass.com/event/210969/) 14 | - [Youtube URL](https://www.youtube.com/watch?v=JLAaX0Xg_VI&t=2304s) 15 | - 自分的気になったポイント 16 | - CrossNamespacePodAffinity quota scope API 17 | - namespaceSelectorやnamespaceフィールドを通して指定する、cross-namespaceなPodAffinityTermのNamespaceを制限します。(#98582) 18 | - デフォルトのPodAffinityでは同じNamespaceに属するPodを考慮してスケジュール先を計算しますが、この機能を利用すると対象となるNamespaceを拡張できます。 19 | - ProbeレベルのterminationGracePeriodSecondsフィールドを追加 20 | - Generic Ephemeral Volumes 21 | ``` 22 | volumes: 23 | - name: varlog 24 | hostPath: 25 | path: /var/log 26 | - name: scratch 27 | ephemeral: 28 | metadata: 29 | labels: 30 | type: fluentd-elasticsearch-volume 31 | ``` 32 | - Allow DaemonSets to surge during update like Deployments 33 | - DaemonSet に MaxSurge が導入 34 | 35 | #### [Annotating Kubernetes Services for Humans](https://kubernetes.io/blog/2021/04/20/annotating-k8s-for-humans/?utm_medium=email&_hsmi=124457540&_hsenc=p2ANqtz-_eUQHxiNZCO_-Qm4dBkZot4mX5iIKyC8Wvv0zTZuzM3A4y7ed-gKGVThS9Lg_U88GHKfhSBqWLJNUZ7qNtFGkvzWXbng&utm_content=124457540&utm_source=hs_email) 36 | - ヒューマンサービスディスカバリー 37 | - サービス検出の人間的な側面 38 | - 特定のサービスを所有しているのは誰ですか?チームはどのSlackチャネルに取り組んでいますか?サービスのソースはどこにありますか?現在知られ、追跡されている問題は何ですか? 39 | - ここに対してはあまり注意が払われない。 40 | - Kubernetesアノテーションは、この問題を正確に解決するように設計されている。 41 | - 見積もりサービスと呼ばれる見積もり用のKubernetesサービスがあるとします。 42 | - kubectl annotate service quote a8r.io/owner=”@sally”` をしてあげると、そのサービスのオーナーがすぐわかる。 43 | ``` 44 | Name: quote 45 | Namespace: default 46 | Labels: 47 | Annotations: a8r.io/owner: @sally 48 | Selector: app=quote 49 | Type: ClusterIP 50 | IP: 10.109.142.131 51 | Port: http 80/TCP 52 | TargetPort: 8080/TCP 53 | Endpoints: 54 | Session Affinity: None 55 | Events: 56 | ``` 57 | - 注釈に共通の規則 58 | - 注釈に共通の規則を採用することで、一貫性と理解性が保証される。 59 | - サービスカタログ 60 | - describeする上での問題 61 | - マイクロサービスとアノテーションの数が急増するにつれて、実行kubectl describeは面倒になる可能性がある。 62 | - さらに、を使用kubectl describeするには、すべての開発者がKubernetesクラスターに直接アクセスできる必要があある。 63 | - 以下の様なツールを使って可視化しよう。 64 | - [Shopify's ServicesDB](https://shopify.engineering/scaling-mobile-development-by-treating-apps-as-services) 65 | - [Spotify's System Z](https://dzone.com/articles/modeling-microservices-at-spotify-with-petter-mari) 66 | 67 | 68 | #### [Using Finalizers to Control Deletion](https://kubernetes.io/blog/2021/05/14/using-finalizers-to-control-deletion/) 69 | - kubectl delete 70 | - kubectl delete でリソースの状態は、`live` から `collected` になる。 71 | - finalizer 72 | - ファイナライザは、削除前の操作を通知するリソースのキー。 73 | - リソースのガベージ コレクションを制御し、リソースを削除する前に実行するクリーンアップ操作をコントローラに警告するように設計されている。 74 | - finalizerを含ませたリソースを作成して削除しようとすると、消えない。 75 | - Kubernetes がオブジェクトにファイナライザーが含まれていることを確認し、読み取り専用の状態にしたから。 76 | ``` 77 | cat < delete.json 129 | # vi delete.json 130 | { 131 | "apiVersion": "v1", 132 | "kind": "Namespace", 133 | "metadata": { 134 | "annotations": { 135 | ... 136 | "name": "test-ns", 137 | ... 138 | }, 139 | "spec": { 140 | "finalizers": [ 141 | "kubernetes" 142 | ] 143 | }, 144 | "status": { 145 | "phase": "Terminating" 146 | } 147 | } 148 | ``` 149 | - spec.finalizersを消して、APIに渡すと強制的に消せる。 150 | ``` 151 | # kubectl proxy & 152 | # curl -H "Content-Type: application/json" -X PUT --data-binary @delete.json http://127.0.0.1:8001/api/v1/namespaces//finalize 153 | ``` 154 | 155 | ### @chago 156 | 157 | #### [Tools to develop apps on Kubernetes](https://www.cncf.io/blog/2021/05/10/tools-to-develop-apps-on-kubernetes/) 158 | #### [Explore HashiCorp Consul with Docker Compose](https://www.hashicorp.com/blog/explore-hashicorp-consul-with-docker-compose) 159 | 160 | p.s. kubernetes novice meetup #10 お疲れ様でした!! 161 | 162 | ### @bells17 163 | 164 | #### [IDCフロンティア、マネージドコンテナサービス「IDCFクラウド コンテナ」を提供開始](https://www.idcf.jp/pressrelease/2021/20210513001.html) 165 | 166 | #### [役に立つプラットフォームを作ろう - プラットフォームエンジニアが知っておくべき『プロダクト』の考え方](https://speakerdeck.com/jacopen/yi-nili-tupuratutohuomuwozuo-rou) 167 | 168 | #### [トランスパイラ「Babel」の開発チーム、「何百万人にも使われているのに、なぜ私たちの資金は尽きようとしているのか?」。資金難により寄付を訴え](https://www.publickey1.jp/blog/21/babel.html) 169 | 170 | #### [GNU Makeの使い方](https://speakerdeck.com/kaityo256/how-to-use-gnu-make) 171 | 172 | #### [seemoo-lab/openhaystack](https://github.com/seemoo-lab/openhaystack) 173 | -------------------------------------------------------------------------------- /episodes/019/README.md: -------------------------------------------------------------------------------- 1 | # 019 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-05-21 5 | - Video: https://youtu.be/23HmP7dUCZk 6 | - Guest: [Kazuto Kusama(jacopen)さん](https://twitter.com/jacopen), [taxinさん](https://twitter.com/taxin_tt) 7 | 8 | ## Contents 9 | 10 | ### [chago](https://twitter.com/it__chago) 11 | 欠席 12 | 13 | ### [bells17](https://twitter.com/bells17_) 14 | 15 | #### [Kubernetes Internal #8](https://k8sinternal.connpass.com/event/212249/) 16 | 17 | Kubernetes Internalの第8回目 18 | 19 | 2021/05/26(水) 19:00 〜 21:00 20 | 21 | から開催します! 22 | 23 | #### [KubeConの動画公開されたって](https://twitter.com/superbrothers/status/1393362911528034304?s=21) 24 | 25 | #### [Goバイナリの脆弱性検知](https://knqyf263.hatenablog.com/entry/2021/04/30/061147) 26 | 27 | TrivyでGoバイナリの脆弱性検知も可能になったんだって 28 | 29 | すっごい! 30 | 31 | #### [経産省、特許庁のモデル契約書がMarkdownになったんだって](https://twitter.com/taisukef/status/1395625301258870789) 32 | 33 | #### [kcp](https://github.com/kcp-dev/kcp) 34 | 35 | PodとかKubernetesに標準で入ってるリソースがほとんど?入っていないKubernetes API Serverのプロダクトらしい 36 | 37 | Cluster APIみたいなOperator用のミニマム実装のプロダクトとのこと 38 | 39 | 詳しくは今週のKubernetes Meetup Tokyoのすぱぶらさんセッションを見ると解説してくださってる 40 | 41 | #### [COISはオブジェクトストレージへの権限をk8s ServiceAccountに出せるような操作を一般化したかったのではないかとのこと](https://twitter.com/ymmt2005/status/1394987060906373122?s=20) 42 | 43 | おまけ 44 | 45 | https://twitter.com/bells17_/status/1394985995960004614?s=20 46 | 47 | ### [ry](https://twitter.com/URyo_0213) 48 | 49 | #### [PromCon Online 2021 highlights](https://sysdig.com/blog/promcon-online-2021/) 50 | 51 | #### [Introducing an Operator for Cortex](https://opstrace.com/blog/introducing-a-cortex-operator/) 52 | - [cortex operator installation](https://github.com/opstrace/cortex-operator#installation) 53 | - competitor 54 | - [thanos operator](https://github.com/banzaicloud/thanos-operator) 55 | - [試してみた記事](https://qiita.com/kentakozuka/items/991c6733ccdfc61aaa36) 56 | - [Victoria Metrics operator](https://github.com/VictoriaMetrics/operator) 57 | 58 | #### [vcluster](https://github.com/loft-sh/vcluster) 59 | - [vcluster homepage](https://www.vcluster.com/) 60 | - Kubernetes Cluster上で仮想的にclusterを作成するもの 61 | - [第17回](https://github.com/kubernetes-internal/kubenews/tree/main/episodes/017)でも少し話した。 62 | - デモあり 63 | 64 | ### [jacopen](https://twitter.com/jacopen) 65 | - AWS App Runner のご紹介(https://aws.amazon.com/jp/blogs/news/introducing-aws-app-runner/) 66 | -------------------------------------------------------------------------------- /episodes/020/README.md: -------------------------------------------------------------------------------- 1 | # 020 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-05-28 5 | - Video: https://youtu.be/zCF4Cif68_g 6 | - Guest: [@taisho6339](https://twitter.com/taisho6339) 7 | 8 | ## Contents 9 | 10 | ### [@taisho6339](https://twitter.com/taisho6339) 11 | 12 | [最短で理解して運用するGrafana Loki](https://taisho6339.hatenablog.com/entry/2021/05/26/104449) 13 | 14 | ### [chago](https://twitter.com/it__chago) 15 | 16 | #### [Google Cloud Day: Digital ’21](https://cloudonair.withgoogle.com/events/google-cloud-day-digital-21?utm_source=twitter&utm_medium=social&utm_campaign=FY21-Q2-JAPAN-otherevent-onlineevent-er-GoogleCloudDayDigital21_gh_mc&utm_content=tw_day1) 17 | - [GKE Autopilot](https://cloud.google.com/blog/ja/products/containers-kubernetes/introducing-gke-autopilot) 18 | - [#11](https://github.com/kubernetes-internal/kubenews/tree/main/episodes/011) でも登場 19 | - [Gateway API](https://cloud.google.com/kubernetes-engine/docs/concepts/gateway-api?hl=ja) 20 | - サービスの外部公開に 21 | - GatewayClass. Gateway, HTTPRoute 22 | - [Dataplane v2](https://cloud.google.com/kubernetes-engine/docs/concepts/dataplane-v2?hl=ja) 23 | - kernelにiptabelsではなくeBPFを採用 24 | - networkpolicy loggingが可能に 25 | - [MultidimPodAutoscaler](https://cloud.google.com/kubernetes-engine/docs/how-to/multidimensional-pod-autoscaling?hl=ja) 26 | - MPA=HPA+VPA 27 | - [GKE リリース スケジュール](https://cloud.google.com/kubernetes-engine/docs/release-schedule?hl=ja) 28 | 29 | #### [kubectl-whisper-secret](https://github.com/rewanthtammana/kubectl-whisper-secret) 30 | 31 | ### [ry](https://twitter.com/URyo_0213) 32 | 33 | #### [Key Kubernetes Metrics and Resources to Monitor for Peak Cluster Performance](https://sematext.com/blog/kubernetes-metrics/?utm_medium=email&_hsmi=128701290&_hsenc=p2ANqtz-91bXgQsOeSbo3nChclJtFd9RA0u9SInJEu0Iu4L1Ccrzqq9gFq-FIBtWIa50vcLuBqQBY6d9KDNb-nRXugiph90v2ngQ&utm_content=128701290&utm_source=hs_email) 34 | 35 | #### [Learn how Istio can provide a service mesh for your functions](https://www.openfaas.com/blog/istio-functions/) 36 | 37 | #### [AWS Secrets Manager on Kubernetes using AWS Secrets CSI driver Provider](https://particule.io/en/blog/aws-csi-secret-manager/?utm_medium=email&_hsmi=128701290&_hsenc=p2ANqtz-9dlcQxlFKG1ns4PygsHU76PDIVr8TtzD7kiWPgYLMoOtPXJbs6KNcvnp30jQoXmq6_DLldc95C3eo_X9SmF9VAZVFMDw&utm_content=128701290&utm_source=hs_email) 38 | 39 | ### [bells17](https://twitter.com/bells17_) 40 | 41 | #### [kubectl internal / Kubernetes Internal #8](https://www.slideshare.net/pfi/kubectl-internal-kubernetes-internal-8) 42 | 43 | 今週水曜日にすぱぶらにKubernetes Internalでご登壇頂きました 44 | kubectl の実装やプラグインについてのあれやこれやに加えて、すぱぶらさんのk8sコントリビューター経験などについても色々教えていただいた会になってます 45 | 配信動画はこちら 46 | https://youtu.be/4e3i3LbhhAY 47 | 48 | 49 | #### [Kubernetes Internal #9](https://k8sinternal.connpass.com/event/213280/) 50 | 51 | 次回はバルゴさんから minikube についてお話していただく予定です! 52 | 53 | #### [Kubernetes Meetup Tokyo #42](https://k8sjp.connpass.com/event/214286/) 54 | 55 | 次回は負荷試験系の話題! 56 | 57 | #### [Kubernetes Novice Tokyo #11](https://k8s-novice-jp.connpass.com/event/213756/) 58 | 59 | LT枠まだ空いてそうなので、皆さん是非応募してみてもらえると! 60 | 61 | #### [Add SupportsBlock method to provisionWrapper for being able to use block device](https://github.com/kubernetes-csi/external-provisioner/pull/635) 62 | 63 | ついでにこっちも 64 | https://github.com/kubernetes-csi/external-provisioner/pull/636 65 | 66 | #### [RyuSAさんがこの前novice tokyoのデモきっかけでkubebuilder試してくれた!](https://twitter.com/ryusa_eng/status/1397179247622463492) 67 | 68 | やったね! 69 | 70 | #### [vclusterも!](https://twitter.com/ryusa_eng/status/1396093247789797381) 71 | 72 | #### [改めてKubeConの動画全部アップされたらしい](https://twitter.com/kubernetesio/status/1397897762776223745) 73 | 74 | ryさんおすすめのセッション教えて.. 75 | 視聴者のみんなもReCapで紹介されてたやつ以外に面白そうなやつ教えて欲しい 76 | 77 | #### ["Platform for Platform" with Kubernetes 〜 ML Platform and KaaS 〜](https://ca-base-next.cyberagent.co.jp/sessions/amsy810-k8s/) 78 | 79 | 今日やってたCAのイベントでの青山さんのセッションらしい 80 | あと、We are hiringとのことなので、興味ある方は是非 81 | 82 | #### [Istioによるサービスメッシュをどのようにプロダクションレディにするか](https://techblog.zozo.com/entry/zozotown-istio-production-ready) 83 | 84 | 久々のIstio話しだ! 85 | -------------------------------------------------------------------------------- /episodes/021/README.md: -------------------------------------------------------------------------------- 1 | # 021 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-06-04 5 | - Video: 6 | - Guest: 7 | 8 | ## Contents 9 | 10 | ### [ry](https://twitter.com/URyo_0213) 11 | 12 | ### [bells17](https://twitter.com/bells17_) 13 | 14 | #### [CI/CD Conference](https://link.medium.com/uMx3ZNaPKgb) 15 | 16 | 9月開催らしい 17 | 18 | #### [OCHaCafe4 #3 CI/CD 最新事情](https://ochacafe.connpass.com/event/211934/) 19 | 20 | cyberblackさんがお話するらしい! 21 | 22 | #### [#Kubernetes 認定試験に試験シミュレーターへのアクセスが含まれるようになりました。](https://twitter.com/linux_fdtn_jp/status/1400647935705051140?s=21) 23 | 24 | - CKA 25 | - CKAD 26 | - CKS 27 | 28 | で試験シミュレーターへのアクセスが可能になったらしい 29 | もうCKS買っちゃったんだけど、アクセス権あるのかな? 30 | 31 | #### [MOCO - Kubernetes 用 MySQL クラスタ運用ソフトウェア](https://blog.cybozu.io/entry/moco) 32 | 33 | なんか色々すげぇ 34 | 35 | #### [vclusterでお手軽Kubernetesマルチテナント](https://speakerdeck.com/jacopen/vclusterdeoshou-qing-kubernetesmarutitenanto) 36 | 37 | jacopenさんもvclusterの話してる 38 | 39 | #### [Operatorの定義や設計のベストプラクティス](https://twitter.com/omichiki1/status/1400281852074594304?s=21) 40 | 41 | https://github.com/cncf/tag-app-delivery/blob/public-comment/operator-wg/whitepaper/Operator-WhitePaper_v1-0.md 42 | 43 | #### [GMOペパボのインフラ担当が感じた”Kubernetes”化の不安 ”GitOps”でアプリケーション稼働は快適になる](https://logmi.jp/tech/articles/324393) 44 | 45 | GMOペパポのKubernetes事例 46 | 47 | #### [GKEのContainer native Cloud DNSが preview に](https://twitter.com/kazshinohara/status/1399204020388986884?s=21) 48 | 49 | kube-dnsを置き換えられるらしい 50 | 51 | ### [chago](https://twitter.com/it__chago) 52 | 53 | - [TeamTNT Targets Kubernetes, Nearly 50,000 IPs Compromised in Worm-like Attack](https://www.trendmicro.com/en_us/research/21/e/teamtnt-targets-kubernetes--nearly-50-000-ips-compromised.html) 54 | - [MOCO - Kubernetes 用 MySQL クラスタ運用ソフトウェア](https://blog.cybozu.io/entry/moco) 55 | -------------------------------------------------------------------------------- /episodes/022/README.md: -------------------------------------------------------------------------------- 1 | # 022 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-06-11 5 | - Video: https://youtu.be/UnkDvg9cPQk 6 | - Guest: @kyohmizu 7 | 8 | ## Contents 9 | 10 | ### [ry](https://twitter.com/URyo_0213) 11 | 12 | ### [chago](https://twitter.com/it__chago) 13 | 14 | 15 | ### [bells17](https://twitter.com/bells17_) 16 | 17 | 試験的にzennの方で記事化してまとめてみた 18 | 19 | https://zenn.dev/bells17/articles/k8s-cloud-native-and-other-20210611 20 | -------------------------------------------------------------------------------- /episodes/023/README.md: -------------------------------------------------------------------------------- 1 | # 023 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-06-18 5 | - Video: https://youtu.be/SorzeScSa0I 6 | - Guest: [@kitagry](https://twitter.com/kitagry), [@mochizuki875](https://twitter.com/mochizuki875) 7 | 8 | ## Contents 9 | 10 | ### [mochizuki875](https://twitter.com/mochizuki875) 11 | コンテナの歴史を追いながらいまいちどコンテナについておさらいしてみる / Infra Study 2nd #2 12 | - スライド(https://speakerdeck.com/tenforward/infra-study-2nd-number-2) 13 | - 動画(https://youtube.com/watch?v=poQ-Yf0PtME) 14 | - 様々なコンテナ要素技術を試しているデモ(https://asciinema.org/~tenforward) 15 | 16 | - CVE-2021-31440: Kubernetes container escape using eBPF 17 | - https://nvd.nist.gov/vuln/detail/CVE-2021-31440 18 | - https://tigera.io/blog/cve-2021-31440-kubernetes-container-escape-using-ebpf/ 19 | 20 | - Top 8 Kubernetes Security Best Practices 21 | - https://magalix.com/blog/top-8-kubernetes-security-best-practices?fbclid=IwAR1ZUpmtqBUGLOJKFN9cIZOM9vRTkxuC4SFHgHWsRj7SWx0BIkH-xY-WFUY 22 | 23 | ### [北川亮さん](https://twitter.com/kitagry) 24 | 25 | [入社一ヶ月でGKEのSecret管理基盤を作った話](https://www.m3tech.blog/entry/berglas-secret-controller) 26 | 27 | ### [bells17](https://twitter.com/bells17_) 28 | 29 | 続く限りzennの方でやってこうかなと 30 | 31 | https://zenn.dev/bells17/articles/k8s-cloud-native-and-other-20210618 32 | -------------------------------------------------------------------------------- /episodes/024/README.md: -------------------------------------------------------------------------------- 1 | # 024 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-06-25 5 | - Video: https://youtu.be/BLcXweqb654 6 | - Guest: [@kiyoshim55](https://twitter.com/kiyoshim55)さん, [@hhiroshell](https://twitter.com/hhiroshell)さん 7 | 8 | ## Contents 9 | 10 | 今回は、ゲストお2人をお呼びし、 11 | - Kubenetes Meetup Tokyo 12 | - Kubernetes Novice Tokyo 13 | 14 | での登壇について伺いました。 15 | 16 | ### [bells17](https://twitter.com/bells17_) 17 | 18 | [今週のKubernetes + Cloud Native + その他ニュース](https://zenn.dev/bells17/articles/k8s-cloud-native-and-other-20210625) 19 | -------------------------------------------------------------------------------- /episodes/025/README.md: -------------------------------------------------------------------------------- 1 | # 025 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-07-02 5 | - Video: https://youtu.be/-_5Xlf00h-Q 6 | - Guest: 7 | 8 | ## Contents 9 | 10 | ### [ry](https://twitter.com/URyo_0213) 11 | #### [Monitoring Kyverno with Prometheus](https://nirmata.com/2021/06/18/monitoring-kyverno-with-prometheus/?utm_medium=email&_hsmi=136268628&_hsenc=p2ANqtz-8LKorO3aGxWZ3I333vWoVNs93yMD6lYS6wVzXKtyuqlzx5vm2QmMoBmImb_JCpPeVypjp7aFsYVUDzWkyefOrMylSutg&utm_content=136268628&utm_source=hs_email) 12 | 13 | ついに、keyvernoがmonitoringされている例がでました。 14 | keyvernoがに関しては、以下を参照ください。 15 | - [keyverno](https://github.com/kyverno/kyverno) 16 | - [Policy Engine on Kubernetes](https://speakerdeck.com/ry/policy-engine-on-kubernetes) 17 | 18 | #### [cAdvisor and Kubernetes Monitoring Guide](https://www.cloudforecast.io/blog/cadvisor-and-kubernetes-monitoring-guide/?utm_medium=email&_hsmi=136268628&_hsenc=p2ANqtz-9kxHZC-21qKlC7vStJ7nZ56D0bpMNiCODTo08Ty8FqWAt05W12RedPi7ifoxxXzLOFH9WeIo4k7kJabFtiS57gMr_Vbg&utm_content=136268628&utm_source=hs_email) 19 | `Since cAdvisor is already integrated with the kubelet binary, ~~`とあり、kubeletに統合されています。 20 | 21 | (これを見るまで、docker用のものだと思ってました。) 22 | 23 | この記事では、cpu, memory, diskなどの項目に関するmetric名やGrafanaから確認する方法についてが書かれているので、とても参考になる資料となっています。 24 | 25 | #### [Avoiding Kubernetes Cluster Outages with Synthetic Monitoring](https://www.infracloud.io/blogs/avoiding-kubernetes-cluster-outages-synthetic-monitoring/?utm_medium=email&_hsmi=136268628&_hsenc=p2ANqtz-_aYVNSzzibfav2o22vVUAvukcg1dUvqw9o0EFcjlonLoltfr8Jdv51KLqd5bcrww_E8kStXOy4Q-2dIecm5dp8mhNMwA&utm_content=136268628&utm_source=hs_email) 26 | - [Kuberhealthy](https://github.com/kuberhealthy/kuberhealthy) 27 | - khcheck / khjob(Kuberhealthy check / Kuberhealthy job)と呼ばれるカスタムリソースによって作成されたテストコンテナーを用いる 28 | - khjobが1回実行されるのに対し、khcheckは定期的に実行されることを除いて、両方のカスタムリソースの機能はほぼ同じ 29 | - Kuberhealthy合成チェックのユースケース 30 | - ネットワークの変更 31 | - 実行する必要のある主要なネットワーク変更がある場合は、HTTPまたはTCP khchecksを使用して重要なエンドポイントをチェック 32 | - IAMの変更 33 | - 適切なKIAM機能を検証するためのKIAMチェックがある。 34 | - エンドポイント接続 35 | - データベースやKey-Valueストアなど、クラスター外の重要な要素が稼働しているかどうかを常に確認できる。 36 | - AMI検証 37 | - AMIチェックを変更して、NTP同期、ディレクトリ構造、ユーザーアクセスなど、カスタムベイクされたAMIの重要な機能を確認できる。 38 | - CoreDNSチェック 39 | - リソースクォータチェック 40 | 41 | #### [Run the HAProxy Kubernetes Ingress Controller Outside of Your Kubernetes Cluster](https://www.haproxy.com/blog/run-the-haproxy-kubernetes-ingress-controller-outside-of-your-kubernetes-cluster/?utm_medium=email&_hsmi=136268628&_hsenc=p2ANqtz-9HT5IOiCl6ZsXHnx30juwpMPq17EJ5U-uQkif-7d-ATXBi6mGdqlZl_doy-JexA5L3xfhHPaMb8EgmXbbwSM33FV3b0g&utm_content=136268628&utm_source=hs_email) 42 | 43 | #### [Handling Auth in EKS Clusters: Setting Up Kubernetes User Access Using AWS IAM](https://nextlinklabs.com/insights/handling-authentication-in-EKS-clusters-kubernetes-AWS-IAM?utm_medium=email&_hsmi=136268628&_hsenc=p2ANqtz-98auBpz71i9RKXibaaCZuPssqSLvFu5XsnRJaLz_V1BgpjUtGDXhweg5wb28sgAm_Y04kVkbwc6W0jXNHSeqvhAmACEg&utm_content=136268628&utm_source=hs_email) 44 | 45 | #### [What end-users want out of Prometheus remote storage: A comparison of M3 and Thanos](https://chronosphere.io/learn/what-end-users-want-out-of-prometheus-remote-storage-a-comparison-of-m3-and-thanos/?utm_campaign=kube-weekly&utm_medium=cncf&_hsmi=136268628&_hsenc=p2ANqtz--1ulP4sIeiU3tFwk1iw6XBnJh8bEoV_GiYDv4s-JVnYd042EyVmXAimvFPoYGOkW7cle0tzSdc4tj_1KHDH8HJdGVXxw&utm_source=newsletter) 46 | - prometheusのリモートストレージソリューションとして、以下が人気 47 | - Thanos 48 | - M3 49 | - Cortex 50 | - 以下の観点でThanosとM3を比較 51 | - 信頼性と可用性 52 | - Thanos 53 | - クエリアによって取得されたデータに加えてルール(アラートルールやPrometheusレコーディングルールなど)を適用できるネイティブクエリサービスがある。 54 | - Thanosの分散読み取りまたはクエリパスが原因で失敗率が高くなることがある。 55 | - M3 56 | - 集中ストレージを備えた最適化されたクエリエンジンを持つように構築および設計されている。 57 | - M3のクエリサービスは、クォーラム読み取りロジックを使用して、各データポイントの3つのコピーのうち少なくとも2つがM3DBからフェッチされ、クエリエージェント(Grafanaなど)に返される結果を一貫して計算する。 58 | - M3のクエリサービスはクエリ要求に優先順位を付けないため、要求(特に大規模な要求)の流入により、ボトルネックが発生し、クエリ処理全体の速度が低下する可能性がある。 59 | - スケーラビリティとシンプルさ 60 | - Thanos 61 | - Thanosは、PrometheusのProxyの役割としてサイドカーで構成される。 62 | - ??? 63 | - M3 64 | - 分散時系列データベース(M3DB)、取り込みおよびダウンサンプリング層(M3コーディネーター)、およびクエリエンジン(M3クエリ)の3つのコアコンポーネントで構成されている。 65 | - アーキテクチャ上、M3は簡単にスケールアップまたはスケールダウンできる。 66 | - M3DBは1つのユニットとして水平方向にスケールできるが、クラスター内のM3DBノードの数のサイズを変更する際、M3DBはステートフルであり、ノードメンバーシップの変更時にピアにデータをストリーミングするため、大規模な管理が困難になる可能性がある。 67 | - こちらは、Operatorによって自動的にスケールアップおよびスケールダウンできるようになっている。 68 | - 効率とスピード 69 | - Thanos 70 | - Thanosサイドカーは、2時間のブロックでオブジェクトストレージにデータをアップロードする。 71 | - Thanosはコンパクターコンポーネントを使用してこれらのブロックを時間の経過とともにマージし、クエリ効率を向上させ、ストレージサイズを削減する。 72 | - Thanosコンパクターは一度に1つのインスタンスのリクエストのみを処理するように設定されているため、ユーザーはデータが完全に圧縮されるのを待ってから(つまり、2時間ごとに)集計データをクエリできる。 73 | - M3 74 | - すべてのダウンサンプリングおよびアグリゲーションはM3・コーディネーターによってローカルに行われる。 75 | - この設定では、集計はリアルタイムで行われ、各解決間隔の終わりに、集計されたメトリックがすぐにクエリに使用できます(つまり、5分の解像度でデータを集計する場合は5分ごと)。 76 | - M3コーディネーターサイドカーにダウンタイムがあると、集約されたデータが失われる可能性がある。 77 | - アフォーダビリティ 78 | 79 | ### [chago](https://twitter.com/it__chago) 80 | 81 | 82 | ### [bells17](https://twitter.com/bells17_) 83 | 84 | https://zenn.dev/bells17/articles/k8s-cloud-native-and-other-20210702 85 | -------------------------------------------------------------------------------- /episodes/026/README.md: -------------------------------------------------------------------------------- 1 | # 026 2 | 3 | - Hosted by @bells17 4 | - Recording date: 2021-07-09 5 | - Video: https://youtu.be/XlJu96QZi94 6 | - Guest: 7 | 8 | ## Contents 9 | 10 | ### [chago](https://twitter.com/it__chago) 11 | 12 | ### [bells17](https://twitter.com/bells17_) 13 | 14 | https://zenn.dev/bells17/articles/k8s-cloud-native-and-other-20210709 15 | 16 | ### [ry](https://twitter.com/URyo_0213) 17 | 18 | #### [Kubernetes Essential Tools: 2021](https://itnext.io/kubernetes-essential-tools-2021-def12e84c572) 19 | 20 | #### [Run the HAProxy Kubernetes Ingress Controller Outside of Your Kubernetes Cluster](https://www.haproxy.com/blog/run-the-haproxy-kubernetes-ingress-controller-outside-of-your-kubernetes-cluster/?utm_medium=email&_hsmi=136268628&_hsenc=p2ANqtz-9HT5IOiCl6ZsXHnx30juwpMPq17EJ5U-uQkif-7d-ATXBi6mGdqlZl_doy-JexA5L3xfhHPaMb8EgmXbbwSM33FV3b0g&utm_content=136268628&utm_source=hs_email) 21 | 22 | (要約) 23 | 24 | Podへ外部から到達する際に、NodePortもしくはLoad BalancerのServiceを公開する必要があり、クラウド環境では、LoadBalancerオプションは各クラウドプロバイダーが用意しているロードバランサーがありそれを利用できるが、オンプレミス環境では、通常 NodePortを使用し、ロードバランサーを手作業で前面に配置する必要があります。 25 | 26 | 従来のレイアウトでは、外部ロードバランサーがワーカーノードの 1 つにトラフィックを送信し、次に Kubernetes がIngressコントローラーポッドを実行しているノードにトラフィックを中継します。 27 | 28 | HAProxy Kubernetes Ingressコントローラのバージョン 1.5 以降では、Kubernetes クラスターの外部で実行するオプションがあり、前にロードバランサーを追加する必要がなくなります。 29 | 30 | 注意すべき点として、IngressコントローラがPodとして実行されておらず、Kubernetes クラスタ内に存在しない場合、Pod レベルのネットワークに何らかの方法でアクセスする必要があります。 31 | 32 | Project Calicoを Kubernetes のネットワーク プラグインとしてインストールし、次に Calico が BGP ピアリングを介してIngressコントローラ サーバーとネットワーク ルートを共有できるようにすることで、この問題を解決することができます。 33 | 34 | #### [Handling Auth in EKS Clusters: Setting Up Kubernetes User Access Using AWS IAM](https://nextlinklabs.com/insights/handling-authentication-in-EKS-clusters-kubernetes-AWS-IAM?utm_medium=email&_hsmi=136268628&_hsenc=p2ANqtz-98auBpz71i9RKXibaaCZuPssqSLvFu5XsnRJaLz_V1BgpjUtGDXhweg5wb28sgAm_Y04kVkbwc6W0jXNHSeqvhAmACEg&utm_content=136268628&utm_source=hs_email) 35 | 36 | EKSクラスターでの認証の処理について 37 | -------------------------------------------------------------------------------- /images/afdesign/kubenews-hashtag.afdesign: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubernetes-internal/kubenews/75a0db57ffdb2a73048ab3295a3f2872e80612f5/images/afdesign/kubenews-hashtag.afdesign -------------------------------------------------------------------------------- /images/afdesign/kubenews-message.afdesign: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubernetes-internal/kubenews/75a0db57ffdb2a73048ab3295a3f2872e80612f5/images/afdesign/kubenews-message.afdesign -------------------------------------------------------------------------------- /images/afdesign/kubenews-thumbnail-org.afdesign: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubernetes-internal/kubenews/75a0db57ffdb2a73048ab3295a3f2872e80612f5/images/afdesign/kubenews-thumbnail-org.afdesign -------------------------------------------------------------------------------- /images/afdesign/kubenews-thumbnail-v2.afdesign: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubernetes-internal/kubenews/75a0db57ffdb2a73048ab3295a3f2872e80612f5/images/afdesign/kubenews-thumbnail-v2.afdesign -------------------------------------------------------------------------------- /images/afdesign/kubenews-thumbnail.afdesign: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubernetes-internal/kubenews/75a0db57ffdb2a73048ab3295a3f2872e80612f5/images/afdesign/kubenews-thumbnail.afdesign -------------------------------------------------------------------------------- /images/kubenews-hashtag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubernetes-internal/kubenews/75a0db57ffdb2a73048ab3295a3f2872e80612f5/images/kubenews-hashtag.png -------------------------------------------------------------------------------- /images/kubenews-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubernetes-internal/kubenews/75a0db57ffdb2a73048ab3295a3f2872e80612f5/images/kubenews-message.png -------------------------------------------------------------------------------- /images/kubenews-thumbnail-org.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubernetes-internal/kubenews/75a0db57ffdb2a73048ab3295a3f2872e80612f5/images/kubenews-thumbnail-org.png -------------------------------------------------------------------------------- /images/kubenews-thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubernetes-internal/kubenews/75a0db57ffdb2a73048ab3295a3f2872e80612f5/images/kubenews-thumbnail.png -------------------------------------------------------------------------------- /resource/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubernetes-internal/kubenews/75a0db57ffdb2a73048ab3295a3f2872e80612f5/resource/.DS_Store --------------------------------------------------------------------------------