บันทึกการใช้ 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 )