k3s+MetalLB 환경 구축,Kubernetes-Dashboard 개발
5993 단어 kubernetes-dashboardk3sMetalLB
간단&경량의 k8s 환경으로 익숙함k3s과 MetalLB을 조합했을 때 hama가 필기를 했기 때문이다.
Kubernetes-Dashboard를 견본으로 삼아 loadBalancerIP를 활용하기 위해 디자인할 때까지 쓴다.
k3s 설치
k3s에 소프트웨어 LoadBalancer가 표준으로 설치되어 있으며 표준 설치 상태에서 MetalLB를 추가하면 행동이 불안정해집니다.
따라서 설치 시 k3s의 LoadBalancer를 무효화합니다.
$ curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--no-deploy servicelb" sh -
공식 문서에도 기재되어 있다. (Option) 휴대용 Mac의 kubectl 사용
k3s가 설치된 서버에서 다음과 같은 조작을 실행합니다
$ sudo cp /etc/rancher/k3s/k3s.yaml /tmp/
$ sudo chmod +r /tmp/k3s.yaml
Mac에서 다음을 수행합니다(Homebrew를 가져온 경우).$ brew install kubectl
$ mkdir ~/.kube
$ scp <k3sサーバのIP>:/tmp/k3s.yaml ~/.kube/config
$ sed -i -e 's/127.0.0.1/<k3sサーバのIP>/g' ~/.kube/config
서버의/tmp/k3s 입니다.적당히yaml을 삭제하세요.MetalLB 설치 및 설정
공식 홈페이지Installation에 따라 실시한다.
2019/10/44시 v0.8.1 다음과 같다.
$ kubectl apply -f https://raw.githubusercontent.com/google/metallb/v0.8.1/manifests/metallb.yaml
설치 후 Configuration의 내용을 보면서 config용yaml 파일을 만듭니다.이번엔 단순히 k3s의 노드와 같은 NW의 IP 범위를 사용하고 싶어서 제작한 것이다.
metallb-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 192.168.24.100-192.168.24.199
$ kubectl apply -f metallb-config.yaml
Kubbernetes-Dashboard 설치이번에는 다음과 같은 조건으로 설계를 진행한다.
- 개별 IP 할당(192.168.24.101 사용)
-http를 통해 액세스
- 액세스 검증 없음
안전성이나 고려할 필요가 없는 강철 바 구조이기 때문에 신경 쓸 필요가 있으면 적당히 수정해 주십시오.
GiithubReleases을 보고 적당한 버전의yaml을 찾아서 다운로드하세요.
이번에는0.0-beta4를 이용하세요.
$ wget -O kubernetes-dashboard.yaml https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml
다음과 같이 수정되었습니다.--- kubernetes-dashboard.yaml.orig 2019-10-04 00:37:28.000000000 +0900
+++ kubernetes-dashboard.yaml 2019-10-04 00:48:09.000000000 +0900
@@ -38,8 +38,10 @@
namespace: kubernetes-dashboard
spec:
ports:
- - port: 443
- targetPort: 8443
+ - port: 80
+ targetPort: 9090
+ type: LoadBalancer
+ loadBalancerIP: 192.168.24.101
selector:
k8s-app: kubernetes-dashboard
@@ -160,7 +162,7 @@
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
- name: kubernetes-dashboard
+ name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
@@ -191,10 +193,10 @@
image: kubernetesui/dashboard:v2.0.0-beta4
imagePullPolicy: Always
ports:
- - containerPort: 8443
+ - containerPort: 9090
protocol: TCP
args:
- - --auto-generate-certificates
+ # - --auto-generate-certificates
- --namespace=kubernetes-dashboard
# Uncomment the following line to manually specify Kubernetes API server Host
# If not specified, Dashboard will attempt to auto discover the API server and connect
@@ -210,7 +212,7 @@
httpGet:
- scheme: HTTPS
+ scheme: HTTP
path: /
- port: 8443
+ port: 9090
initialDelaySeconds: 30
timeoutSeconds: 30
volumes:
편집된yaml을 이용하여 디자인하였습니다.$ kubectl apply -f kubernetes-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
deployment.apps/dashboard-metrics-scraper created
브라우저에서http://192.168.24.101액세스할 때 Dashboard 가 표시됩니다.Reference
이 문제에 관하여(k3s+MetalLB 환경 구축,Kubernetes-Dashboard 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ussvgr/items/b98ada65563edf77f12b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)