Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
プロダクションレディ Pods / Production-Ready Pods
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kazuki Suda
December 20, 2017
Technology
2k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
プロダクションレディ Pods / Production-Ready Pods
市ヶ谷Geek★Night #16 Kubernetes Christmas! /
https://ichigayageek.connpass.com/event/74057/
Kazuki Suda
December 20, 2017
More Decks by Kazuki Suda
See All by Kazuki Suda
"なるべくスケジューリングしない" を実現する "PreferNoSchedule" taint
superbrothers
0
220
実践/先取り「入門 Kubernetes Validating/Mutating Admission Policy」 / CloudNative Days Winter 2024
superbrothers
0
70
個人的、Kubernetes の最新注目機能! (2024年5月版)
superbrothers
0
170
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher" エラーが発生する原因と対策
superbrothers
0
1.5k
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版)
superbrothers
2
1.6k
コミュニティ/ 勉強会紹介
superbrothers
0
280
高可用性、省力運用を目指す 自宅 Kubernetes クラスタ (K8s@home #1)
superbrothers
13
6.6k
KubeCon + CloudNativeCon Europe 2022 Recap
superbrothers
0
110
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後!
superbrothers
2
8.7k
Other Decks in Technology
See All in Technology
Hatena Engineer Seminar 37 jj1uzh
jj1uzh
0
170
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
1.1k
AIエージェントとPhysical AIが拓く製造業の変革(ハノーバーメッセリキャップ)
iotcomjpadmin
0
170
BPaaSで進むAIオペレーションの現在地 AI実装が効く領域とスケーラビリティの選定と実装
kentarofujii
0
210
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
150
從觀望到全公司落地:AI Agentic Coding 導入實戰 — 流程整合與安全治理
appleboy
0
170
Deep Data Security 機能解説
oracle4engineer
PRO
2
230
10年間のブログ発信を振り返って見えたWebアプリケーションエンジニアとしての軌跡
stefafafan
0
190
Amazon Redshift zero-ETL 統合を活用した軽量なマルチプロダクトデータ可視化基盤 / Lightweight Multi-Product Data Visualization with Amazon Redshift Zero-ETL
kaminashi
0
110
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
0
110
トークン最適化のためのユーザーストーリー分析 / User Story Analysis for Token Optimization
oomatomo
0
130
Featured
See All Featured
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
55k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
280
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
Abbi's Birthday
coloredviolet
3
8.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
The SEO Collaboration Effect
kristinabergwall1
1
490
Building AI with AI
inesmontani
PRO
1
1.1k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
450
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
290
What's in a price? How to price your products and services
michaelherold
247
13k
Transcript
䋐٠靼(FFLӹ/JHIU ,B[VLJ4VEBLTVEB![MBCDPKQ !TVQFSCSPUIFST ϓϩμΫγϣϯϨσΟ Pods
,B[VLJ4VEB!TVQFSCSPUIFST Ӝ اؿزؐؑ،ؒٝآص،!;-BC Ӝ ,VCFSOFUFT.FFUVQ5PLZP⚺⪵
،آؑٝت 1PETהכ⡦ַ فٗتؙءّٖٝر؍1PET
1PETהכ⡦ַ
Ӝ 醱侧ך؝ٝذشה醱侧ךنُٔ٦ي Ӝ رفٗ؎ך剑㼭⽃⡘ Ӝ *1QFS1PE 1PET 1PE Volume 8FCTFSWFS
'JMF1VMMFS
apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: -
name: nginx image: nginx:1.13.7 ports: - containerPort: 80 Ӝ 醱侧ך؝ٝذشה醱侧ךنُٔ٦ي Ӝ رفٗ؎ך剑㼭⽃⡘ Ӝ *1QFS1PE 1PET
1PEٓ؎ؿ؟؎ؙٕ 3VOOJOH 5FSNJOBUJOH 4DIFEVMJOH
فٗتؙءّٖٝر؍1PET
#VJMEJOH $POUBJOFST Ӝ 5IF5XFMWF'BDUPS"QQ Ӝ 㼭ְׁك٦أ؎ً٦آ⢪ֲ Ӝ ♶銲זػح؛٦آ؎ٝأز٦ٕ׃זְ NVMUJTUBHFCVJMET Ӝ
فٗإأ؝ٝذش Ӝ ؚٗכTUEPVU TUEFSSח⳿⸂ׅ
NVMUJTUBHFCVJMET 6TFNVMUJTUBHFCVJMET]%PDLFS%PDVNFOUBUJPO FROM golang:1.7.3 WORKDIR /go/src/github.com/alexellis/href-counter/ RUN go get -d
-v golang.org/x/net/html COPY app.go . RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app . FROM alpine:latest RUN apk --no-cache add ca-certificates WORKDIR /root/ COPY --from=0 /go/src/github.com/alexellis/href-counter/app . CMD ["./app"]
㹋遤ח䗳銲זٔا٦أָ婍גְזְظ٦سחأ؛آُ٦ٕ ׁג׃תֲ Ӝ ؝ٝذشך䗳銲剑⡚ꣲ䗳銲זٔا٦أ䭷㹀ׅ SFTPVSDFSFRVFTUT 4DIFEVMJOH
SFTPVSDFSFRVFTUT Ӝ ؝ٝذشך㹋遤ח䗳銲剑⡚ꣲ䗳銲זٔا٦أ Ӝ أ؛آُ٦ׁٕ؝ٝذشךٔا٦أ銲実ך さ鎘ָظ٦سך㺁ꆀ״㼰זְֿה⥂鏾ׅ apiVersion: v1 kind: Pod
metadata: name: kuard spec: containers: - image: gcr.io/kuar-demo/kuard- name: kuard resources: requests: cpu: "500m" memory: "128Mi" ports: - containerPort: 8080 name: http protocol: TCP
3VOOJOH ظ٦سךٔا٦أ⢪ְⴖג׃תֲ ،فٔ؛٦ءָؙّٝٓحءُ׃ג㔿תג׃תֲ ؙٔؒأز「ֽ彊⪒ָ穄חؙٔؒأزָֹג׃תֲ Ӝ ؝ٝذشךٔا٦أ⢪欽ꆀך♳ꣲ䭷㹀ׅ SFTPVSDFMJNJUT Ӝ ؝ٝذشךقٕأثؑحؙ鏣㹀ׅ -JWFOFTTQSPCF
欰ֹגְַוֲַ 3FBEJOFTTQSPCF 䘔瘶דַֹוֲַ
apiVersion: v1 kind: Pod metadata: name: kuard spec: containers: -
image: gcr.io/kuar-demo/kuar name: kuard resources: requests: cpu: "500m" memory: "128Mi" limits: cpu: "1000m" memory: "256Mi" ports: - containerPort: 8080 name: http protocol: TCP Ӝ ؝ٝذشךٔا٦أ⢪欽ꆀך♳ꣲ䭷㹀ׅ $16♳ꣲ馄ִג⢪欽׃זְ NFNPSZ♳ꣲ馄ִה00.ח״فٗإأָ媷ׁ SFTPVSDFMJNJUT
-JWFOFTTQSPCF Ӝ ؝ٝذشⰻفٗإأך娤崞湊鋔 Ӝ 㣟侁ׅה؝ٝذش䓼ⵖ涸חⱄ饯⹛ׅ name: kuard spec: containers: -
image: gcr.io/kuar-demo/kuard-amd64:1 name: kuard ports: - containerPort: 8080 name: http protocol: TCP livenessProbe: httpGet: path: /healthy port: 8080 initialDelaySeconds: 5 timeoutSeconds: 1 periodSeconds: 10 failureThreshold: 3 readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 30 timeoutSeconds: 1 periodSeconds: 10 failureThreshold: 3
-JWFOFTTQSPCF Ӝ FYFD؝وٝسך㹋遤 &YJU؝٦سָדIFBMUIZⴻ㹀 Ӝ IUUQ(FU)551(&5ؙٔؒأز أذ٦ةأ؝٦سָ⟃♳劢弫דIFBMUIZⴻ㹀 Ӝ UDQ4PDLFU5$14PDLFU ؝طؙءָّٝ然甧ׅלIFBMUIZⴻ㹀
http.HandleFunc("/healthy", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("OK")) } http.ListenAndServe(":8080", nil)
3FBEJOFTT1SPCF Ӝ ؝ٝذشⰻفٗإأָؙٔؒأزח 䘔瘶דַֹ Ӝ 㣟侁ׅה4FSWJDFT鸐ׄג زٓؿ؍حؙ「⥋׃זְ 6OSFBEZ name: kuard
spec: containers: - image: gcr.io/kuar-demo/kuard-amd64:1 name: kuard ports: - containerPort: 8080 name: http protocol: TCP livenessProbe: httpGet: path: /healthy port: 8080 initialDelaySeconds: 5 timeoutSeconds: 1 periodSeconds: 10 failureThreshold: 3 readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 30 timeoutSeconds: 1 periodSeconds: 10 failureThreshold: 3
4FSWJDFT Ӝ ⟎䟝*1הه٦ز Ӝ ٓكٕإؙٖةח״ 1PEךؚٕ٦ؾؚٝ Ӝ ؟٦ؽأة؎ف $MVTUFS*1 /PEF1PSU
-PBE#BMBODFS 1PE app web 1PE app web 3FQMJDB4FU 4FSWJDF VIP: 10.0.0.249 Selector: app=web
apiVersion: v1 kind: Service metadata: name: kuard spec: type: ClusterIP
selector: app: kuard ports: - protocol: TCP port: 8080 targetPort: 8080 4FSWJDFT Ӝ ⟎䟝*1הه٦ز Ӝ ٓكٕإؙٖةח״ 1PEךؚٕ٦ؾؚٝ Ӝ ؟٦ؽأة؎ف $MVTUFS*1 /PEF1PSU -PBE#BMBODFS
http.HandleFunc("/ready", func(w http.ResponseWriter, r *http.Request) { message := "" //
Check database if err := db.Ping(); err != nil { message += fmt.Sprintf("database: %s\n", err) } if len(message) > 0 { // Send 503 http.Error(w, message, http.StatusServiceUnavailable) } else { w.Write([]byte("OK")) } }) http.ListenAndServe(":8080", nil)
5FSNJOBUJOH 穄✪⚥חؙٔؒأزָֹגؒٓ٦鵤׃ג׃תֲ Ӝ ؝ٝذش(SBDFGVMTIVUEPXOׇׁ UFSNJOBUJPO(SBDF1FSJPE4FDPOET QSF4UPQؿحؙ4*(5&3.ךعٝسؚٔٝ
apiVersion: apps/v1 kind: Deployment metadata: name: kuard spec: selector: matchLabels:
app: kuard template: metadata: labels: app: kuard spec: terminationGracePeriodSeconds: 60 containers: - image: gcr.io/kuar-demo/kuard-amd64:1 name: kuard ports: - containerPort: 8080 name: http protocol: TCP livenessProbe: UFSNJOBUJPO(SBDF1FSJPE4FDPOET Ӝ 1PE(SBDFGVMח穄✪ׇׁ䗳銲ז猱侧 Ӝ 鏣㹀׃猱侧ָ穗麓ׅה؝ٝذشח4*(,*--ָ鷏⥋ׁ
apiVersion: apps/v1 kind: Deployment metadata: labels: app: nginx name: nginx
spec: selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - image: nginx:1.13.7 name: nginx lifecycle: preStop: exec: command: ["nginx", "-s", "quit"] Ӝ 1PEך穄✪ؿؑ؎ؤך剑ⴱח㹋遤ׁ 0QUJPOBM ـٗحؙ׃זֽלזזְ ず劍 ֿהח岣䠐 Ӝ QSF4UPQؿحؙ㹋遤䖓ח4*(5&3.ָ鷏⥋ׁ QSF4UPQؿحؙ
倜鋉؝طؙءّٝ 䱸竲幥؝طؙءّٝ QSF4UPQⳢ椚 4*(5&3.Ⳣ椚 1PEך穄✪㨣 0QUJPOBM QSF4UPQؿحؙ 4FSWJDFTךة٦حزַ㢩 LVCFQSPYZָJQUBCMFTٕ٦ٕ刿倜׃ծ倜鋉䱸竲ָזֻז
ֿ⟃꣬倜鋉䱸竲כזֻז QSF4UPQؿحַؙ4*(5&3.ד (SBDFGVMחؙٗ٦ؤׅ䗳銲ָ֮ (SBDF1FSJPE4FDPOET䖓 穄✪׃גְזְ㜥さ رؿٕؓز猱 4*(,*-- 4*(5&3. ,VCFSOFUFT鑫鍑1PETך穄✪2JJUB
תה
תה Ӝ #VJMEJOH$POUBJOFST كأزفؙٓذ؍أח䖞ֲ Ӝ 1PE4DIFEVMJOH 䗳銲剑⡚ꣲ䗳銲זٔا٦أ鏣㹀ׅ SFTPVSDFSFRVFTUT Ӝ
1PE3VOOJOH قٕأثؑحؙ鏣㹀ׅ -JWFOFTT3FBEJOFTTQSPCF ٔا٦أ⢪欽ꆀח♳ꣲ鏣㹀ׅ SFTPVSDFMJNJUT Ӝ 1PE5FSNJOBUJOH (SBDFGVMTIVUEPXOׇׁ QSF4UPQؿحؙ4*(5&3.عٝسؚٔٝ
8FˏSF)JSJOH IUUQT[MBCDPKQ ,VCFSOFUFT %PDLFS 1SPNFUIFVT (PMBOH $PSF04
2VFTUJPOT