บันทึกการใช้ Kubenetes ( Yaml ) + Nginx Load Balancer


จากอันนี้

เริ่มการใช้งาน Kubernetes แบบเร็วๆ

- master node : 10.0.0.10    
- node-1 : 10.0.0.11    
- node-2 : 10.0.0.12

หลัง จาก ติดตั้งและ join node กันเสร็จ

apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpd
spec:
  replicas: 2
  selector:
    matchLabels:
      app.kubernetes.io/name: httpd
  template:
    metadata:
      labels:
        app.kubernetes.io/name: httpd
    spec:
      containers:
      - name: httpd
        image: httpd
        imagePullPolicy: Always  
        ports:
        - containerPort: 80

Create Service.yaml

apiVersion: v1
kind: Service
metadata:
  name: httpd
spec:
  type: NodePort
  ports:
    - port: 80
      nodePort: 30001
      name: http
  selector:
    app.kubernetes.io/name: httpd

Apply

$ kubectl apply -f httpd.deployment.yaml
$ kubectl apply -f httpd.service.yaml

Check Service

$ kubectl get service

จากนั้น ทำการ Install Nginx

$ sudo apt-get install nginx -y

แก้ ไฟล์ /etc/nginx/sites-available/default

upstream 10.0.0.10 {
    server 10.0.0.11:30001;
    server 10.0.0.12:30001;
}
server {
    listen 80;
    location / {
        proxy_pass http://10.0.0.10;
    }
}

Restart Nginx

$ sudo /etc/init.d/nginx reload
#or
$ systemctl restart nginx

ลอง เปิด ไปที่ 10.0.0.10 ซึ่งเป็น port ที่ลง nginx ( ในที้นี้ใช้ server เดียวกับ master )

May 31, 2020