반응형

 

master, slave  mysql 이중화하기

대상서버 : master , slave

 

*작업 하는 대상 서버 색깔 구분으로 표시

 

A. 각 서버에 server id를 지정한다.

vi /etc/mysql/mysql.conf.d/mysqld.cnf

server-id = 1
log-bin=mysql-bin

vi /etc/mysql/mysql.conf.d/mysqld.cnf

server-id = 1
log-bin=mysql-bin

 

B. master mysql 확인

SHOW MASTER STATUS\G;

 

C. slave mysql  master 연동

(B.) 에서 확인 된 master mysql 내용을 연동 시, 똑같이 기입한다.

CHANGE MASTER TO
MASTER_HOST='서버 IP',
MASTER_USER='유져',
MASTER_PASSWORD='유져 비밀번호',
MASTER_LOG_FILE='master 확인 내용',
MASTER_LOG_POS=master 포지션 값;

 

start slave;

 

D. Check

show slave status\G

 

E. If ERROR?

Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work. 

 

mastrer, slave  uuid 값을 확인한다.

show variables like '%uuid%';

show variables like '%uuid%';

 

두 서버의 uuid가 같다면, 13117 애러가 발생한다.

slave     db data path에 있는  auto.cnf 를 제거 하고 

/etc/init.d/mysql restart

stop slave;

start slave;

 

끝.

반응형

'server eng > Cluster AA AS HA' 카테고리의 다른 글

HTTP Keep Alive  (0) 2023.05.25
반응형

고가용성(High-Availability)

  • 장애 극복(Fail Over)의 목적
  • 서버 이중화 구성
  • 서버 한 개가 죽어도 서비스가 되어야 함

 

Active-Active (A-A)

  • L4 스위치 등의 로드밸런싱을 통해서 여러 개의 서버로 나누어서 처리한다
  • 여러 개의 서버가 동시에 동작하기 때문에, 한대가 다운되어도 남은 서버가 처리 가능 
  • 다운 타임이 존재하지 않는다

 

Active-Stand by (A-S)

  • Active 상태의 서버, Stand by 서버
  • S가 A에게 계속해서 keep-alive를 통해 상태를 확인  
  • A가 장애시 서비스 장애를 즉시 인지하여 S로 서비스를 이전
    • 장애 발생 시 서비스를 이전하여 운영하는 형태
  • 성능적 향상은 거의 ❌
  • S가 놀고 있는 상태 -> 리소스 측면에서 낭비

Stand by 유형

Hot Stand by S를 가동 후 즉시 이용가능하게 하는 구성
Warm Stand by S를 가동 후 이용 가능하게 하기 위해 준비가 필요한 구성
Cold Stand by S를 정지시켜 두는 구성

 

 

이중화 솔루션은 장애 발생 시 Fail Over 하여 서비스 다운 타임을 최소화하고, 서비스를 자동으로 복구시키는 것이 목적이다.

HA 클러스터가 제대로 구축되지 않으면 장애 탐지를 제대로 못하거나, 자동으로 복구되지 않는 현상이 발생해 서비스 다운 타임이 발생할 수 있다. 이러한 상황에 수동 복구 조치를 하지 못하면, 단일 서버 환경보다 훨씬 긴 다운타임이 발생할 수 있다.

HA 솔루션은 비용이 비싸고, 관리 포인트가 늘어나기 때문에 정말 필요한 시스템인지 고려해봐야 한다.../

반응형

'server eng > Cluster AA AS HA' 카테고리의 다른 글

myusql Replication DB 이중화 Cluster 5분 컷~  (0) 2023.05.27
반응형

프로미스 설치가 되었다면  등록만 해주고, 그라파나에서 연동해주면 끄읏

 

서버에서 prometheus.yml에 호스트를 추가해준다.

 

group 으로 묶고 서버들을 포함시킬 수 있다.

나는 각 실제 클러스터 노드들로 구성을 테스트 해봤다.

 

느무 쉽쥬~~ systemctl 퍼미션 error 때문에... 20시간을 날렸다~~~~~~~~~~~

chmod, chown로 해결이 가능한걸 으이그 라는 생각을 했다면... 다시 공부하세요~~~

 

 

 

 

반응형
반응형

wegt https://github.com/prometheus/prometheus/releases/download/v2.43.0/prometheus-2.43.0.linux-amd64.tar.gz

tar -zxvf prometheus-2.43.0.linux-amd64.tar.gz

폴더명은  prometheus-2.43.0.linux-amd64.tar.gz ->  prometheus로 바꾸고 제가 설치를 하고자하는 /BiO/Install 로 mv했습니다~

그후 systemctl에 데몬 실행 준비를 해주고 스타트~ 

vi /etc/systemd/system/prometheus.service 

 

