Freesunny

[helm] eks 저장소 추가 및 aws-node-termination-handler 업그레이드 하기

Kubernetes

참고: aws-node-termination-handler 는 쿠버네티스 노드를 스팟으로 구성할 때 필요한 APP 이다. 

 


helm eks 저장소 추가

❯ helm repo add eks https://aws.github.io/eks-charts
"eks" has been added to your repositories

 

 

기존에 설치된 helm 패키지 확인

❯ helm list -A
NAME                        	NAMESPACE     	REVISION	UPDATED                             	STATUS  	CHART                             	APP VERSION
aws-node-termination-handler	kube-system   	1       	2020-01-23 15:37:00.775536 +0900 KST	deployed	aws-node-termination-handler-0.3.0	1.0.0
k8s-spot-rescheduler        	kube-system   	1       	2020-05-20 19:29:55.906721 +0900 KST	deployed	k8s-spot-rescheduler-0.4.4        	v0.3.0
prometheus                  	monitoring    	4       	2020-06-16 15:29:38.439616 +0900 KST	failed  	prometheus-11.4.0                 	2.18.1

 

 

최신 패키지 확인 (aws-node-termination-handler)

❯ helm search repo eks | grep aws-node
eks/aws-node-termination-handler	0.7.5        	1.4.0      	A Helm chart for the AWS Node Termination Handler

설치되어 있는 버전은 1.0.0 이고 최신 버전은 1.4.0이라서 업그레이드를 진행한다.

 


업그레이드

❯ helm upgrade aws-node-termination-handler eks/aws-node-termination-handler -n kube-system
Release "aws-node-termination-handler" has been upgraded. Happy Helming!
NAME: aws-node-termination-handler
LAST DEPLOYED: Tue Jun 16 15:49:36 2020
NAMESPACE: kube-system
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
aws-node-termination-handler has been installed or updated. To check the status of pods, run:

kubectl get pods --namespace



설치된 패키지 확인

❯ helm list -A
NAME                        	NAMESPACE  	REVISION	UPDATED                             	STATUS  	CHART                             	APP VERSION
aws-node-termination-handler	kube-system	2       	2020-06-16 15:49:36.456346 +0900 KST	deployed	aws-node-termination-handler-0.7.5	1.4.0

'Kubernetes' 카테고리의 다른 글

간단하게 nginx 배포하기  (0) 2020.03.17
Cluster Overprovisioning  (0) 2019.11.13
kubectl 자동 완성  (0) 2019.10.22
실행되고 있는 pod 를 node 기준으로 sort 하여 보고 싶을 때  (0) 2019.08.09
kubernetes 노드 변경  (0) 2019.08.05

EC2 - curl 명령으로 public IP 확인하는 방법

AWS

curl 명령으로 할당된 public ip를 확인할 수 있다.

# public ip 출력
curl http://169.254.169.254/latest/meta-data/public-ipv4

haproxy path rediect

haproxy

SSL 인증서 확인을 위해서 인증 파일을 보유하고 있는 웹사이트에 올려야 하는데, 파일을 올리기 위해서 모든 웹서버에 재배포를 진행하지 않고, haproxy 를 통해서 특정 path 를 다른 웹서버로 리다이렉트 시키는 방법.

 

<구성>

 

<haproxy.cfg>

frontend lb-fe-http-https
        bind 0.0.0.0:80
        bind 0.0.0.0:443 ssl crt /etc/haproxy/certs/<domain>.pem
        acl is-cert-path path_beg  /.well-known/pki-validation
        use_backend cert-lb-backend if is-cert-path
        default_backend default-lb-backend

backend cert-lb-backend
        balance roundrobin
        server temp01 <server_ip>:80    maxconn 80 check

backend default-lb-backend
        balance leastconn
        server server01 <server_ip>:80    maxconn 80 check
        server server02 <server_ip>:80    maxconn 80 check
        server server03 <server_ip>:80    maxconn 80 check

 

documentDB 를 접속을 위한 port forwarding 셋팅

mongoDB

aws documentdb 는 public 접속을  허용하지 않고, private 으로만 접속을 해야 한다.

 

아무래도 편하게 접속할 수 있도록 documentdb 가 접속되는 subnet 에 ec2 인스턴스를 설치하고 해당 instance 를 통해서 documentdb 를 접속할 수 있도록 셋팅하였다.

 

