O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Ingress on GKE/GCE

3.254 visualizações

Publicada em

Kubernetes Meetup Tokyo #4で発表したスライドです
https://k8sjp.connpass.com/event/53737/

Publicada em: Engenharia
  • ..............ACCESS that WEBSITE Over for All Ebooks ................ ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

Ingress on GKE/GCE

  1. 1. 1
  2. 2. 自己紹介 2
  3. 3. 自己紹介 吉海 将太 前職でUnity(C#)、Webアプリ(Python, Docker)、Pepperアプリ(Python) の開発に携わりました。 好きな弟: 戸愚呂弟(100%) 好きな兄: ジャギ Software Engineer Kabuku, Inc. https://www.kabuku.co.jp/ 3
  4. 4. 自己紹介 Twitterやってます。@yoshikai_ Mastodonはやってないドン。いつかパオりたいドン Python、GO言語、Docker、Appengine, GCE、GKE、K8Sなど 最近ハマっていること ● 中野TRFのAC北斗の動画みる ● マストドン!って言う ● ゴールデン街で飲む(飲み行きましょ) 4
  5. 5. Ingressと聞いて思い浮かぶもの 5
  6. 6. Ingressと聞いて思い浮かぶもの 6
  7. 7. 今日のゴール ● Ingressを知る ○ 位置情報ゲームではないよ ○ 機能をだいたい把握 ● Ingressの使い所を知る ○ 弊社の構成例を紹介 7
  8. 8. アジェンダ ● なぜ Ingress on GKE/GCE なのか ● Ingressを知る ○ Ingressがない場合 ○ Ingressがある場合 ○ Ingressの基本 ○ Ingressの機能の紹介 ● Ingressの使い所を知る ○ Ingressを用いた弊社の3D解析エンジンAPIの構成を紹介 8
  9. 9. なぜ Ingress on GKE/GCE なのか 9
  10. 10. なぜ Ingress on GKE/GCE なのか ● GKE/GCEを使う理由 ○ Googleのインフラを使える ○ めっちゃ楽 ○ GKEならコマンド一発でKubernetesを構築 ○ コマンド ○ GCEもkube-up.sh ● Ingressを使う理由 ○ 一通りのネットワークの機能がある ■ URL path, virtual hosting, TLS, LB ○ Kubernetesが提供している。自前で用意する必要がない 10 $ gcloud container clusters create $CLUSTER_NAME --zone $ZONE
  11. 11. Ingressを知る 11
  12. 12. Ingressがない場合 12
  13. 13. Ingressがない場合 Service internet Pod アプリケーション 例えば: mastodon,jenkins Podが外部と通信するため エンドポイント NodePort, LoadBalancerな どいくつか種類がある 現代人が人生の大半を費や しているもの 新しい情報が常に流れてき て飽きない Type: LoadBalancer 13
  14. 14. Ingressある場合 14
  15. 15. Ingressとは何か internet Ingress Service Pod url path routing,virtual hosting, tls, lb など 一通り機能ある ServiceのLBより多機 能 Type: NodePort 最近はマストドンが流 行ってる 15
  16. 16. Ingressの基本 16
  17. 17. Ingressの基本: 使う前に ● Ingressはまだベータ版 ● Kubernetes 1.2以上じゃないと動かない ○ 最近試したらGKEは1.5.6でした ○ 1.6.1も選択出来た 17
  18. 18. 18 Ingressの基本 IngressのグローバルIP service:80 Ingress
  19. 19. Ingressの基本: ingress.yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: simple-ingress spec: backend: serviceName: service servicePort: 80 19
  20. 20. Ingressの基本:つくりかた Ingressを作る Get してIngressが出来ているかを確認 20 NAME HOSTS ADDRESS PORTS AGE simple-ingress * xx.xxx.xxx.xx 80 8m $ kubectl create -f ingress.yaml $ kubectl get ing
  21. 21. Ingressの機能を紹介 21
  22. 22. Ingressの機能を紹介 ● URL path based routing ● Name based virtual hosting ● TLS ● Loadbalancing, Health checks 22
  23. 23. URL path based routing foo.bar.com/foo service1:80 service2:80 Ingress foo.bar.com/bar /foo /bar 23 foo.bar.com/foo foo.bar.com/bar
  24. 24. URL path based routing: ingress.yaml spec: rules: - host: foo.bar.com http: paths: - path: /foo backend: serviceName: service1 servicePort: 80 - path: /bar backend: serviceName: service2 servicePort: 80 24
  25. 25. Name based virtual hosting foo.bar.com service1:80 service2:80 Ingress bar.foo.com 25 foo.bar.com bar.foo.com
  26. 26. Name based virtual hosting: ingress.yaml spec: rules: - host: foo.bar.com http: paths: - backend: serviceName: service1 servicePort: 80 - host: bar.foo.com http: paths: - backend: serviceName: service2 servicePort: 80 26
  27. 27. Name based virtual hosting: curlで確認 $ curl --resolve foo.bar.com:123.456.789.012 http://foo.bar.com/ 27 <title> Welcome to service1 </title> $ curl --resolve bar.foo.com:123.456.789.012 http://bar.foo.com/ <title> Welcome to service2 </title> $ curl http://123.456.789.012/ <body>... default backend - 404 </body>
  28. 28. TLS ● 機能 ○ 現在(2017/04/20)サポートしているのは port 443のみ ○ HTTPのブロッキング機能 ● 出来ないこと ○ HTTP to HTTPSのリダイレクト機能はない (2017/04/20) 28
  29. 29. TLSの設定方法 1. 証明書を作る 29 2. secretのリソースを作る。これをIngress側で指定する  $ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /tmp/tls.key -out /tmp/tls.crt -subj "/CN=foo.bar.com" $ kubectl create secret tls tls-secret --key=/tmp/tls.key --cert=/tmp/tls.crt
  30. 30. TLS: ingress.yaml spec: tls: - secretName: tls-secret backend: serviceName: echoheaders-https servicePort: 80 30
  31. 31. $ kubectl describe ing TLS: tls-secret terminates Annotations: url-map: k8s-um-default-simple-ingress--d11e4668b84cb46a backends: {"k8s-be-30553--d11e4668b84cb46a":"HEALTHY"} https-target-proxy: k8s-tps-default-simple-ingress--d11e4668b84cb46a ssl-cert: k8s-ssl-default-simple-ingress--d11e4668b84cb46a static-ip: k8s-fw-default-simple-ingress--d11e4668b84cb46a forwarding-rule: k8s-fw-default-simple-ingress--d11e4668b84cb46a https-forwarding-rule: k8s-fws-default-simple-ingress--d11e4668b84cb46a target-proxy: k8s-tp-default-simple-ingress--d11e4668b84cb46a 31
  32. 32. HTTPからHTTPSにリダイレクトがしたいです・・ 解決策のひとつ ● Nginxを使う 下のをnginxの設定に追加する: # Replace '_' with your hostname. server_name _; if ($http_x_forwarded_proto = "http") { return 301 https://$host$request_uri; } 32
  33. 33. HTTPのブロッキング機能 ● http(port:80)にアクセスすると404になる 試してわかったこと ● kubectl createで新規でingressを作る場合には正常に動作 ● kubectl editで更新した場合は、404にならず普通にリクエストが返って来る 33
  34. 34. HTTPのブロッキング機能: yamlとdescribeの結果 metadata: name: test annotations: kubernetes.io/ingress.allow-http: "false" Annotations: backends: {"k8s-be-30553--d11e4668b84cb46a":"HEALTHY"} forwarding-rule: k8s-fw-default-simple-ingress--d11e4668b84cb46a https-target-proxy: k8s-tps-default-simple-ingress--d11e4668b84cb46a static-ip: k8s-fw-default-simple-ingress--d11e4668b84cb46a target-proxy: k8s-tp-default-simple-ingress--d11e4668b84cb46a https-forwarding-rule: k8s-fws-default-simple-ingress--d11e4668b84cb46a ssl-cert: k8s-ssl-default-simple-ingress--d11e4668b84cb46a url-map: k8s-um-default-simple-ingress--d11e4668b84cb46a 34
  35. 35. HTTPのブロッキング 力技 GCPのコンソールから操作してしまえ 35
  36. 36. HTTPのフロントエンドがなくなった! 36
  37. 37. httpでアクセスすると404!! 勝利 37
  38. 38. kubectl describeでannotationsを確認してみる Annotations: https-target-proxy: k8s-tps-default-simple-ingress--d11e4668b84cb46a forwarding-rule: k8s-fw-default-simple-ingress--d11e4668b84cb46a https-forwarding-rule: k8s-fws-default-simple-ingress--d11e4668b84cb46a static-ip: k8s-fw-default-simple-ingress--d11e4668b84cb46a target-proxy: k8s-tp-default-simple-ingress--d11e4668b84cb46a url-map: k8s-um-default-simple-ingress--d11e4668b84cb46a backends: {"k8s-be-30553--d11e4668b84cb46a":"HEALTHY"} ssl-cert: k8s-ssl-default-simple-ingress--d11e4668b84cb46a forwarding-ruleは残ったまま^^; 38
  39. 39. 他の機能 ● Loadbalancing ● Health checks ● “/”で200のHTTPのステータスコードを返す。ボデェは何でも大丈夫です. ● 200を返さないとそのアプリにはリクエストが振り分けられなくなる 39
  40. 40. Ingressを用いた弊社の 3D解析エンジンAPIの構成を紹介 40
  41. 41. 各プロダクトのバックエンドに解析エンジン 41 自社製3D解析エンジンAPI 内部でIngressを使った構成 3Dモデルのレンダリン グや解析などの機能 がある
  42. 42. 要件と構成 要件 ● バージョンアップした時に不具合があればすぐ戻せるように ● 本番に近い開発環境。それぞれのURLがある 構成 ● Blue-Green Deployment ○ Service側で切り替える ● 本番環境と開発環境を同じK8Sで構築。それぞれにドメインを振る ○ 同じK8Sので動かして本番と簡易初で Serviceを分ける 42
  43. 43. Blue/Greenについて 43
  44. 44. Blue/Greenについて Blue Green GreenBlue current version Client selector next version1 next version2 first release second release 44
  45. 45. Ingress Production 解析エンジン blue pod 解析エンジン green pod Service selector: color : blue 今回の構成: Blue/Green 45
  46. 46. 今回の構成: Blue/Green DeploymentとService kind: Deployment metadata: name: my-app-blue spec: replicas: 2 template: metadata: labels: app: my-app color: blue spec: containers: - name: my-app image: gcr.io/dev/myapp kind: Service metadata: name: my-app spec: type: NodePort ports: - protocol: TCP port: 80 name: http selector: app: my-app color: blue 46
  47. 47. 本番環境と開発環境 本番環境 ● Blue/Green 開発環境 ● K8SのServiceを本番と開発で分ける ● Ingressでドメインで本番と開発のそれぞれのServiceに振り分ける 47
  48. 48. 構成図 48 Production Development Ingress 解析エンジン blue pod 解析エンジン green pod Service(Production) url: foo.bar.com selector: color : blue Service(Develop) 解析エンジン dev version url: food.bar.com foo.bar.com food.bar.com 48
  49. 49. まとめ 49
  50. 50. まとめ: ハマったところ ● kubectl editしても更新されない設定がある。よくわからない ● 反映されるのに多少の時間がかかるので、設定が間違っているのか、反映中なの か分かりづらい ● 情報が少ない。ingressで検索すると某ゲームが・・・。 ○ なのでingress kubernetesで検索してました ● 初のK8Sだったので新しい概念を獲得するのが大変だった・・・・ ○ 人にまんまK8Sの用語で説明しても当たり前だけと理解されない・・・ ■ 人類は分かり合えないのか・・・ 50
  51. 51. まとめ ● メリット ○ GCPのロードバランサーが使える( GKEかGCE) ○ 一通りの機能がある( URL path, virtual hosting, TLS, LB) 自前で用意する必要がない ○ kubernetesの仕組みだけを使ってサービスの構成出来る ● デメリット ○ Nginxほどの自由でない ○ 名前を聞くと某ゲームが思い浮かぶ。 IngressDonっていう名前にすべきだった ● 感想 ○ いい感じに抽象化されていると思う ○ ただ、下の層でなにかトラブルが起きたときとかに苦労しそう・・・ 51
  52. 52. 参考にしたサイト Ingress Resources(K8Sの公式) https://kubernetes.io/docs/concepts/services-networking/ingress kubernetes/ingress/controllers/gce/README.md https://github.com/kubernetes/ingress/tree/master/controllers/gce 52
  53. 53. おまけ 53
  54. 54. Kabuku開発ブログ https://www.kabuku.co.jp/developers 54
  55. 55. カブクではエンジニアを募集してます! ● サーバーサイドエンジニア ○ Python, Google Cloud Platform ● フロントエンドエンジニア ○ TypeScript,Angular アットホームな職場です! https://www.kabuku.co.jp/#jobs 55
  56. 56. 56 おしまい

×