멀티 master 구성

Damian·2021년 11월 4일

kubernetes

목록 보기
1/7

o 서버 스펙

  • 멀티 Master 구성을 작업을 위한 최소 스펙
호스트명cpumem
proxy_lb1core1GB
master12core4GB
master22core4GB
worker11core2GB
worker21core2GB

o 구성도

proxy 구성

  • proxy_lb 서버를 이용하여 LB 환경을 구축하였다.
    구성은 docker를 이용하였다.
  1. master 6443포트 통신을 위한 proxy container
  2. 외부 서비스 제공을 위한 LB
#  proxy용 LB container
docker run --name proxy -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro --restart=always -p 6443:6443  -d nginx

# 서비스 LB container
docker run --name httpd_lb -v /root/nginx.conf:/etc/nginx/nginx.conf:ro --restart=always -p 80:80  -d nginx

Master 구성

  • crio k8s 설치가 완료되었다는 가정하에 아래 진행
    proxy 설정하여 master 분산작업 진행
#lb, master1,2 worker 1,2 모두 호스트 등록

cat /etc/hosts
	127.0.0.1 localhost
	192.168.10.10 master1
	192.168.10.11 master2
	192.168.10.12 worker1
	192.168.10.13 worker2
	192.168.10.134 lb  proxy.lb.com dame.yoo.com


## master1에서 proxy:6443 으로 init 한다.
sudo kubeadm init --control-plane-endpoint "lb:6443"  --upload-certs  --pod-network-cidr "10.244.0.0/16"


## master2 조인
  kubeadm join 192.168.100.10:26443 --token t69wl1.6iq2xfgp8thiz9bb \
    --discovery-token-ca-cert-hash sha256:b94dc94f3a249c237f39808a6ff2d1f68cbe058b9d4aef6d54173b5523976238 \
    --control-plane --certificate-key 91295ae74b07d78d46b4bdc29e62615d50b5644a97ff6f4453c39a574c1f9bb6
    
    
## worker1,2 조인
	kubeadm join 192.168.100.10:26443 --token t69wl1.6iq2xfgp8thiz9bb \
    	--discovery-token-ca-cert-hash sha256:b94dc94f3a249c237f39808a6ff2d1f68cbe058b9d4aef6d54173b5523976238

ingress, svc, deployment,pod 생성

  • ingress 생성
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - host: dame.yoo.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: hello-node-svc
            port:
              number: 80
  • deployment 생성
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2 
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
  • svc 생성
apiVersion: v1
kind: Service
metadata:
  name: hello-node-svc
spec:
  selector:
    app: nginx
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80

결과 보기

  • 2개의 pod에 나누어서 전달 되는 것을 볼 수 있다.
profile
oepenpen

0개의 댓글