쿠버네티스 대시보드를 통해 쿠버네티스 노드나 파드를 한눈에 볼 수 있다.
하지만 대시보드를 사용하게 되면 모든 권한흘 해제해주어야 하기 때문에
대시보드에서 클러스터의 모든 오브젝트들을 조회, 수정, 삭제가 가능하다.
그래서 보안상 권장하지 않는다고 한다.
이런 점들을 주의하고 대시보드를 설치하고 실행해보자.
> 쿠버네티스 대시보드 documents
https://kubernetes.io/ko/docs/tasks/access-application-cluster/web-ui-dashboard/
> gibhub 대시보드 관련 repository
https://github.com/kubernetes/dashboard
쿠버네티스 클러스터 대시보드 설치 및 설정 요약 정리
1. 대시보드 배포하기
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
2. 프록시 띄우기
nohup kubectl proxy --port=8001 --address=192.168.1.10 --accept-hosts='^*$' >/dev/null 2>&1 &
3. 대시보드 접속하기
# 서버에서 직접 접속할 경우
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login
# 따로 IP를 할당한 경우
http://[할당된 IP]:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login
# 따로 NAT 네트워크를 통해 포트 포워팅 한 경우 (포트는 마음대로 설정, 10080 제외)
http://localhost:18080/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login
3-1. 토큰을 이용한 접속 방법
- 서비스 어카운트 확인
kubectl get serviceaccounts -A
- 서비스 어카운트 토큰 이름 확인
kubectl describe serviceaccounts default
- default 서비스 어카운트 클러스터 롤 정의
kubectl create clusterrolebinding [default token name] -n [namespace] --clusterrole=cluster-admin --serviceaccount=[그룹:계정]
# default 클러스터 롤 정의
kubectl create clusterrolebinding default-token-mgpxz -n default --clusterrole=cluster-admin --serviceaccount=default:default
- 토큰 확인
kubectl describe secrets [token name]
# default 어카운트 토큰 확인
kubectl describe secrets default
- 토큰을 사용해 로그인
3-2. 대시보드 yaml 파일을 수정해 인증 건너뛰기
- 대시보드 yaml 파일 다운로드 및 수정 (파일 이름은 마음대로)
curl https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml -o dashboard.yaml
- cluster role 수정 및 로그인 스킵 추가
155 apiVersion: rbac.authorization.k8s.io/v1
156 kind: ClusterRoleBinding
157 metadata:
158 name: kubernetes-dashboard
159 roleRef:
160 apiGroup: rbac.authorization.k8s.io
161 kind: ClusterRole
162 name: cluster-admin <<<<<<<<<<<<<< 수정한 부분
163 subjects:
164 - kind: ServiceAccount
165 name: kubernetes-dashboard
166 namespace: kubernetes-dashboard
(...)
187 spec:
188 containers:
189 - name: kubernetes-dashboard
190 image: kubernetesui/dashboard:v2.3.1
191 imagePullPolicy: Always
192 ports:
193 - containerPort: 8443
194 protocol: TCP
195 args:
196 - --auto-generate-certificates
197 - --enable-skip-login <<<<<<<<<<<<<< 추가한 부분
198 - --namespace=kubernetes-dashboard
199 # Uncomment the following line to manually specify Kubernetes API server Host
200 # If not specified, Dashboard will attempt to auto discover the API server and connect
201 # to it. Uncomment only if the default does not work.
202 # - --apiserver-host=http://my-address:port
- 이전 대시보드 삭제 및 수정한 대시보드 배포
# kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
# kubectl apply -f dashboard.yaml
- 다시 대시보드에 접속해 로그인 생략으로 접속해 클러스터 정보 확인
0. 대시보드 접속을 위한 포트 열어주기
기존에 VirtualBox 네트워크 설정으로 각 노드들의 포트 포워딩을 했었는데
이번에도 쿠버네티스 프록시 서버에서 8001 포트를 통해 대시보드에 접속하기 위해서
추가로 포트 포워딩 규칙을 만들어주었다.
마스터노드의 8001 포트를 통해 대시보드에 접속하려면 localhost에서 18080 포트를 통해 접속한다는 것이다.
localhost:18080 -> 10.0.2.10:8001 (k8s-master)
추가로 현재 크롬에서는 10080 포트를 차단한 상태였다.
이 내용은 아래 포스트에서 확인할 수 있었다.
https://itigic.com/ko/chrome-blocks-tcp-port-10080-to-prevent-attacks/
1. 대시보드 배포하기
만들어진 대시보드 yaml 파일을 가져와 배포한다.
나는 github 에서 제공되는 yaml 파일을 통해 대시보드를 배포했다.
[root@k8s-master ~]# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
Warning: spec.template.metadata.annotations[seccomp.security.alpha.kubernetes.io/pod]: deprecated since v1.19; use the "seccompProfile" field instead
deployment.apps/dashboard-metrics-scraper created
2. 프록시 띄우기
배포가 끝났으면 프록시 서버를 열어 접속할 수 있게 해주어야 한다.
프록시를 띄울 때 보통 서버 자체에서 띄우기 때문에 아래와 같이 localhost 에 접속해 대시보드를 사용할수 있다.
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
이렇게 접속을 하면 되는데 나는 가상머신으로 만든 마스터노드에서 대시보드를 사용하기 때문에
프록시 서버에 IP 주소를 따로 입력해서 입력한 IP 주소로 대시보드에 접속할 수 있도록 해야 한다.
그래서 proxy 옵션을 사용해 IP 주소를 입력해준다.
만약 따로 IP 를 할당받아 사용한다면 localhost 가 아닌 할당 받은 IP로 접속하면 된다.
[root@k8s-master ~]# kubectl proxy --port=8001 --address=10.0.2.10 --accept-hosts='^*$' &
--port 옵션으로 포트를 정해주고 --address 옵션으로 대시보드에 접속하기 위한 IP, 마스터 노드의 IP를 적어주었다.
--accept-hosts 는 메뉴얼에 프록시가 수락해야하는 호스트의 정규 표현식이라고 설명되어있는데
정규 표현식 ^ * $ 를 사용했는데 ^는 문자열 시작, * 는 0번이상 나오는 문자열, $ 는 문자열 끝 이라고 하는데
쉽게 말해 따로 문자열, 주소 값을 적어주지 않았기 때문에 모든 호스트를 프록시가 수락한다는 말이다.
[root@k8s-master ~]# nohup kubectl proxy --port=8001 --address=10.0.2.10 --accept-hosts='^*$' >/dev/null 2>&1 &
이번에는 다르게 실행해봤는데 proxy 만 사용한 게 아닌 nohub 같이 다른 명령어나 옵션들도 사용되었다.
nohub 이란 리눅스에서 실행 파일을 데몬 형태로 실행시키는 것을 말한다.
쉽게 말해 서비스 형태로 실행되는 것을 말하는데 이렇게 실행하면 터미널 접속이 끊겨도
서버가 살아있다면 proxy 서버가 죽지 않고 실행된다.
마지막에 붙인 "> /dev/null" 은 앞에 실행한 결과를 아무것도 출력하지 않겠다는 말이고
"2>&1" 는 표준에러를 표준 출력으로 리다이렉션하라는 말이다.
즉, "> /dev/null 2>&1" 을 묶어서 보면 출력되는 결과를 null 값으로 만들어라 라는 말이다.
마지막에 붙은 & 는 백그라운드로 프로세스를 실행하라는 말인데 리눅스에서는 포그라운드, 백그라운드 작업이 있다.
포그라운드는 즉 지금 사용하고 있는 터미널에서 눈에 보이게 실행하는 것이고
백그라운드는 터미널에서 보이지 않게 실행하라는 말인데 백그라운드로 실행하면 실행하고 나서 다른 작업을 할 수 있다.
이렇게 프록시를 띄우고 아까 포트 포워딩했기 때문에 localhost의 18080포트로 대시보드에 접속할 수 있다.
3. 대시보드 접속하기
이제 프록시를 띄울 때 옵션에 넣어준 IP 주소를 통해 대시보드에 접속할 수 있다.
http://localhost:18080/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login
접속하면 다음과 같이 쿠버네티스 대시보드가 뜨게 된다.
대시보드에 접속하기 위해서는 올바른 인증을 거쳐야 하는데
인증 방법에는 토큰과 kubeconfig 라는 두 가지 방법있고 인증을 건너뛰는 설정도 있다.
나는 토큰을 사용해서 접속해보려고 한다.
3-1. 토큰을 이용한 접속 방법
대시보드에서 확인할 수 있듯이
서비스 어카운트는 시크릿을 가지고 있고 시크릿을 확인해보면 베어러 토큰이 있다고 설명되어있다.
우선 서비스 어카운트를 통해 계정들을 확인할 수 있는데 계정들 중에 대시보드와 관련된 계정을 확인할 수 있다.
[root@k8s-master ~]# k get serviceaccounts -A
NAMESPACE NAME SECRETS AGE
default default 1 17d
kube-node-lease default 1 17d
kube-public default 1 17d
kube-system attachdetach-controller 1 17d
kube-system bootstrap-signer 1 17d
kube-system calico-kube-controllers 1 17d
kube-system calico-node 1 17d
kube-system certificate-controller 1 17d
kube-system clusterrole-aggregation-controller 1 17d
kube-system coredns 1 17d
kube-system cronjob-controller 1 17d
kube-system daemon-set-controller 1 17d
kube-system default 1 17d
kube-system deployment-controller 1 17d
kube-system disruption-controller 1 17d
kube-system endpoint-controller 1 17d
kube-system endpointslice-controller 1 17d
kube-system endpointslicemirroring-controller 1 17d
kube-system ephemeral-volume-controller 1 17d
kube-system expand-controller 1 17d
kube-system generic-garbage-collector 1 17d
kube-system horizontal-pod-autoscaler 1 17d
kube-system job-controller 1 17d
kube-system kube-proxy 1 17d
kube-system namespace-controller 1 17d
kube-system node-controller 1 17d
kube-system persistent-volume-binder 1 17d
kube-system pod-garbage-collector 1 17d
kube-system pv-protection-controller 1 17d
kube-system pvc-protection-controller 1 17d
kube-system replicaset-controller 1 17d
kube-system replication-controller 1 17d
kube-system resourcequota-controller 1 17d
kube-system root-ca-cert-publisher 1 17d
kube-system service-account-controller 1 17d
kube-system service-controller 1 17d
kube-system statefulset-controller 1 17d
kube-system token-cleaner 1 17d
kube-system ttl-after-finished-controller 1 17d
kube-system ttl-controller 1 17d
kubernetes-dashboard default 1 23m
kubernetes-dashboard kubernetes-dashboard 1 23m
마스터 노드에 많은 계정들이 생성되어 있고 맨 아래에 보면 kubernetes-dashboard 라고 되어있는 부분이 있다.
이 부분을 describe 명령으로 자세히 확인해보면 Tokens 를 확인할 수 있다.
[root@k8s-master ~]# k describe serviceaccounts kubernetes-dashboard -n kubernetes-dashboard
Name: kubernetes-dashboard
Namespace: kubernetes-dashboard
Labels: k8s-app=kubernetes-dashboard
Annotations: <none>
Image pull secrets: <none>
Mountable secrets: kubernetes-dashboard-token-ccgb4
Tokens: kubernetes-dashboard-token-ccgb4
Events: <none>
이제 이 토큰의 secrets를 확인하면 token 값을 확인할 수 있다.
[root@k8s-master ~]# k describe secrets kubernetes-dashboard-token-ccgb4 -n kubernetes-dashboard
Name: kubernetes-dashboard-token-ccgb4
Namespace: kubernetes-dashboard
Labels: <none>
Annotations: kubernetes.io/service-account.name: kubernetes-dashboard
kubernetes.io/service-account.uid: 9e8400c0-4177-4411-8566-90c74238f77e
Type: kubernetes.io/service-account-token
Data
====
namespace: 20 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IjQxZW1QZzYya2JsdTBLbmxBZUhPMzI1NW13ZjF4WFltbmNsMUF5SFhSVlUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1jY2diNCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjllODQwMGMwLTQxNzctNDQxMS04NTY2LTkwYzc0MjM4Zjc3ZSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.NkrQir7Aef6rOH87QpAocNCwxvPONt_mHLs8IRI0EeWaf9owari8hYSjStgDzyXBf2Qt9aQjdXwDGLYintr-rQC-cPxtuY5YOU0tpMJVpek_ZhnFjzU_Ie46SCbKS7WAN0-N_d_o8PtWR2SrnTKYKeJt6HHA_ye1QS098G7nvXuf4aNRzNgZfZLpvlBMYNdCCNismMerxX5w3gt53wAjRsIOyD_QIaLsvT-914maUQUXqkBbXu1OnhRL0RVM5T-gkfcebqTdsDNM7JZul0VqfmAPLZayOA8m7BieDh8wOVXnvF53TmWjqZgxdfw3KQnCJaa33JWYEU84meIIgcTphg
ca.crt: 1099 bytes
토큰 값만 가져오고 싶다면 잘라서 가져오면 된다.
[root@k8s-master ~]# k describe secrets kubernetes-dashboard-token-ccgb4 -n kubernetes-dashboard | grep -w token: | awk '{print $2}'
eyJhbGciOiJSUzI1NiIsImtpZCI6IjQxZW1QZzYya2JsdTBLbmxBZUhPMzI1NW13ZjF4WFltbmNsMUF5SFhSVlUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1jY2diNCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjllODQwMGMwLTQxNzctNDQxMS04NTY2LTkwYzc0MjM4Zjc3ZSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.NkrQir7Aef6rOH87QpAocNCwxvPONt_mHLs8IRI0EeWaf9owari8hYSjStgDzyXBf2Qt9aQjdXwDGLYintr-rQC-cPxtuY5YOU0tpMJVpek_ZhnFjzU_Ie46SCbKS7WAN0-N_d_o8PtWR2SrnTKYKeJt6HHA_ye1QS098G7nvXuf4aNRzNgZfZLpvlBMYNdCCNismMerxX5w3gt53wAjRsIOyD_QIaLsvT-914maUQUXqkBbXu1OnhRL0RVM5T-gkfcebqTdsDNM7JZul0VqfmAPLZayOA8m7BieDh8wOVXnvF53TmWjqZgxdfw3KQnCJaa33JWYEU84meIIgcTphg
자 이제 토큰을 확인했으니 토큰값을 입력해 로그인하면 된다.
로그인하면 끝난 줄 알았더니 내가 만든 쿠버네티스 클러스터에 대한 정보가 아무것도 나오지 않았다.
확인해보니 대시보드에 접근할 수 있는 cluster role 이 설정되어있지 않아서 클러스터 정보를 확인할 수 없다고 한다.
이 문제를 해결하기 위해서는 새로운 서비스 어카운트를 생성하고 cluster role 을 설정하는 것이 좋은 방법이지만
나는 간단하게 default 서비스 어카운트에 cluster role 을 설정해주려고 한다.
나는 default 서비스 어카운트에 cluster role 을 설정해주었다.
[root@k8s-master ~]# kubectl create clusterrolebinding default-token-mgpxz -n default --clusterrole=cluster-admin --serviceaccount=default:default
clusterrolebinding.rbac.authorization.k8s.io/default-token-mgpxz created
default 서비스 어카운트에 cluster-admin 이라는 role 을 설정해주었고
이전에 했던 방법으로 default 서비스 어카운트의 토큰을 확인해 다시 로그인하면 된다.
다시 로그인했더니 내가 만든 쿠버네티스 클러스터에 대한 정보를 가져올 것을 확인할 수 있었다.
3-2. 대시보드 yaml 파일을 수정해 인증 건너뛰기
토큰과 kubeconfig 를 통해 인증을 거쳐야 하지만 인증을 건너뛰는 방법도 있다.
그러기 위해서는 대시보드 yaml 파일을 수정해서 재배포해줘야 한다.
우선 yaml 파일을 수정해주어야 하는데 curl 을 통해 github 에 있는 대시보드 yaml 파일을 다운로드한다.
curl https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml -o dashboard.yaml
그리고 vi 에디터를 통해 수정해준다.
155 apiVersion: rbac.authorization.k8s.io/v1
156 kind: ClusterRoleBinding
157 metadata:
158 name: kubernetes-dashboard
159 roleRef:
160 apiGroup: rbac.authorization.k8s.io
161 kind: ClusterRole
162 name: cluster-admin <<<<<<<<<<<<<< 수정한 부분
163 subjects:
164 - kind: ServiceAccount
165 name: kubernetes-dashboard
166 namespace: kubernetes-dashboard
(...)
187 spec:
188 containers:
189 - name: kubernetes-dashboard
190 image: kubernetesui/dashboard:v2.3.1
191 imagePullPolicy: Always
192 ports:
193 - containerPort: 8443
194 protocol: TCP
195 args:
196 - --auto-generate-certificates
197 - --enable-skip-login <<<<<<<<<<<<<< 추가한 부분
198 - --namespace=kubernetes-dashboard
199 # Uncomment the following line to manually specify Kubernetes API server Host
200 # If not specified, Dashboard will attempt to auto discover the API server and connect
201 # to it. Uncomment only if the default does not work.
202 # - --apiserver-host=http://my-address:port
우선 아까도 그냥 로그인을 하게 되면 클러스터 롤이 설정되어있지 않아 정보를 불러오지 못했기 때문에
이번에는 yaml 파일에 cluster-admin 으로 미리 설정해주었다.
(기존에는 kubernetes-dashboard 라고 되어 있다. )
그리고 197번 줄에 로그인 인증 스킵을 가능하게 추가해주었다.
수정을 다했으면 아까 배포한 대시보드 디플로이먼트를 삭제하고 수정한 대시보드를 다시 배포해준다.
수정할 때 조심해야할 점은 입력할 때 TAB을 사용해 들여쓰기를 하게 되면 제대로 인식하지 않아
스페이스바로만 들여쓰기를 해주어야 한다.
[root@k8s-master ~]# kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
namespace "kubernetes-dashboard" deleted
serviceaccount "kubernetes-dashboard" deleted
service "kubernetes-dashboard" deleted
secret "kubernetes-dashboard-certs" deleted
secret "kubernetes-dashboard-csrf" deleted
secret "kubernetes-dashboard-key-holder" deleted
configmap "kubernetes-dashboard-settings" deleted
role.rbac.authorization.k8s.io "kubernetes-dashboard" deleted
clusterrole.rbac.authorization.k8s.io "kubernetes-dashboard" deleted
rolebinding.rbac.authorization.k8s.io "kubernetes-dashboard" deleted
clusterrolebinding.rbac.authorization.k8s.io "kubernetes-dashboard" deleted
deployment.apps "kubernetes-dashboard" deleted
service "dashboard-metrics-scraper" deleted
deployment.apps "dashboard-metrics-scraper" deleted
[root@k8s-master ~]# kubectl apply -f dashboard.yaml
namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
Warning: spec.template.metadata.annotations[seccomp.security.alpha.kubernetes.io/pod]: deprecated s ince v1.19; use the "seccompProfile" field instead
deployment.apps/dashboard-metrics-scraper created
그리고 대시보드에 다시 접속한다.
로그인 옆에 생략 이라고 버튼이 하나 생긴 것을 확인할 수 있다.
그리고 생략하고나서 접속하면 클러스터 정보를 확인할 수 있다.
대신 인증을 거치지 않았기 때문에 오른쪽 상단에 보면 로그인을 하지 않았다는 표시가 뜬다.
나는 이번에 간단하게 대시보드를 설치해보고 접속해보기 위해서 이런 방법을 사용해봤지만
로그인 인증을 건너뛰기 보다는 제대로된 인증을 통해 이용하는 것이 좋을 것 같다.
이렇게 대시보드 배포하고 설정해 사용할 수 있게 만들어봤는데
대시보드와 관련해서 대시보드의 사용하게 될 경우 보여지는 부분이 많기 때문에 보안상 문제가 될 수 있다고 한다.
그래서 되도록 대시보드의 사용을 권장하지 않는다는 사실을 유의하고 사용해야 할 것 같다.
정말 간단한 실습이나 테스트를 위한 환경에서만 사용해야할 것 같다.
- 참고 사이트 -
https://brownbears.tistory.com/164
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=is_king&logNo=221566914429
https://morian-kim.tistory.com/29
https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=alice_k106&logNo=221320466860
https://jarikki.tistory.com/39
'DevOps > kubernetes' 카테고리의 다른 글
11. VagrantFile 을 통해 VirtualBox 가상 머신 생성 (0) | 2021.12.02 |
---|---|
10. Vagrant 가상 머신을 통해 쿠버네티스 클러스터 생성해보기 (시작하기 전 잡담) (0) | 2021.10.15 |
8. 쿠버네티스 자동완성 기능 설정하기 (0) | 2021.08.29 |
7. 쿠버네티스 클러스터 네트워크 플러그인 cailco 설치 및 적용하기 (0) | 2021.08.29 |
6. 쿠버네티스 클러스터 워커 노드 설정하기 (0) | 2021.08.29 |