Kubernetes 대시보드에 원격으로 액세스
SocketXP TLS VPN
SocketXP TLS VPN 솔루션(경량급 VPN)은 개인 클라우드나 공공 클라우드 중의 개인 Kubernetes 클러스터에 대한 안전한 원격 접근을 제공합니다.SocketXP는 Kubernetes Dashboard를 포함한 로컬 개인 응용 프로그램에 접근할 수 있는 안전한 공공 URL을 제공합니다.
SocketXP 에이전트는 SocketXP DockerHub Repository에서 docker 컨테이너로 제공됩니다.SocketXP Docker 컨테이너를 Kubernetes 클러스터의 독립 컨테이너로 실행하여 Kubernetes 대시보드에 대한 원격 액세스를 설정합니다.
대시보드 UI 배포:
Kubernetes Open Source Project page에서 Kubernetes 클러스터에 대시보드 UI를 배치하고 설정하는 방법에 대한 지침을 따릅니다.
https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/
Kubernetes 공식 문서에서 설명한 바와 같이, 웹 브라우저에서 대시보드에 접근하려면 프록시 모드에서kubectl CLI 유틸리티를 실행해야 합니다.
외부 네트워크에서 Kubernetes 대시보드에 로그인
외부 네트워크에서 Kubernetes 대시보드에 액세스하여 로그인하는 방법은 무엇입니까?
총체적 전략
다음은 Kubernetes 대시보드에 대한 원격 액세스를 설정하는 전체 정책입니다.
SocketXP 에이전트 Docker 컨테이너 배포:
먼저 SocketXP Portal로 이동합니다.무료 계좌를 등록해서 당신의 authtoken을 얻으세요.authtoken을 사용하여 Kubernetes 비밀을 만듭니다. 아래와 같습니다.
kubectl create secret generic socketxp-credentials --from-literal=authtoken=[your-auth-token-goes-here]
기밀 socketxp 증빙서류를 만들었는지 확인하십시오.$ kubectl get secrets
NAME TYPE DATA AGE
default-token-5skb7 kubernetes.io/service-account-token 3 4h
socketxp-credentials Opaque 1 4h
$
우리는 아래의 설정을 사용할 것이다.SocketXP 프록시 Docker 컨테이너를 구성하는 json 파일입니다.이 예에서는 안전한 공공 웹 URL과 Kubernetes API 서버에 대한 TLS VPN 터널을 만들려고 합니다.$ cat config.json
{
"tunnel_enabled": true,
"tunnels" : [{
"destination": "https://kubernetes.default",
"protocol": "tls",
"custom_domain": "",
"subdomain": ""
}],
"relay_enabled": false,
}
다음에 SocketXP 프록시 프로필을 저장하기 위해 Kubernetes configmap을 만듭니다.kubectl create configmap socketxp-configmap --from-file=/home/test-user/config.json
socketxp 설정 맵이 생성되었는지 확인하십시오.$ kubectl describe configmaps socketxp-configmap
Name: socketxp-configmap
Namespace: default
Labels: <none>
Annotations: <none>
Data
====
config.json:
----
{ "tunnel_enabled": true, "tunnels" : [{ "destination": "https://kubernetes.default", "protocol": "tls", "custom_domain": "", "subdomain": "" }], "relay_enabled": false }
Events: <none>
현재 SocketXP 에이전트에 필요한authtoken 기밀과configmap을 만들었습니다. SocketXP Docker 용기expresssocket/SocketXP:latest를 Kubernetes로 배치할 때가 되었습니다.이것은 배치다.yaml 파일을 사용하여 별도의 SocketXP 프록시 배포를 작성합니다.
$cat deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: socketxp
labels:
app: socketxp
spec:
replicas: 1
selector:
matchLabels:
app: socketxp
template:
metadata:
labels:
app: socketxp
spec:
containers:
- name: socketxp
image: expresssocket/socketxp:latest
env:
- name: AUTHTOKEN
valueFrom:
secretKeyRef:
name: socketxp-credentials
key: authtoken
volumeMounts:
- name: config-volume
mountPath: /data
volumes:
- name: config-volume
configMap:
# Provide the name of the ConfigMap containing the files you want
#to add to the container
name: socketxp-configmap
참고:config volume라는 단독 볼륨을 만들고 용기 내의/data 디렉터리에 설치하면 socketxp configmap을 설정 파일로 사용할 수 있습니다.컨테이너의/data 디렉토리에 있는 json 파일을 실행합니다.
다음에 크레인이 배치와 운행에서 만들어졌는지 확인하십시오.
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
socketxp-75cb4dd7c9-bhxfp 1/1 Running 0 4s
$
이제 SocketXP 포털 페이지 (주소: https://portal.socketxp.com/#/tunnels (또는) 의pod 로그에서 Kubernetes API 서버에 생성된 SocketXP 공공 URL을 검색할 수 있습니다. 아래와 같습니다.$ kubectl logs socketxp-75cb4dd7c9-bhxfp
...
...
Login Succeeded.
User [] Email [[email protected]].
Connected.
Public URL -> https://test-user-fn4mda420.socketxp.com
이제 위의 SocketXP 공용 URL을 사용하여kubectl 유틸리티를 사용하여 Kubernetes 클러스터의 API 서버에 원격으로 액세스할 수 있습니다.로컬 kubectl 설치
Kubernetes 클러스터에 원격으로 액세스할 수 있도록 kubectl CLI 유틸리티를 노트북에 로컬로 설치합니다.아래 지침에 따라 노트북에서 kubectl을 다운로드하고 설치합니다.
https://kubernetes.io/docs/tasks/tools/install-kubectl/(opens 새 창)
kubectl CLI 유틸리티를 설치한 후 $HOME/에 있는 kubectl 구성 파일을 덮어씁니다.노트북에kube/config 및 클러스터 마스터 노드($HOME/.kube/config)를 설치합니다.
다음은 SocketXP 공용 URLhttps://test-user-fn4mda420.socketxp.com을 사용하려면 kubectl 구성 파일의 API 서버 URL을 업데이트합니다.
apiVersion: v1
clusters:
- cluster:
certificate-authority: /Users/test-user/.minikube/ca.crt
server: https://test-user-fn4mda420.socketxp.com
name: minikube
contexts:
- context:
cluster: minikube
user: minikube
name: minikube
...
...
클라이언트 인증서, CA 인증서, 개인 키 파일,authtoken을 Kubernetes 그룹의 주 노드에서kubectl 프로필에 지정된 폴더의 노트북으로 복사하십시오.다음 명령을 사용하여 구성이 올바르게 작동하는지 확인합니다.
kubectl config view
이제 로컬에서 kubectl 명령을 실행하여 노트북에서 개인 Kubernetes 클러스터를 원격으로 액세스하거나 관리합니다.$ kubectl get pods
NAME READY STATUS RESTARTS AGE
socketxp-75cb4dd7c9-bhxfp 1/1 Running 0 1h
참고:배치를 사용하여 SocketXP 프록시pod의 여러 복사본을 만들 때,pod마다 유일한 SocketXP 공공 URL이 분배됩니다.이것은 Kubernetes 그룹에서 실행되는 모든 SocketXP 프록시pod가 SocketXP 클라우드 인터페이스에서 새로운 공공 URL을 가져오기 때문입니다.
프록시 모드에서 kubectl 실행하기
Kubernetes 대시보드에 원격으로 액세스하려면 다음과 같이 노트북에서 kubectl CLI 유틸리티를 프록시 모드로 실행합니다.
$ kubectl proxy
Starting to serve on 127.0.0.1:8001
이 명령을 프론트 데스크에서 계속 실행하도록 하세요.Kubernetes 대시보드에 원격으로 액세스하려면:
이제 kubectl 에이전트를 통해 다음 로컬 URL을 사용하여 노트북에서 Kubernetes 대시보드에 원격으로 접근할 수 있습니다.Kubectl은 다음 위치에 대시보드를 제공합니다.
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/(새 창 열기).
현재 k8 자원을 보거나 관리할 수 있습니다.
주: 본문은 최초로 다음과 같이 발표되었다. https://www.socketxp.com/iot
Reference
이 문제에 관하여(Kubernetes 대시보드에 원격으로 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/gvelrajan/remote-access-kubernetes-dashbboard-phc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)