일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- mysql all table truncate
- mysql 검사
- galera cluster 재시작
- mysql 모든 데이터 삭제
- centos mount
- 서버 재시작시 mount
- mysql 자동복구
- mariadb 모든 데이터 삭제
- 쿠키 하루
- mariadb all table truncate
- mysql recovery
- mysqlcheck
- mysql database 검사
- mysql 손상
- mysql yum 설치
- mysql table 손상
- cookie today
- mysql DB권한
- mariadb galera cluster
- 쿠키 오늘
- mysql auto repair
- mysql database truncate
- mysql galera cluster
- elasticsearch mapping생성
- mysql 사용자 생성
- linux mount 방법
- 쿠키 하루 저장
- docker 설치
- cookie 하루 저장
- mysql yum install
- Today
- Total
IT
kuberentes(쿠버네티스) 대시보드 설치, metrics-server설치, 대시보드 접속 본문
※ 목표
쿠버네티스(kubernetes),도커(docker) 설치(1)
kuberentes(쿠버네티스) 대시보드 설치, metrics-server설치, 대시보드 접속(2)
kuberentes(쿠버네티스) 대시보드 외부접속 작업(3)
docker private registry 생성 (4)
kubernetes(쿠버네티스)를 통해 deployment pod 배포 (5)
kuberentes(쿠버네티스), 프로메테우스(prometheus), 그라파나(grafana) 연동 (6)
현재 서비스와 kubernets api를 연동하여 deplyment replicas를 제어 (7)
kuberentes(쿠버네티스) 대시보드 설치, metrics-server설치, 대시보드 접속
※ ~.yaml파일 작성시 tab은 오류(인식못함). 온니 스페이스바로만 작성.!!
--대시보드 적용
> 쿠버네티스 공식홈페이지 대시보드 적용방법
https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/
> 대시보드 적용
(1)
#kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
또는
(2)
# cd ~
# mkdir dashboard
# cd dashboard
# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
위의 방법은 취향대로 하면 될것같다. 나의경우는 다운받아서 적용하는것이 더 좋아서 (2)번으로 진행
[대시보드 적용확인]
# kubectl get services --all-namespaces 또는 kubectl get service -n kubernetes-dashboard
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 21m
default nginx NodePort 10.101.211.51 <none> 80:30219/TCP 16m
kube-system kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 21m
kubernetes-dashboard dashboard-metrics-scraper ClusterIP 10.97.93.46 <none> 8000/TCP 75s
kubernetes-dashboard kubernetes-dashboard NodePort 10.106.35.182 <none> 443:32162/TCP 76s
> 기억해야할 사항
**대시보드 서비스의 namespaces가 이전버전에는 kube-system이였지만 특정버전이후 kubernetes-dashboard로 변경된것으로 보임.
검색하여 대시보드에 무언가 적용할때 뭔가 안되는게 많았는데 namespace때문이였다.
기억해야될 사항인 것 같다.
--메트릭 서버 적용
대시보드 적용시 cpu나 memory정보를 수집하는 애드온도 설치하여야 하며
검색당시 hepster설치가 많았지만 버전이 많이 지난 후 지원하지 않는것 같음.
heapster 설치는 아래와 같은 이유로 정상설치 안되는 이유가 많았음.
쿠버네티스 v1.11부터 heapster가 deprecated 되었습니다 (자세한 내용은 문서를 참고 바랍니다.) 그래서 HPA(horizontal pod autoscaler)나 kubectl top 명령어를 사용하라면 metrics-server를 사용해야 합니다.
그래서 metrice server(매트릭서버를 설치)
# cd ~
# mkdir metric
# cd metric
# wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml
# vi components.yaml
=============================================
apiVersion: apps/v1
kind: Deployment
metadata:
name: metrics-server
namespace: kube-system
labels:
k8s-app: metrics-server
spec:
selector:
matchLabels:
k8s-app: metrics-server
template:
metadata:
name: metrics-server
labels:
k8s-app: metrics-server
spec:
serviceAccountName: metrics-server
volumes:
# mount in tmp so we can safely use from-scratch images and/or read-only containers
- name: tmp-dir
emptyDir: {}
containers:
- name: metrics-server
image: k8s.gcr.io/metrics-server-amd64:v0.3.6
imagePullPolicy: IfNotPresent
args:
- --cert-dir=/tmp
- --secure-port=4443
- --kubelet-insecure-tls=true
- --kubelet-preferred-address-types=InternalIP
ports:
- name: main-port
containerPort: 4443
protocol: TCP
securityContext:
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
volumeMounts:
- name: tmp-dir
mountPath: /tmp
nodeSelector:
kubernetes.io/os: linux
kubernetes.io/arch: "amd64"
=============================================
위와 같이
- --kubelet-insecure-tls=true
- --kubelet-preferred-address-types=InternalIP
추가한다. (tab으로 들여쓰기X 스페이스바로만)
> metricserver 적용
# kubectl apply -f components.yaml
[metric-server 적용확인]
아래의 명령어가 실행되어야 metric-server가 정상적으로 설치된것
# kubectl top nodes
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
master 138m 6% 2251Mi 61%
node1 48m 2% 1277Mi 74%
node2 39m 1% 1283Mi 74%
# kubectl top pods
NAME CPU(cores) MEMORY(bytes)
sj-cataloger-749f87bb95-glgn4 1m 143Mi
sj-cataloger-749f87bb95-tkl88 1m 144Mi
sj-deletemanager-7f4f5fb49c-5l2t8 1m 142Mi
sj-deletemanager-7f4f5fb49c-g494n 1m 146Mi
sj-deletemanager-7f4f5fb49c-xvdr6 1m 165Mi
sj-tr-54c6dfbb59-d7rdh 1m 144Mi
*메트릭서버 명령어 사용시 오류
Error from server (ServiceUnavailable): the server is currently unable to handle the request (get pods.metrics.k8s.io) -> 기다리면됨
error: metrics not available yet -> 기다리면됨
메트릭 서버같은경우 설치후 정보수집이 필요하기때문에? 3분정보 기다린듯함.
# kubectl logs -n kube-system deploy/metrics-server 메트릭서버 오류로그 보는법
--대시보드 접속방법(Master서버에서만 가능)
기본적으로 대시보드 접속하는 방법이며 Master서버에서만 가능하다.
linux gui환경이 아니라면 계정 생성까지만하면 됨
> serviceaccount 계정 생성
* 위치상관없음
# vi serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
#kubectl apply -f serviceaccount.yaml
> ClusterRoleBinding 생성
#vi ClusterRoleBinding.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: kubernetes-dashboard
> 생성된 계정정보로 토큰 생성, 출력된 토큰으로 로그인 페이지에 토큰 입력
# kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
~
~
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IkhRVjgwaGFXb3NRV3doM1FORU80RlB2ZDUyOUd1Y0hRMU9y.....~~~
**참고사항**
서비스 계정생성시 admin-user같은건 자기가 원하는 ID로 바꿔서 진행
[쿠버네티스 서버 프록시 실행]
# kubectl proxy --port=8001 &
[접속]
대시보드 접속 후 로그인시 token값 입력후 로그인하면 되며
Master서버에서만 접속되며 localhost로만 된다.(127.0.0.1 x)
'Kubernetes(쿠버네티스)' 카테고리의 다른 글
쿠버네티스(kubernetes),도커(docker) 설치 (0) | 2020.08.14 |
---|---|
kubernetes 기본적인 명령어 (0) | 2020.08.11 |