Copyright (C) RC30-popo
microk8sを使ってkubernetesのservice,deployment,replicaset,pod及びingress-controllerの動作確認をするためのサンプル定義ファイル等です。
kubernetesの初心者向けの記事ではnginxをpodとして起動することが定番ですが、python3+flaskでシンプルなアプリを作り、クライアントやHTTPヘッダ情報をHTTP responseとして返すことでpodの内側からクライアントIPやHTTP requestがどう見えるを確認出来る様にしています。
python3 + flaskで動作するhello worldアプリにクライアントIPやHTTPヘッダの表示機能を追加したものです。
上記hello.pyを起動するためのDockerイメージを作成するためのDockerfileです。 Ubuntu 18.04をベースにイメージをbuildします。
一番基本的なClusterIPモードで上記のhello.pyをpod内で起動する定義です。 replica数2でpodを起動しflask-helloと名称でserviceを起動します。
Clusterネットワーク内から「flask-hello.default.svc.cluster.local」というFQDNでserviceを検索出来る様になります。
上記のflask-hello serviceをType:NodePortで起動する定義ファイルです。
同じくNodePort serviceの定義ですが、クライアントIPでSticky sessionを実現する例です。
nginx ingress controllerの定義ファイル例です。
ノードのport80、パス/flask-helloでflask-hello serviceにアクセスを可能とするIngress Controllerの定義です。 svc-flaskhello.yamlでClusterIPモードで起動したserviceと組み合わせて使用してください。
上記にcookieベースのSticky sessionを追加した例です。
以下のブログエントリーで紹介しています。 https://rc30-popo.hatenablog.com/entry/2021/05/16/173136 https://rc30-popo.hatenablog.com/entry/2021/05/30/223723 https://rc30-popo.hatenablog.com/entry/2021/12/25/233311 https://rc30-popo.hatenablog.com/entry/2022/01/02/164504 https://rc30-popo.hatenablog.com/entry/2022/01/09/234105