# 啟動minikube 16384 4096
minikube start --cpus=4 --memory=4933
minikube addons enable dashboard
minikube addons enable ingress
minikube addons enable registry
minikube addons enable metrics-server
# 安裝dapr
helm repo add dapr https://dapr.github.io/helm-charts/
helm repo update
helm upgrade --install dapr dapr/dapr --namespace dapr-system --create-namespace --set global.ha.enabled=true --set global.logAsJson=true --wait
# 安裝 zipkin
kubectl create deployment zipkin --image openzipkin/zipkin
kubectl expose deployment zipkin --type ClusterIP --port 9411
# 安裝redis
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm install redis bitnami/redis
kubectl apply -f ./minikube/config.yaml
# 安裝mongodb
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install mongo bitnami/mongodb --set auth.rootPassword=example
# 安裝SqlServer
kubectl create secret generic mssql --from-literal=SA_PASSWORD=" MyC0m9l&xP@ssw0rd"
kubectl apply -f ./minikube/sqlserver.yaml
# ################Optional#######################
# # 安裝prometheus (Optional)
# helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
# helm repo update
# helm install dapr-prom prometheus-community/prometheus -n dapr-monitoring --set alertmanager.persistentVolume.enable=false --set pushgateway.persistentVolume.enabled=false --set server.persistentVolume.enabled=false
# helm uninstall dapr-prom -n dapr-monitoring
# # 安裝grafana (Optional)
# helm repo add grafana https://grafana.github.io/helm-charts
# helm repo update
# helm install grafana grafana/grafana -n dapr-monitoring --set persistence.enabled=false --set admin.user=admin --set admin.password=admin123
# helm uninstall grafana -n dapr-monitoring
# # 安裝ELK (Optional)
# helm repo add elastic https://helm.elastic.co
# helm repo update
# helm install elasticsearch elastic/elasticsearch -n dapr-monitoring --set persistence.enabled=false,replicas=1
# helm install kibana elastic/kibana -n dapr-monitoring
# # helm uninstall elasticsearch -n dapr-monitoring
# # helm uninstall kibana -n dapr-monitoring
# # 安裝fluentd (Optional)
# kubectl apply -f ./minikube/fluentd-config-map.yaml
# kubectl apply -f ./minikube/fluentd-dapr-with-rbac.yaml
# 安裝argo
# helm repo add argo https://argoproj.github.io/argo-helm
# helm repo update
# helm install argo-server --set secure=false argo/argo-workflows
# kubectl create rolebinding default-admin --clusterrole=admin --serviceaccount=default:default -n default
# kubectl create rolebinding namespace-admin --clusterrole=admin --serviceaccount=default:default
# # 取得argo workflow login token
# kubectl exec pod/argo-server-argo-workflows-server-859d6f7f5f-gmkhk -- argo auth token
# 建立secrets
kubectl delete secret opendatasecrets
kubectl create secret generic opendatasecrets `
-- from- literal= client= client `
-- from- literal= scope= api1 `
-- from- literal= secret= 9e564bd21af4a8ba8fd0cde4c38cec3de51ae169b13339777f5fdbd4a044f22c `
-- from- literal= mongodb= mongodb:// root:example@mongo - mongodb:27017 / `
-- from- literal= sqlserver= ' Server=mssql-deployment;Database=IdentityServerDB;user id=sa;password=MyC0m9l&xP@ssw0rd'
# 開啟local registry對外連線
docker run - d -- rm - it -- network= host alpine ash - c " apk add socat && socat TCP-LISTEN:5000,reuseaddr,fork TCP:host.docker.internal:5000"
kubectl port- forward -- namespace kube- system $ ($ (kubectl get po - n kube- system - o= name | Where-Object {$_ | Select-String " registry-" } | Where-Object {$_ -notlike " *proxy*" } )-replace ' pod/' , ' ' ) 5000 :5000
建立或更新OpenData Collector System相關服務
# 建立kao-service
docker build --pull --rm --no-cache -f " api-service\kao-service\Dockerfile" -t kao-service:latest " api-service\kao-service"
docker tag kao-service:latest localhost:5000/kao-service:latest
docker push localhost:5000/kao-service:latest
kubectl delete -f ./minikube/api-service/kao-service.yaml
kubectl apply -f ./minikube/api-service/kao-service.yaml
# 建立api-gateway-service
docker build --pull --rm --no-cache -f " api-service\api-gateway-service\Dockerfile" -t api-gateway-service:latest " api-service\api-gateway-service"
docker tag api-gateway-service:latest localhost:5000/api-gateway-service:latest
docker push localhost:5000/api-gateway-service:latest
kubectl delete -f ./minikube/api-service/api-gateway-service.yaml
kubectl apply -f ./minikube/api-service/api-gateway-service.yaml
# 建立tainan-service
docker build --pull --rm --no-cache -f " api-service\tainan-service\Dockerfile" -t tainan-service:latest " api-service\tainan-service"
docker tag tainan-service:latest localhost:5000/tainan-service:latest
docker push localhost:5000/tainan-service:latest
kubectl delete -f ./minikube/api-service/tainan-service.yaml
kubectl apply -f ./minikube/api-service/tainan-service.yaml
# 建立taichung-service
docker build --pull --rm --no-cache -f " api-service\taichung-service\Dockerfile" -t taichung-service:latest " api-service\taichung-service"
docker tag taichung-service:latest localhost:5000/taichung-service:latest
docker push localhost:5000/taichung-service:latest
kubectl delete -f ./minikube/api-service/taichung-service.yaml
kubectl apply -f ./minikube/api-service/taichung-service.yaml
# 建立pthg-service
docker build --pull --rm --no-cache -f " api-service\pthg-service\Dockerfile" -t pthg-service:latest " api-service\pthg-service"
docker tag pthg-service:latest localhost:5000/pthg-service:latest
docker push localhost:5000/pthg-service:latest
kubectl delete -f ./minikube/api-service/pthg-service.yaml
kubectl apply -f ./minikube/api-service/pthg-service.yaml
# 建立identity-service
docker build --pull --rm --no-cache -f " api-service\identity-service\Dockerfile" -t identity-service:latest " api-service\identity-service"
docker tag identity-service:latest localhost:5000/identity-service:latest
docker push localhost:5000/identity-service:latest
kubectl delete -f ./minikube/api-service/identity-service.yaml
kubectl apply -f ./minikube/api-service/identity-service.yaml
# 建立account-service
docker build --pull --rm --no-cache -f " api-service\account-service\Dockerfile" -t account-service:latest " api-service\account-service"
docker tag account-service:latest localhost:5000/account-service:latest
docker push localhost:5000/account-service:latest
kubectl delete -f ./minikube/api-service/account-service.yaml
kubectl apply -f ./minikube/api-service/account-service.yaml
# 建立personal-service
docker build --pull --rm --no-cache -f " api-service\personal-service\Dockerfile" -t personal-service:latest " api-service\personal-service"
docker tag personal-service:latest localhost:5000/personal-service:latest
docker push localhost:5000/personal-service:latest
kubectl delete -f ./minikube/api-service/personal-service.yaml
kubectl apply -f ./minikube/api-service/personal-service.yaml
# 建立task-service
docker build --pull --rm --no-cache -f " api-service\task-service\Dockerfile" -t task-service:latest " api-service\task-service"
docker tag task-service:latest localhost:5000/task-service:latest
docker push localhost:5000/task-service:latest
kubectl delete -f ./minikube/api-service/task-service.yaml
kubectl apply -f ./minikube/api-service/task-service.yaml
# 建立file-download-service
docker build --pull --rm --no-cache -f " api-service\file-download-service\Dockerfile" -t file-download-service:latest " api-service\file-download-service"
docker tag file-download-service:latest localhost:5000/file-download-service:latest
docker push localhost:5000/file-download-service:latest
kubectl delete -f ./minikube/api-service/file-download-service.yaml
kubectl apply -f ./minikube/api-service/file-download-service.yaml
# 建立subscribe-service
docker build --pull --rm --no-cache -f " background-services\subscribe-service\Dockerfile" -t subscribe-service:latest " background-services\subscribe-service"
docker tag subscribe-service:latest localhost:5000/subscribe-service:latest
docker push localhost:5000/subscribe-service:latest
kubectl delete -f ./minikube/background-service/subscribe-service.yaml
kubectl apply -f ./minikube/background-service/subscribe-service.yaml
# 建立nodeapp
docker build --pull --rm --no-cache -f " website\Dockerfile" -t nodeapp:latest " website"
docker tag nodeapp:latest localhost:5000/nodeapp:latest
docker push localhost:5000/nodeapp:latest
kubectl delete -f ./minikube/website/nodeapp.yaml
kubectl apply -f ./minikube/website/nodeapp.yaml
# 開啟dashboard
minikube dashboard
# 開啟dapr dashboard
minikube service dapr-dashboard -n dapr-system
# 開啟api gateway服務
minikube service api-gateway-service
# 開啟website服務
minikube service nodeapp
# 開啟zipkin服務
minikube service zipkin
minikube service argo-server-argo-workflows-server