[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target

[Service]
User=root
Restart=on-failure

#Change this line if you download ther
#Prometheus on different path user
ExecStart=/BiO/Install/prometheus \
  --config.file=/BiO/Install/prometheus/prometheus.yml \
  --storage.tsdb.path=/data/prometheus \
  --web.console.templates=/BiO/Install/prometheus/consoles \
  --web.console.libraries=/BiO/Install/prometheus/console_libraries \
  --web.listen-address=0.0.0.0:9090 \
  --web.enable-admin-api

[Install]
WantedBy=multi-user.target

systemctl daemon-reload;systemctl start prometheus.service; systemctl status prometheus.service 

데몬 리로드, 스타트, 스텟터스~ 확인~~~~ 후 웹으로도 확인 ! 

짜쟌

 

 

반응형

'server eng > Grafana' 카테고리의 다른 글

우분투 20.04 그라파나 Grafana INSTALL [매우 간단]  (0) 2023.04.16
반응형

https://grafana.com/grafana/download/9.2.10

위 사이트에서 최신버젼을 확인하세요 !

wget https://dl.grafana.com/enterprise/release/grafana-enterprise_9.2.10_amd64.deb
sudo dpkg -i grafana-enterprise_9.2.10_amd64.deb

 

최신 버젼 확인, 후 설치! 

 

반응형

'server eng > Grafana' 카테고리의 다른 글

prometheus install for ubuntu 20.04 [5분 컷?]  (0) 2023.04.16
반응형

침묵의 설치~ START

A. 모듈, 레파지토리 업뎃, 필요 설치, 쿠버설치 등등 !@$#@$

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sudo sysctl --system 

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl

sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

sudo systemctl daemon-reload
sudo systemctl restart kubelet

 

kubelet 실패 블라블라 무시해도 괜찮아요.

matesr server 에서 INIT 후 정상실행 될 거니까~~누난 내여자니까~~

 

 

B. Control-plane 구성 (master only) 

master node에서

sudo kubeadm init

반응형
반응형

 

mkdir -p $HOME/.kube;sudo cp -i /etc/kubernetes/kubelet.conf $HOME/.kube/config;sudo chown $(id -u):$(id -g) $HOME7/.kube/config;

 

 

반응형
반응형

 

아래 명령어로 컨테이너 날리고 마스터 노드에 조인 ~!

sudo rm /etc/containerd/config.toml;sudo systemctl restart containerd;

반응형
반응형

쿠버네티스? 도커 ?

한줄 이해하기 : 쿠버네티스가 아빠, 도커가 아들님 ->  아빠가 아드님에게 심부름을 시킨다.

사랑은 가슴으로 시킨다~ 


 

도커는 쿠버네티스가 오케스트레이션하는 컨테이너 런타임으로 사용할 수 있다.

쿠버네티스가 노드에 대해 포드를 예약하면 해당 노드의 kubelet이 지정된 컨테이너를 실행하도록 Docker에 오퍼레이션을 한다.

 

서론이 길었다. (나도 좀 길고 싶다.)

 

A. swap 안녕

sudo swapoff -a && sudo sed -i '/swap/s/^/#/' /etc/fstab

 

B.Docker, containerd 설치

 Docker, containerd 설치 (모든 master, worker node)

Kubernetes 는 컨테이너 기반으로 작동함에 따라 Docker, containerd 를 우선 설치가 필요하다.

containerd 는 OCI 표준에 부합하게 새로 만든 Container Runtime 임네다~

 

B-a. 패키지 업데이트

레파지토리 업뎃~

sudo apt-get update 

아래 설치 필수~
sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

Doker 레파지토리 추가~

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

B-c. Docker, containerd 설치


sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo docker version

 

레이니즘 버금가는 귀차니즘.... 한줄로 명령어를 줄줄이 소세지로 날려준다.
(명령어 설명 : os부팅 시, docker 실행해라~ 컨테이너 실행해라~ 지금 시작해라~)

sudo systemctl enable docker;sudo systemctl start docker;sudo systemctl enable containerd;sudo systemctl start containerd;

 

C. 도커 설정

로그사이즈 지정 및 source 반영하기

 

sudo mkdir -p /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

 

 

 

이 또한 스크립트로 만들고 싶다.

한방에 설치가 되게... 

 

 

-5분 뒤- 

자동 설치 cli~~

wget https://storage.soowim.co.kr/Kubernetes/Docker/Docker_install.sh

sudo chmod ./Docker_install.sh;sh Docker_install;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
반응형

마스터 노드에서만 진행합니다 !

Pod 간 통신을 위한 add-on Weave Net works 을 설치합니다.

kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml

kubectl get node

 

노드들 status  Ready~~

반응형

+ Recent posts