├── .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 | 
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 | 
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 | 
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 | 
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 |
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 | 
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 | 
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-cop.io/expand-threshold-percent: ボリュームの拡張をトリガーする閾値
133 | - volume-expander-operator.redhat-cop.io/expand-by-percent: 拡張される既存ボリュームのサイズに基づくパーセンテージ
134 | - volume-expander-operator.redhat-cop.io/expand-up-to: ボリュームの上限
135 | - volume-expander-operator.redhat-cop.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 | 
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
--------------------------------------------------------------------------------