/home/by-natures/dev*

データ界隈で働くエンジニアとしての技術的なメモと、たまに普通の日記。

2024/09/11 colima で nodePort に繋ぐには、--network-address オプションをつける

会社の方にお勧めされて「つくって、壊して、直して学ぶ Kubernetes 入門」という本を読んでいます:

実際にコマンドを打ちながら不具合を探ったりして実践的に Kubernetes が学べる本で、概念もコマンドも覚えられるのでとても役立っています。

書籍では Docker Desktop をベースに話が進みますが、私は普段 Colima で Docker 環境を利用しているので、この本でも Colima を使いながら学んでいました。

Chapter6 で Kubernetes Service のタイプとして NodePort が紹介されていますが、Colima では --network-address オプションをつけて Colima を起動させないといけません。

Reachable IP address is not enabled by default due to root privilege and slower startup time.

colima/docs/FAQ.md at main · abiosoft/colima · GitHub

確かに --network-address をつけて colima start すると root 権限が求められ、起動自体にも非常に時間がかかりました(私の環境で15分程度)。

# Kubernetes の環境につなげない
$ curl localhost:30599
curl: (52) Empty reply from server

$ colima stop
# --network-address オプションをつけ、ホストから繋がるようにする
$ colima start --cpu 8 --memory 12 --disk 160 --kubernetes --network-address  

$ kubectl config get-contexts
# P.155 kind によって作ったクラスタの設定を利用
$ kubectl apply --filename chapter-06/deployment-hello-server.yaml
$ kubectl config use-context kind-kind-nodeport
$ kubectl apply --filename chapter-06/service-nodeport.yaml

# Service の NodePort に接続成功
$ curl localhost:30599
Hello, world!