LoginSignup
0
0

More than 3 years have passed since last update.

初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)公開編パート3(Ingress)

Posted at

背景

個人的にインフラの知識以上にこれからのアプリケーションが動く環境を作ってデプロイしたりしてこれからの知識を身に着けたい。そしてより一層、自分の知識のアップデートをしたいと思いました。

その中でこの本に出会い、これから少しずつやったことを残し、未来の自分への手紙としてもあり、見つめ直せればと思いました。

引用や参考と今回の自分の勉強用の書籍の紹介

技術評論社『Kubernetes実践入門』のサンプルコード
Kubernetes実践入門 プロダクションレディなコンテナ&アプリケーションの作り方

実際の学びについて

書籍を読みながら、章ごとに少しずつ進めていきたいと思います。
GitHub のソースコードも使いながら学んで行きたいと思います。
この章の勉強は本当に書籍の写経が主になるかもしれません・・・

勉強開始

  • アプリケーションを外部に公開する方法を学びます
    • NodePort を使って公開する
    • 外部 LoadBalancer を使って公開する
    • Ingress を使って公開する

今回は「Ingress を使って公開する」をやっていこうと思います

Ingress を使って公開する

  • kubernetes クラスタ内部のロードバランサを使ってアプリケーションを公開する方法
  • Service には Ingress というタイプはない
  • Ingress オブジェクトを作成する必要がある

公開前のブラウザ状態

スクリーンショット 2020-04-26 15.44.55.png

Ingress マニュフェスト作成

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: mattermost
spec:
  rules:
  - host: chat.192.168.3.4.nip.io # ip は自分のホストの IP とします
    http:
      paths:
      - backend:
          serviceName: mattermost
          servicePort: 8065

マニュフェスト適用

$ kubectl apply -f mattermost-ingress.yaml
ingress.extensions/mattermost created

名前解決を確認する

$ $ nslookup chat.192.168.3.4.nip.io
Server:     192.168.3.1
Address:    192.168.3.1#53

Non-authoritative answer:
Name:   chat.192.168.3.4.nip.io
Address: 192.168.3.4

Ingress オブジェクトを確認

$ kubectl get ingresses
NAME         HOSTS                     ADDRESS     PORTS   AGE
mattermost   chat.192.168.3.4.nip.io   localhost   80      154m

公開後のブラウザ

スクリーンショット 2020-04-26 19.20.47.png

次は 3.7 章をやっていきます。

データストアのPodについての勉強をやっていきたいと思います。
ステートフルなアプリをどうやって管理するのかを学ぶのだと思っています

最後に

ごめんなさいうまく上記までの設定でアクセスしても表示されないのです・・・

書籍だと minikube addons enable ingress コマンドで Ingress Controller を有効にしますが自分の環境だと、 minikube が入っていないのでうまく行かないこと数時間・・・

  • Docker Desktop では Ingress のオブジェクトを作成するだけだと動かないことを気づき NGINX Ingress Controller サイトで Ingeress Controller の Kubernetes への適用することでうまくいきました
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud/deploy.yaml

今までの投稿

  1. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Pod編
  2. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)NameSpace 編
  3. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Label 編
  4. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)ReplicaSet 編
  5. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Deployment 編
  6. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Service 編
  7. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)ConfigMap 編
  8. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Secret 編
  9. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)操作編
  10. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)体感編
  11. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)体感編パート2
  12. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)体感編パート3(Label操作)
  13. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)体感編パート3(OwnerReference 操作)
  14. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)マニュフェスト編
  15. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)マニュフェスト(ConfigMap)編
  16. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)通信編
  17. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)通信編 パート2
  18. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)通信編 パート3
  19. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)通信編 パート4
  20. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)公開編パート1(NodePort)
  21. 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)公開編パート2(LoadBalancer)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0