먼저 documentdb 의 tls 옵션을 disable 로 변경한 뒤에 cluster 를 재시작한다.

 

documentdb 로 접속 할수 있는 ec2 에 자기자신에게 로그인할수 있도록 pem 파일을 업로드 한다.

 

documentdb 로 접속 할수 있는 ec2 인스턴스에서 아래의 명령을 입력한다.

ssh -o ExitOnForwardFailure=yes -f -i <my-pem-key.pem> -N -L 0.0.0.0:27017:<document-db-enpoint>:27017 <username>@localhost


ec2 를 통해서 documentdb 가 연결되는지 확인한다.

mongo --host <ec2-host-name or ec2-ip>:27017 --username <documentdb-account> --password <documentdb-password>




백그라운드에서 터널이 연결되며, 서버 종료 되기 전까지 터널링이 계속 유지 된다.

'mongoDB' 카테고리의 다른 글

mongod log file 관리  (0) 2019.07.19

간단하게 nginx 배포하기

Kubernetes

클러스터 내에 파드의 통신을 확인할때 명세 없이 커맨드 만으로 nginx 를 배포하는 방법이다.

os가 debian 이라서 배포후 필요한 패키지는 apt 로 설치해서 사용하면 된다.

 

$ kubectl create deployment nginx --image=nginx -n namespace

Grafana - docker container 로 실행 시키기

Grafana

grafana 를 통해서 네 가지의 모니터링 지표들을 한 곳에서 보고 있다.

  • zabbix
  • aws cloudwach
  • azure monitor
  • prometheus

ssl 은 haproxy 를 통해서 처리했고, 계정관리를 위해서 ldap 서버와 연동을 하였다.

 

설치는 docker container 방식을 사용하였다.

 

디렉토리 생성 및 권한 설정

  • 디렉토리는 본인의 환경에 맞게 변경
  • grafana  데이터는 uid 472, gid 472 사 소유권을 갖도록 설정 한다.
 
# mkdir /data/grafana/grafana-storage
# chown 472 /data/grafana/grafana-storage
# chgrp 472 /data/grafana/grafana-storage
# mkdir /data/grafana/etc
 

 

실행 명령

  • grafana의 기본 포트는 3000 이다.
    가급적 컨테이너의 포트는 변경하지 않는 것이 좋으나,
    변경이 필요할 경우에는 최초 실행 후 생성되는 grafana.ini 를 수정하고, container 삭제 후 변경된 포트로 실행하면 된다.
  • admin 패스워드는 본인 환경에 맞게 변경
 
# docker run -d -p 3000:3000 --name=grafana \
  -e "GF_SECURITY_ADMIN_PASSWORD=secret" \
  -v /data/grafana/grafana-storage:/var/lib/grafana \
  -v /data/grafana/etc/ldap.toml:/etc/grafana/ldap.toml \
  -v /data/grafana/etc/grafana.ini:/etc/grafana/grafana.ini \
  grafana/grafana
 
 

 

실행 확인

 
# docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                                                              NAMES
1873bc3660ba        grafana/grafana              "/run.sh"                22 minutes ago      Up 22 minutes       0.0.0.0:3000->3000/tcp                                             grafana
 

 

http://server_ip:3000 으로 접속하여 admin / secret 로 접속하면 된다.

zabbix에서 docker network interface 제외하는 방법

Zabbix

참고 : zabbix 4.0 

 

Administration > General > Regular expressions > Network interfaces for discovery

 

'Zabbix' 카테고리의 다른 글

[zabbix] TCP 모니터링 하는 법  (0) 2019.11.26
[Zabbix] redis 모니터링 방법  (0) 2019.09.10
[Zabbix] 디스크 모니터링 하는 방법  (0) 2019.09.10

[redis] monitoring 하는 방법

Redis

redis 를 통해서 들어오는 커맨드를 확인하는 방법

$ redis-cli -h localhost -p 6379 -a PASSWORD monitor
$ redis-cli -h localhost -p 6379 -a PASSWORD monitor | grep -v DEL

grep 을 이용하여, 필요한 문자열이 포함된(제외된) 메시지만 출력할수 있다.