minikube echo server 외부 오픈

2023. 3. 18. 23:22k8s

# pod 생성
kubectl create deployment hello-node --image=registry.k8s.io/echoserver:1.4
kubectl get deployments

# pod 확인
kubectl get pods
kubectl logs -f hello-node-cddb6ccd5-w4rpk
kubectl get events
kubectl describe pod/hello-node-cddb6ccd5-w4rpk

# minikube 외부에서 접속할 수 있도록, service 생성
kubectl expose deployment hello-node --type LoadBalancer --port=8080
# ip 지정
kubectl expose deployment hello-node --type LoadBalancer --load-balancer-ip=192.168.131.201 --port=8080

# service 확인
kubectl get service
kubectl get service/hello-node -o yaml
minikube ip

# service 접속 주소 확인
minikube service hello-node

# 결과 확인
curl http://<minikube ip>:<service port>
curl http://<external ip>:8080

# minikube를 stop하고 start하면 서비스에 접속이 안됨
# 조치
kubectl delete service hello-node
kubectl expose deployment hello-node --type LoadBalancer --port=8080
minikube service hello-node

remote PC에서 접속

1. proxy 사용

# port정보가 없으면, 기본 8001 포트로 할당됨
# disable-filter 설정 안하면, 통신 안됨
kubectl proxy --address=0.0.0.0 --disable-filter=true &
or
kubectl proxy --address=0.0.0.0 --disable-filter=true --port=8081 &

# 접속
http://<VM IP>:8001/api/v1/namespaces/default/services/http:hello-node:/proxy/
or
http://<VM IP>:8081/api/v1/namespaces/default/services/http:hello-node:/proxy/

2. port-forward 사용

# port-forward 설정
kubectl port-forward service/hello-node --address 0.0.0.0 8787:8080 &

# 확인
curl http://127.0.0.1:8787
curl http://localhost:8787
curl http://<VM IP>:8787

3. nginx 설정

# nginx reverse proxy 설정
# /etc/nginx/sites-available/reverse-proxy.conf
server {
	listen 8080;
	listen [::]:8080;
	location / {
    	proxy_pass http://{minikube ip}:8080;
	}
}

# 접속
http://{minikube가 설치된 서버의 IP}:8080

4. Basic Authentication 지원하지 않음

https://docs.datadoghq.com/security/default_rules/cis-kubernetes-1.5.1-1.2.2/

 

Basic authentication is disabled for the API server

Datadog, the leading service for cloud-scale monitoring.

docs.datadoghq.com

https://coffeewhale.com/kubernetes/authentication/http-auth/2020/05/03/auth02/

 

k8s 인증 완벽이해 #2 - HTTP Authentication

쿠버네티스 인증 완벽 이해 시리즈 2탄, HTTP Authentication을 이용한 쿠버네티스 인증에 대해서 살펴보는 시간을 가져 보겠습니다.

coffeewhale.com

Basic Authentication 적용시, 'minikube error: unknown flag: --basic-auth-file' 에러 발생

4. Bearer Authentication 사용

https://minikube.sigs.k8s.io/docs/tutorials/token-auth-file/

 

Using Static Token file

Using a static token file in Minikube

minikube.sigs.k8s.io

https://kubernetes.io/docs/reference/access-authn-authz/authentication/#static-token-file

 

Authenticating

This page provides an overview of authenticating. Users in Kubernetes All Kubernetes clusters have two categories of users: service accounts managed by Kubernetes, and normal users. It is assumed that a cluster-independent service manages normal users in t

kubernetes.io

https://coffeewhale.com/kubernetes/authentication/http-auth/2020/05/03/auth02/

 

k8s 인증 완벽이해 #2 - HTTP Authentication

쿠버네티스 인증 완벽 이해 시리즈 2탄, HTTP Authentication을 이용한 쿠버네티스 인증에 대해서 살펴보는 시간을 가져 보겠습니다.

coffeewhale.com

https://m.blog.naver.com/onevibe12/222062965425

 

k8s - 스태틱토큰 생성 (static token file 형식)

구성날짜 : 2020-08-17 구성환경 : CentOS Linux release 7.7.1908(Core) 커널버전 : 3.10.0-327.el7....

blog.naver.com

token 생성

# 디렉토리 생성
# .minikube/files 아래에 두면, 자동으로 node안에 동일한 위치에 파일이 생성됨
mkdir -p ~/.minikube/files/etc/ca-certificates

# token 파일 생성
# token, usr, uid, group 은 적절하게 셋팅 필요
echo token,user,uid,"group1,group2,group3" > token.csv

minikube 시작

# 생성한 token 파일과 동일한 위치 지정
minikube start --extra-config=apiserver.token-auth-file=/etc/ca-certificates/token.csv

# 이미 생성된 minikube에 적용(작동 여부는 확인 필요)
minikube ssh
cd /etc/kubernetes/manifests
vi kube-apiserver.yaml
# -kube-apiserver 아래에 아래 내용 추가
- --token-auth-file=/etc/ca-certificates/token.csv

nginx 설정

# proxy 설정
# ${token}을 token값으로 변경
proxy_set_header Authorization "Bearer ${toekn}";

token 키만 있으면 무조건 접속이 되니, 적절한지는 판단 필요함

'k8s' 카테고리의 다른 글

minikube 설정 테스트  (0) 2023.04.08
miniKube LoadBalancer 설정(metallb)  (0) 2023.03.19
minikube 명령어  (0) 2023.03.18
Window에 kubectl 설치 및 minikube 연결하기  (0) 2023.03.01
우분투에 Minikube 설치  (0) 2023.02.25