본문으로 바로가기

Kubernetes설치 2/2

category Kubernetes/Kuberenetes 설치 2021. 11. 16. 13:40

kubernetes dashboard , metallb 가이드

 

 1. MetalLB 

    1) MetalLB 란 ?

      MetalLB는 표준 라우팅 프로토콜을 사용하여 베어 메탈 (깡통) Kubernetes 클러스터에 대한 로드 밸런서 구현

   

    2) 설치 방법

      # mkdir ~/metallb

      # cd metallb

      # kubectl create ns metallb-system
      # kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.11.0/manifests/metallb.yaml

   

    3) configMap 설정

      # vi metal-config.yaml

      - LB로 사용할 IP 대역을 설정한다.  (필자는 111.50 ~ 111.200 대역을 사용할 예정이다)

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 192.168.111.50-192.168.111.200

      # kubectl apply -f metal-config.yaml

 

      kubernetes dashboard를 설치 후 metallb가 정상 동작하는지 확인 하도록 하자.

 

      ** 간혹 secret 에러가 발생 할 경우 조치 사항

# kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"

 

 2. Kubernetes Dashboard

    1) Kubernetes는 일반적으로 커맨드 라인 도구인 kubectl을 사용하여 관리 한다. 관리의 불편함이 발생 할 수 있기에

       WEB UI 인 대시보드를 제공 한다.

 

    2) 설치 방법

    # kubectl apply- f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml

    # kubectl get svc -A 

      * dashboard에 LoadBalancer 타입을 적용하여 metallb가 정상동작 됬는지 확인한다.

    # kubectl edit svc -n kubernetes-dashboard kubernetes-dashboard

       type: ClusterIP   -> type: LoadBalancer 변경 후 저장

 

      ** 대시보드가 LoadBalancer 상태가 되었는지 확인 해보자

      * EXTERNAL-IP에 MetalLB에서 설정한 IP대역이 정상적으로 확인 되었다. 

      * EXTERNAL-IP(192.168.111.50)로 접속하여 대시보드가 정상 동작 되는지 확인해보자

    3) 계정 생성 

      쿠버네티스 대시보드에 접속 하여 쿠버네티스를 통제할 수 있는 계정을 생성하고 권한 부여를 한다.

      # vi server-account.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system

      # vi cluster-role-binding.yaml

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: admin-user
    namespace: kube-system

      # kubectl apply -f service-account.yaml

      # kubectl apply -f cluster-role-binding.yaml

   

    4) 대시보드 접속 - 대시보드를 접속하기 위해서는 token이 필요하다. token을 추출하여 접속해보자

# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

Name:         admin-user-token-79qlz
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: admin-user
              kubernetes.io/service-account.uid: cd6e16aa-1eef-4a95-b489-a10a4396d5e8

Type:  kubernetes.io/service-account-token

Data
====
token:      eyJhbGci~~~~~~~~~~~~~~~~~~~~~
ca.crt:     1099 bytes
namespace:  11 bytes

      * token을 추출하여 대시보드에 접속한다.  -> token : eyJhbGci~~~~ 복사후 토큰 입력(아래창)

 

이로써 쿠버네티스 설치와 MetalLB, Dashboard 설치가 끝이났다.

 

 

'Kubernetes > Kuberenetes 설치' 카테고리의 다른 글

Ingress 설치  (0) 2022.12.05
Monitoring 구축 (prometheus, grafana)  (0) 2022.12.02
NFS-Client-Provisioner 설치  (0) 2022.12.02
argoCD 설치 방법  (0) 2022.12.02
Kubernetes 설치 1/2  (0) 2021.11.15