Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
DNS proxy on GCP (and GKE) edwardc / GCPUG.tw / PIXNET 2016/11/02 GCPUG.tw Meetup #21
Slide 2
Slide 2 text
有沒有搞錯? DNS Proxy ?
Slide 3
Slide 3 text
事情是這樣的
Slide 4
Slide 4 text
主機一多 開關難免
Slide 5
Slide 5 text
主機的 IP 變動速度 跟不上更新速度
Slide 6
Slide 6 text
GCP IP Policy (IP Reuse)
Slide 7
Slide 7 text
連錯機器 Deploy 錯台
Slide 8
Slide 8 text
Auto Scaling
Slide 9
Slide 9 text
Preemptible Instance
Slide 10
Slide 10 text
老方法 % gcloud compute instances list
Slide 11
Slide 11 text
可是我有N個 project
Slide 12
Slide 12 text
% gcloud set config project project-id
Slide 13
Slide 13 text
DNS proxy
Slide 14
Slide 14 text
把 DNS 的需求 轉由 GCE API
Slide 15
Slide 15 text
instance_name.project.your.domain
Slide 16
Slide 16 text
好處: 1. 不用手動更新 DNS zone file 2. 可以寫在程式內 3. 也可以找 Internal IP
Slide 17
Slide 17 text
https://github.com/edwardchuang/gcp-dns-proxy
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
第一次寫 NodeJS
Slide 20
Slide 20 text
安裝 % npm install
Slide 21
Slide 21 text
執行 % sudo node dns
Slide 22
Slide 22 text
測試 % dig @localhost blahblahblah
Slide 23
Slide 23 text
聽說這裡是 GCP 的場子
Slide 24
Slide 24 text
GKE! (Google Container Engine)
Slide 25
Slide 25 text
編 image % docker build -t asia.gcr.io/blah/gcp-dns-proxy .
Slide 26
Slide 26 text
推上去 % gcloud docker push asia.gcr.io/blah/gcp-dns-proxy
Slide 27
Slide 27 text
開機器 % kubectl create -f gcp-dns-proxy.yaml
Slide 28
Slide 28 text
開 LB % kubectl expose -f gcp-dns-proxy.yaml --type=LoadBalancer
Slide 29
Slide 29 text
拿 IP % kubectl get services
Slide 30
Slide 30 text
以上步驟 github都有
Slide 31
Slide 31 text
Never Live Demo!
Slide 32
Slide 32 text
結語
Slide 33
Slide 33 text
TODO 1. Full Implement with RFC compliant 2. Async handling 3. Support instance-groups 4. Support container (!)
Slide 34
Slide 34 text
謝謝 歡迎 fork / pull request