EIKINAKAYAMA / kubernetes-fastapi-mysql

Practice web app container orchestration by Kubernetes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Study Kubernetes

スクリーンショット 2023-04-27 14 54 51

Process

create db cluster

  1. create database ns
kubectl create namespace database
  1. create deployment for mysql
kubectl apply -f mysql-deployment.yaml -n database

create app cluster

Image base https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker

  1. create app ns
kubectl create namespace $namespace
  1. apply deployment, configMap, secret
kubectl apply -f sample-app-deployment.yaml,sample-app-configmap.yaml,sample-app-secret.yaml -n $namespace

Access from local

kubectl port-forward svc/sample-app 8080:80 -n $namespace

Tips

  • apiVersion の確認方法

Ex.kind: deployment

kubectl api-resources | grep deployments
  • imageを指定して --dry-run オプションで作成されるオブジェクトをyamlファイルに出力
kubectl careate deploy mysql --image=mysql:8 --dry-run=client -o yaml > mysql-deployment.yaml
  • localでアプリへの接続を確認
kubectl port-forward svc/sample-app 8080:80 -n $namespace
  • コンテナ内に入って確認する(Ex.mysql)
kubectl get po -n database | grep mysql | head -1 | awk '{print $1}' // $container
kubectl exex -it $container --mysql -uroot -ppassword

 

About

Practice web app container orchestration by Kubernetes