やっただけ。バックグラウンドとしては、そろそろ話題のものを追っておく必要が出てきたため。
やったこと
- k3d を見る
- kubectl を入れる
- k3d のサイトを見ている限り必要そうだったので
- nginx を動かそうとする
- Exposing Services - k3d を見る
- その通りにやるが失敗しまくる
- なんか
no matches for kind "Ingress" in version "default/v1"
と言われまくる - なんとなく GitHub などを見つけて理解する
- ローカルの kubectl 見てる感じ、
Server Version
はv1.18.9
っぽかったので、default/v1bata1
にして進める - エラーが変わって Service はそう書けないんだけど… 的な表示に変わる
error validating data: ValidationError(Ingress.spec.rules[0].http.paths[0].backend): unknown field "service" in io.k8s.api.networking.v1beta1.IngressBackend; if you choose to ignore these errors, turn validation off with --validate=false
- service の書き方が違うっぽいことを下記の 2つから察する
- ここまでやって動いた(
curl localhost:8081/
できて、 ブラウザでもhttp://localhost:8081
が開いた)
- なんか
出来上がった yaml
メモのための残しておく。ちなみにバージョン情報はこんな感じでした。
$ k3d version k3d version v3.2.0 k3s version v1.18.9-k3s1 (default) $ kubectl version Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.3", GitCommit:"1e11e4a2108024935ecfcb2912226cedeafd99df", GitTreeState:"clean", BuildDate:"2020-10-14T12:50:19Z", GoVersion:"go1.15.2", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.9+k3s1", GitCommit:"630bebf94b9dce6b8cd3d402644ed023b3af8f90", GitTreeState:"clean", BuildDate:"2020-09-17T19:05:07Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}
apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: nginx annotations: ingress.kubernetes.io/ssl-redirect: "false" spec: rules: - http: paths: - path: / pathType: Prefix backend: serviceName: nginx servicePort: 80
感想
- とりあえず動いたけど、何が起きてるのかいまいちわからん
- 概念が頭に入っていないため
- 何がどこに関係性を持っているのかわかってない
- とりあえず k3d は立てるだけのもので、ごちゃごちゃアプリケーションの何かを変更する本質的なものは kubectl 側かなという感想
- あとローカルで色々立てるのはやめて、Docker上で立てるとか、仮想マシン上で立てるとかしたほうが良さそう
- 概念をおさえるために Kubernetes 自身のドキュメントを読んでみるかなぁ
- 公式の日本語ドキュメントがそれなりにある(ありがたし)
- Kubernetesドキュメント | Kubernetes
- 眺めたり読んだり動かしたりして学んでみるかな
- あとは AWS とか GCP との関係性とか?
もう少し概念的なところと、適用ケースを学んでみないとなーと思ってます。はい。
あと小さいチュートリアルみたいなのをもう少しやりながら学びたい感。 とりあえず今日のところは終わり。