最近、k8sの勉強をしてるんですが、はっきり言って全然理解できてる感じがしないので、何回かおかわり勉強します。 多分、年内はk8sと格闘することになりそうな勢いですが、なんとか年内には普通に使いこなせるように頑張ってます。はい。
基本
多分どんな本にも書いてあるであろうnginxを使ったpodを作ります。
キホン、スゴクダイジ。
Step 1 : nginxのPodを作る
イメージこんな感じです。
マニフェストファイル
一応外部から疎通が取れるようにserviceをつけておきます。
apply
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
確認
Pod
kubectl get pods NAME READY STATUS RESTARTS AGE nginx-65f88748fd-tqqks 1/1 Running 0 13s
まあPodはできてますよね。
疎通
Hello Kubernetes!
ここまでは、まあ順調。
Step 2 : nginx + FlaskのPodを作る
下の記事あるマイクロサービスアーキテクチャのFabric Modelってやつを想定してます。
参考にしたのはこちら。
イメージはこんな感じ。
前準備
Dockerイメージを作成します。
拝借したのは、"example-flask-python3.7"です。
Dockerfileをちょいといじりました。
これでイメージを作成します。
docker image build -t flask-nginx .
起動すると
docker run -p 80:80 flask-nginx
~ $curl localhost:80 Hello World from Flask in a uWSGI Nginx Docker container with Python 3.7 (from the example template)
こんな感じになります。
マニフェストファイル
さて、本題に戻ります。 今回のマニフェストファイルはこんな感じです。
apply
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
確認
Pod/Service
$kubectl get pods NAME READY STATUS RESTARTS AGE nginx-86955d745d-jktmp 1/1 Running 0 2m40s
$kubectl get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 11h sample-lb LoadBalancer 10.110.87.77 localhost 8080:30082/TCP 119s
疎通
$curl localhost:8080 Hello World from Flask in a uWSGI Nginx Docker container with Python 3.7 (from the example template)
外からつながってますね。
Step 3 : HTMLをホスティングする
Flaskを使って、アクセスすると画面が返るようにします。
こんな感じ。
下準備
vueのデフォルト画面をそのまま表示します。
作り方は過去の記事を参照。
distをapp/に配置して、flaskのコードをちょいと書き換えます。
そんでもって、Dockerimageを作り直します。
docker image build -t flask-nginx .
マニフェストファイル
さっきと一緒なんで省略。
apply
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
確認
疎通
今度はブラウザから。
外からつながってますね。
感想
かけ足になりましたが、一旦ここまで。 もう一回くらいやれば、自由研究に追いつくと思います。