背景
個人的にインフラの知識以上にこれからのアプリケーションが動く環境を作ってデプロイしたりしてこれからの知識を身に着けたい。そしてより一層、自分の知識のアップデートをしたいと思いました。
その中でこの本に出会い、これから少しずつやったことを残し、未来の自分への手紙としてもあり、見つめ直せればと思いました。
引用や参考と今回の自分の勉強用の書籍の紹介
技術評論社『Kubernetes実践入門』のサンプルコード
Kubernetes実践入門 プロダクションレディなコンテナ&アプリケーションの作り方
実際の学びについて
書籍を読みながら、章ごとに少しずつ進めていきたいと思います。
GitHub のソースコードも使いながら学んで行きたいと思います。
この章の勉強は本当に書籍の写経が主になるかもしれません・・・
勉強開始
- アプリケーションを外部に公開する方法を学びます
- NodePort を使って公開する
- 外部 LoadBalancer を使って公開する
- Ingress を使って公開する
今回は「Ingress を使って公開する」をやっていこうと思います
Ingress を使って公開する
- kubernetes クラスタ内部のロードバランサを使ってアプリケーションを公開する方法
- Service には Ingress というタイプはない
- Ingress オブジェクトを作成する必要がある
公開前のブラウザ状態

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
公開後のブラウザ

次は 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
今までの投稿
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Pod編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)NameSpace 編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Label 編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)ReplicaSet 編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Deployment 編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Service 編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)ConfigMap 編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Secret 編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)操作編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)体感編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)体感編パート2
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)体感編パート3(Label操作)
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)体感編パート3(OwnerReference 操作)
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)マニュフェスト編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)マニュフェスト(ConfigMap)編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)通信編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)通信編 パート2
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)通信編 パート3
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)通信編 パート4
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)公開編パート1(NodePort)
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)公開編パート2(LoadBalancer)