export MINIKUBE_HOME=~/goinfre
아래 미니쿠베 설치.(만약 brew없으면 brew도 설치하세요.)
brew install minikube
main()
{
introduce
minikube_setup
make_images
yaml_services
}
메인문은 4가지로 구성되어있다.
1. introduce : sh 파일의 만든이 정보를 넣어줍니다.
2. minikube_setup : 미니쿠베를 시작하고 설정을 해줍니다.
3. make_images : 이미지파일을 만들어 줍니다.
4. yaml_services : yaml파일로 생성한 이미지파일로 pod를 생성해주고, 파드의 오브젝트를 설정합니다.
introduce()
{
echo -e $GREEN
echo "by. hoylee, 21-04-21"
echo "FT_services,start!"
echo -e $WHITE
echo -e $CYAN
echo "=============================================================================================="
echo -e $WHITE
echo " 8888888888 88888888888 88 d88888b 8b d8 88 88888888 8888888"
echo " 888 888 88 88 88 88 88 88 88 88"
echo " 888 888 88 88 88 88 88 88 88 88"
echo " 8888888 888 8888888h 88 88 88 88 88 88888888 8888888"
echo " 888 888 88888888 88 88 \"888888 88 88 88"
echo " 888 888 88 88 88 88 8b 88 88 88"
echo " 888 888 88 88 88 88 8b 8888888b 88 88"
echo " 888 888 88888888 88 88 d88888b 8888b 88888888 88888888 8888888"
echo -e $CYAN
echo "=============================================================================================="
echo -e $BLUE
echo -e $CYAN
echo -e $WHITE
}
minikube_setup()
{
minikube delete
minikube start --driver=virtualbox --cpus=2
minikube addons enable dashboard
minikube addons list
more_addons
echo 😻- complete addons..!
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.3/manifests/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.3/manifests/metallb.yaml
kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"
kubectl apply -f srcs/yaml_metallb/metallb_complete.yaml
eval $(minikube docker-env)
echo $DOCKER_HOST
echo -en $GREEN
echo "Minikube is ready !"
echo
}
more_addons()
{
echo -e "addons 더 필요한게 있으면 입력하세요, 그냥 진행하려면 enter"
echo -e "ex) ambassador or auto-pause "
read word
while [[ $word != '' ]];
do
flag1=1
for value in "${addons_list[@]}"; do
if [ $word == $value ] ; then
minikube addons enable $word
minikube addons list
flag1=2
echo "add complete $word"
fi
done
if [ $flag1 -eq 1 ] ; then
echo "==================================================================="
echo -e $RED"$word is not inside addons. addons list,"
echo -e $WHITE
echo "Please input addons name or if you dont need addons just put enter"
echo "==================================================================="
fi
if [ $flag1 -eq 2 ] ; then
echo -e "addons 더 필요한게 있으면 입력하세요, 그냥 진행하려면 enter"
echo -e "ex) ambassador or auto-pause "
fi
read word
done
}
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 192.98.100.92-192.98.100.92
make_images()
{
images_kind=("nginx" "wordpress" "mysql" "phpmyadmin" "ftps" "grafana" "influxdb")
for kind in "${images_kind[@]}"
do
echo -en $WHITE
echo "📲 Building $kind image..."
echo -en $YELLOW
docker build -t $kind srcs/$kind/
echo "$kind === "
echo -en $GREEN
echo "📱 success built $kind image !"
echo
done
echo -en $WHITE
}
색 넣는거 해두면 좋아요. 나중에 sh파일 돌릴 때 빌드마다 노란색으로 구분되서 보여서 실행 상황 보기 편했어요.
yaml_services()
{
kubectl apply -f srcs/yaml_services/nginx.yaml
kubectl apply -f srcs/yaml_services/wordpress.yaml
kubectl apply -f srcs/yaml_services/mysql.yaml
kubectl apply -f srcs/yaml_services/phpmyadmin.yaml
kubectl apply -f srcs/yaml_services/ftps.yaml
kubectl apply -f srcs/yaml_services/grafana.yaml
kubectl apply -f srcs/yaml_services/influxdb.yaml
}
minikube addons list
dashboard : 클러스터의 웹 UI 툴
efk : 로그분석 툴(Elasticsearch, Fluentd 및 Kibana)
freshpod : 이미지 리빌드시 pod 재시작
gvisor : 컨테이너 런타임을 대체하여 안전하게 pod 실행
heapster : 컴퓨터 리소스 분석 및 클러스터 모니터링
ingress : 쿠버네티스 Ingress 리소스를 기반으로 구축된 NGINX 컨트롤러
logviewer : 경량 로그 툴
metrics-server : 클러스터 자원 사용률 및 활용도를 수집
** addons의 툴은 각자 기능이 있는데, 구글에 검색하면 설명이나옴. 궁금하면 검색 해볼것 **
참고 : https://www.oops4u.com/2372
> addons : 부가 기능은 Kubernetes의 기능을 확장합니다