การตั้งค่าสำหรับผู้พัฒนา: การเชื่อมต่อหลายจุดบน Minikube

เอกสารนี้จะแสดงวิธีการตั้งค่าการติดตั้งไคลเอ็นต์ WhatsApp Business API ที่มีการเชื่อมต่อหลายจุดบน Minikube สำหรับเครื่องของผู้พัฒนา โปรดดูรายการข้อกำหนดของเราก่อนเริ่มขั้นตอนการตั้งค่าเหล่านี้

หากต้องการตั้งค่าคลัสเตอร์ความพร้อมใช้งานระดับสูง ให้ดำเนินขั้นตอนเหล่านี้

  1. สร้างไดเรกทอรี biz สำหรับสคริปต์การตั้งค่า
  2. เรียกดูไฟล์การกำหนดค่าไคลเอ็นต์ WhatsApp Business API
  3. สร้างฐานข้อมูล MySQL
  4. สร้างข้อมูลลับ whatsapp-config
  5. สร้างไดรฟ์ข้อมูลสื่อในเครื่อง
  6. กำหนดตัวแปรสภาพแวดล้อม $VERSION
  7. ใช้งานคอนเทนเนอร์
  8. ค้นหาพอร์ตคอนเทนเนอร์เว็บแอพ
  9. เรียกดูโทเค็นการยืนยันตัวตน
  10. ดำเนินการตรวจสอบระบบ
  11. ลงทะเบียนไคลเอ็นต์ WhatsApp Business API
  12. ดำเนินการตรวจสอบระบบครั้งที่สอง

หากต้องการตั้งค่าคลัสเตอร์การเชื่อมต่อหลายจุดที่มีความพร้อมใช้งานระดับสูง ให้ดำเนินขั้นตอนเหล่านี้

  1. ตั้งค่าชาร์ด 2 รายการ
  2. ดำเนินการตรวจสอบระบบ
  3. เริ่มการทำงานของ Coreapp ที่สามเพื่อรักษาความพร้อมใช้งานระดับสูงเอาไว้
  4. ดำเนินการตรวจสอบระบบครั้งที่สอง

เมื่อตั้งค่าอินสแตนซ์เรียบร้อยแล้ว คุณสามารถเลือกที่จะอัพเกรดอินสแตนซ์ได้ หากต้องการถอนการติดตั้งไคลเอ็นต์ ให้ทำตามขั้นตอนเหล่านี้

ก่อนเริ่มต้น

คุณจะต้องมีรายการต่อไปนี้

  • คลัสเตอร์ Kubernetes ที่ตั้งค่าไว้ภายในเครื่องโดยใช้ minikube
  • เครื่องมือบรรทัดคำสั่ง kubectl
  • บัญชีทดสอบที่ตั้งค่าไว้ภายในเครื่องในสภาพแวดล้อมการพัฒนา
    • ขั้นตอนนี้มีไว้เพื่อการพัฒนาที่รวดเร็วและใช้ทดสอบผลิตภัณฑ์รุ่นใหม่ๆ

เราขอแนะนำอย่างยิ่งให้คุณอ่านคู่มือความพร้อมใช้งานและการขยายขนาดเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับความพร้อมใช้งานระดับสูงและการเชื่อมต่อหลายจุด

การตั้งค่าคลัสเตอร์ความพร้อมใช้งานระดับสูง

ขั้นตอนที่ 1: สร้างไดเรกทอรี biz สำหรับสคริปต์การตั้งค่า

เรียกใช้โค้ดต่อไปนี้ในตำแหน่งที่คุณต้องการสำหรับไคลเอ็นต์ WhatsApp Business API ดังนี้

mkdir ~/biz; cd ~/biz;

ขั้นตอนที่ 2: เรียกดูไฟล์การกำหนดค่าไคลเอ็นต์ WhatsApp Business API

โคลนไฟล์การกำหนดค่าทั้งหมดจากไดเรกทอรีการตั้งค่า/kubernetes ของคลัง GitHub WhatsApp-Business-API-Setup-Scripts ไปไว้ในไดเรกทอรี ~/biz ที่คุณสร้างขึ้นในขั้นตอนที่ 1

ขั้นตอนที่ 3: สร้างฐานข้อมูล MySQL

สร้างฐานข้อมูล MySQL ที่มีไดรฟ์ข้อมูลคงที่โดยใช้คำสั่งต่อไปนี้

kubectl apply -f mysql.yaml

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

persistentvolume/mysql-volume created
persistentvolumeclaim/mysql-volume-claim created
service/mysql-service created
deployment.extensions/mysql-deployment created

คุณสามารถตรวจสอบยืนยันได้ว่า MySQL กำลังทำงานอยู่โดยใช้คำสั่งต่อไปนี้

kubectl get pods

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

NAME                               READY   STATUS    RESTARTS   AGE
mysql-deployment-5d4f898-xtkpj     1/1     Running   0          53m

ขั้นตอนที่ 4: สร้างข้อมูลลับ whatsapp-config

สร้างข้อมูลลับ whatsapp-config จากไฟล์ db.env ด้วยคำสั่งต่อไปนี้

kubectl create secret generic whatsapp-config --from-env-file=db.env

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

secret/whatsapp-config created

คุณสามารถตรวจสอบได้ว่ามีการสร้างข้อมูลลับหรือไม่โดยใช้คำสั่งต่อไปนี้

kubectl get secrets

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

NAME                TYPE        DATA        AGE
whatsapp-config     Opaque      5           52s

คุณสามารถตรวจสอบรายละเอียดข้อมูลลับได้โดยใช้คำสั่งต่อไปนี้

kubectl describe secrets/whatsapp-config

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

Name:         whatsapp-config
Namespace:    default
Labels:       <none>
Annotations:  <none>

Type:  Opaque

Data
====
wa-db-password:  8 bytes
wa-db-port:      4 bytes
wa-db-username:  4 bytes
wa-db-engine:    5 bytes
wa-db-hostname:  13 bytes

ขั้นตอนที่ 5: สร้างไดร์ฟข้อมูลสื่อในเครื่อง

ในการส่งหรือรับข้อความสื่อ ไคลเอ็นต์ WhatsApp Business API กำหนดให้ต้องมีไดรฟ์ข้อมูลคงที่ซึ่งแชร์ร่วมกันระหว่างการติดตั้งใช้งาน Webapp, Master และ Coreapp สร้าง PersistentVolume และ PersistentVolumeClaim สำหรับข้อความสื่อโดยเรียกใช้คำสั่งต่อไปนี้

kubectl apply -f volume.yaml

คำสั่งนี้จะจัดทำไดรฟ์ข้อมูลสื่อในเครื่องขึ้นและติดตั้งไว้ที่ /usr/local/wamedia ภายในคลัสเตอร์ Kubernetes โดยมีขนาด 1 GB และจะส่งคำขอใช้งานพื้นที่จริงในเครื่องอีก 1 GB ผ่าน PersistentVolumeClaim เพื่อใช้ในการพัฒนาและทดสอบ

คุณสามารถตรวจสอบสถานะของไดรฟ์ข้อมูลสื่อและการขอรับไดรฟ์ข้อมูลสื่อได้ผ่านคำสั่งต่อไปนี้

kubectl get pv media-volume

kubectl get pvc media-volume-claim

ขั้นตอนที่ 6: ตั้งค่าตัวแปรสภาพแวดล้อม $VERSION

แทนที่ตัวแปรสภาพแวดล้อม $VERSION ด้วยไคลเอ็นต์ WhatsApp Business API เวอร์ชั่นล่าสุด (เช่น 2.23.4) ในส่วน containers ของไฟล์ webapp.yaml, master.yaml และ coreapp.yaml

webapp.yaml

containers:
- name: whatsapp-web
  image: docker.whatsapp.biz/web:v2.23.4

master.yaml

containers:
- name: whatsapp-master
  image: docker.whatsapp.biz/coreapp:v2.23.4

coreapp.yaml

containers:
- name: whatsapp-coreapp
  image: docker.whatsapp.biz/coreapp:v2.23.4

ขั้นตอนที่ 7: ติดตั้งใช้งานคอนเทนเนอร์

ติดตั้งใช้งานคอนเทนเนอร์ Webapp, Master และ Coreapp โดยเรียกใช้คำสั่งต่อไปนี้

Webapp

kubectl apply -f webapp.yaml

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

horizontalpodautoscaler.autoscaling/whatsapp-web-autoscaler created
service/whatsapp-web-service created
deployment.apps/whatsapp-web-deployment created

Master

kubectl apply -f master.yaml

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

horizontalpodautoscaler.autoscaling/whatsapp-master-autoscaler created
service/whatsapp-master-service created
deployment.apps/whatsapp-master-deployment created

Coreapp

kubectl apply -f coreapp.yaml

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

horizontalpodautoscaler.autoscaling/whatsapp-coreapp-autoscaler created
service/whatsapp-coreapp-service created
deployment.apps/whatsapp-coreapp-deployment created

คุณสามารถตรวจสอบได้ว่าพ็อด Master/Coreapp/Webapp กำลังทำงานอยู่หรือไม่โดยใช้คำสั่งต่อไปนี้

kubectl get pods

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

NAME                                           READY   STATUS    RESTARTS   AGE
mysql-deployment-5d4f898-xtkpj                 1/1     Running   0          53m
whatsapp-coreapp-deployment-78c4d987b8-4cpz4   1/1     Running   0          2s
whatsapp-coreapp-deployment-78c4d987b8-l5qjj   1/1     Running   0          2s
whatsapp-master-deployment-8598d7bf6b-56fvn    1/1     Running   7          15m
whatsapp-master-deployment-8598d7bf6b-9r6lc    1/1     Running   7          16m
whatsapp-web-deployment-cd4c5785c-9vn6l        1/1     Running   0          16m
whatsapp-web-deployment-cd4c5785c-mn7kf        1/1     Running   0          16m

การกำหนดค่าเริ่มต้นจะสร้างพ็อด Master, พ็อด Coreapp และพ็อด Webapp ขึ้นมารายการละ 2 พอด แต่ละพ็อดจะส่งคำขอใช้งานหน่วยความจำ 128MB และ 0.15 CPU ดำเนินการเปลี่ยนแปลงต่อ spec.template.spec.containers.resources ในไฟล์ YAML ที่สอดคล้องกันหากคุณต้องเปลี่ยนแปลงการตั้งค่าการใช้งานทรัพยากร

ขั้นตอนที่ 8: ค้นหาพอร์ตคอนเทนเนอร์ Webapp

คุณสามารถดาวน์โหลดและกำหนดค่าคอลเลกชั่น Postman ของเราเพื่อโต้ตอบกับ WhatsApp Business API ได้ หากคุณไม่ต้องการใช้บรรทัดคำสั่ง

เมื่อคุณเรียกใช้คลัสเตอร์ Kubernetes โดยใช้ Minikube คุณต้องตรวจสอบ IP คลัสเตอร์ Kubernetes โดยเรียกใช้คำสั่งต่อไปนี้

minikube ip

ค้นหาว่าพอร์ตใดที่คอนเทนเนอร์ Webapp กำลังทำงานอยู่โดยใช้คำสั่งต่อไปนี้

kubectl get services/whatsapp-web-service

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

NAME                   TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
whatsapp-web-service   NodePort   10.101.114.46   <none>        443:32477/TCP   25m

ในตัวอย่างนี้ พอร์ต 443 ภายในคอนเทนเนอร์ Webapp จะโยงเข้ากับพอร์ต 32477 บนคลัสเตอร์ Kubernetes

คุณต้องใช้ https://your-minikube-cluster-ip:your-webapp-service-targetport (เช่น https://10.101.114.46:32477) เป็น URL ระดับรากของ API เมื่อใช้คอลเลกชั่น Postman

ขั้นตอนที่ 9: เรียกดูโทเค็นการยืนยันตัวตน

เข้าสู่ระบบไคลเอ็นต์ WhatsApp Business API เพื่อดึงโทเค็นการยืนยันตัวตน Bearer เพื่อเรียก API

ขั้นตอนที่ 10: ดำเนินการตรวจสอบระบบ

คุณสามารถดำเนินการตรวจสอบระบบกับไคลเอ็นต์ WhatsApp Business API โดยใช้การเรียก API ไปยังโหนด health เพื่อตรวจสอบยืนยันว่าพ็อดทั้งหมดทำงานอย่างถูกต้อง

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

'health': {
    '172.17.0.11:whatsapp-coreapp-deployment-78c4d987b8-l5qjj': {
        'errors': [
            {
                'code': 1011,
                'title': 'Service not ready',
                'details': 'Wacore is not instantiated. Please check wacore log for details.'
            }
        ]
    },
    '172.17.0.6:whatsapp-master-deployment-8598d7bf6b-56fvn': {
        'errors': [
            {
                'code': 1011,
                'title': 'Service not ready',
                'details': 'Wacore is not instantiated. Please check wacore log for details.'
            }
        ]
    },
    '172.17.0.7:whatsapp-coreapp-deployment-78c4d987b8-4cpz4': {
        'errors': [
            {
                'code': 1011,
                'title': 'Service not ready',
                'details': 'Wacore is not instantiated. Please check wacore log for details.'
            }
        ]
    },
    '172.17.0.8:whatsapp-master-deployment-8598d7bf6b-9r6lc': {
        'gateway_status': 'unregistered',
        'role': 'primary_master'
    }
},
'meta': {
    'version': 'v2.23.4',
    'api_status': 'stable'
}

การตอบกลับจะแสดง gateway_status เป็น unregistered ในส่วน gateway_status สำหรับคอนเทนเนอร์ Master หลัก เนื่องจากไคลเอ็นต์ WhatsApp Business API ยังไม่ได้รับการลงทะเบียน

ขั้นตอนที่ 11: ลงทะเบียนไคลเอ็นต์ WhatsApp Business API

คุณสามารถลงทะเบียนไคลเอ็นต์ WhatsApp Business API ของคุณโดยใช้การเรียก API ไปยังโหนด account

ขั้นตอนที่ 12: ดำเนินการตรวจสอบระบบครั้งที่สอง

ดำเนินการตรวจสอบไคลเอ็นต์ WhatsApp Business API อีกครั้งหนึ่งโดยใช้การเรียก API ไปยังโหนด health หลังจากลงทะเบียนเสร็จสิ้น และตรวจสอบให้แน่ใจว่าหนึ่งในคอนเทนเนอร์ Coreapp มี gateway_status เป็น connected

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

'health': {
    '172.17.0.11:whatsapp-coreapp-deployment-78c4d987b8-l5qjj': {
        'gateway_status': 'disconnected',
        'role': 'coreapp'
    },
    '172.17.0.6:whatsapp-master-deployment-8598d7bf6b-56fvn': {
        'gateway_status': 'disconnected',
        'role': 'secondary_master'
    },
    '172.17.0.7:whatsapp-coreapp-deployment-78c4d987b8-4cpz4': {
        'gateway_status': 'connected',
        'role': 'coreapp'
    },
    '172.17.0.8:whatsapp-master-deployment-8598d7bf6b-9r6lc': {
        'gateway_status': 'disconnected',
        'role': 'primary_master'
    }
},
'meta': {
    'version': 'v2.23.4',
    'api_status': 'stable'
}

หมายเหตุ: ในโหมดความพร้อมใช้งานระดับสูง จะมีเพียง Coreapp เดียวเท่านั้น (ในตัวอย่างนี้คือ whatsapp-coreapp-deployment-78c4d987b8-4cpz4) ที่จะเชื่อมต่อกับเซิร์ฟเวอร์ WhatsApp โดยโหนดอื่นๆ ทั้งหมด รวมถึง Master หลัก จะมี gateway_status เป็น disconnected หาก whatsapp-coreapp-deployment-78c4d987b8-4cpz4 ขัดข้อง whatsapp-coreapp-deployment-78c4d987b8-l5qjj จะเข้ามาแทนที่และเชื่อมต่อกับเซิร์ฟเวอร์ WhatsApp เพื่อรักษาความพร้อมใช้งานระดับสูงเอาไว้

ตอนนี้ คุณได้ตั้งค่าไคลเอ็นต์ WhatsApp Business API ในโหมดความพร้อมใช้งานระดับสูงแล้ว ในโหมดนี้ จะมี Coreapp เดียวเท่านั้นที่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ WhatsApp เพื่อส่งข้อความในช่วงเวลาที่กำหนดได้ หากคุณต้องการส่งข้อความพร้อมๆ กันจากหลาย Coreapp เพื่อเพิ่มปริมาณข้อความ ให้ทำตามขั้นตอนในส่วนการตั้งค่าคลัสเตอร์การเชื่อมต่อหลายจุดที่มีความพร้อมใช้งานระดับสูงด้านล่างนี้

การตั้งค่าคลัสเตอร์การเชื่อมต่อหลายจุดที่มีความพร้อมใช้งานระดับสูง

ขั้นตอนที่ 1: ตั้งค่าชาร์ดสองรายการ

ใช้ตำแหน่งข้อมูลของชาร์ดเพื่อตั้งค่าชาร์ด 2 รายการ คุณจะเห็นการตอบกลับ HTTP ที่มีสถานะเป็น 201 Created

ขั้นตอนที่ 2: ดำเนินการตรวจสอบระบบ

คุณสามารถดำเนินการตรวจสอบระบบกับไคลเอ็นต์ WhatsApp Business API โดยใช้การเรียก API ไปยังโหนด health เพื่อตรวจสอบยืนยันว่าพ็อดทั้งหมดทำงานอย่างถูกต้อง

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

'health': {
    '172.17.0.11:whatsapp-coreapp-deployment-78c4d987b8-l5qjj': {
        'gateway_status': 'connected',
        'role': 'coreapp'
    },
    '172.17.0.6:whatsapp-master-deployment-8598d7bf6b-56fvn': {
        'gateway_status': 'disconnected',
        'role': 'secondary_master'
    },
    '172.17.0.7:whatsapp-coreapp-deployment-78c4d987b8-4cpz4': {
        'gateway_status': 'connected',
        'role': 'coreapp'
    },
    '172.17.0.8:whatsapp-master-deployment-8598d7bf6b-9r6lc': {
        'gateway_status': 'connected',
        'role': 'primary_master'
    }
},
'meta': {
    'version': 'v2.23.4',
    'api_status': 'stable'
}

หมายเหตุ: ในโหมดการเชื่อมต่อหลายจุดที่มี 2 ชาร์ด จะมี Coreapp 2 รายการ (ในตัวอย่างนี้คือ whatsapp-coreapp-deployment-78c4d987b8-l5qjj และ whatsapp-coreapp-deployment-78c4d987b8-4cpz4) ที่จะเชื่อมต่อเข้ากับเซิร์ฟเวอร์ WhatsApp ส่วน Master หลัก (ในตัวอย่างนี้คือ whatsapp-master-deployment-8598d7bf6b-9r6lc) ก็จะเชื่อมต่อกับเซิร์ฟเวอร์ของ WhatsApp ด้วยเช่นกัน

ขั้นตอนที่ 3: เริ่มการทำงานของ Coreapp ที่สามเพื่อรักษาความพร้อมใช้งานระดับสูงเอาไว้

ในตัวอย่างนี้ คุณมีคอนเทนเนอร์ Coreapp 2 รายการ และปริมาณข้อความถูกแบ่งออกให้กับทั้งสองคอนเทนเนอร์ อย่างไรก็ตาม หากมีคอนเทนเนอร์ Coreapp รายการใดรายการหนึ่งหยุดทำงาน การส่งข้อความของคุณครึ่งหนึ่งจะล้มเหลว หากต้องการรักษาความพร้อมใช้งานระดับสูงในการตั้งค่าการเชื่อมต่อหลายจุดใหม่นี้เอาไว้ คุณสามารถเริ่มการทำงานของ Coreapp ที่สามได้เพื่อรับมือกรณีที่มี Coreapp ล้มเหลวไป 1 รายการ ซึ่งจะคล้ายคลึงกับผังที่แสดงในบทนำการเชื่อมต่อหลายจุด

หากต้องการเริ่มต้นการทำงานของคอนเทนเนอร์ Coreapp ที่สาม ให้เปลี่ยนจำนวน replicas เป็น 3 ในไฟล์ coreapp.yaml ดังนี้

spec:
  replicas: 3

จากนั้น ให้ติดตั้งใช้งาน Coreapp ใหม่อีกครั้งโดยเรียกใช้คำสั่งต่อไปนี้

kubectl apply -f coreapp.yaml

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

horizontalpodautoscaler.autoscaling/whatsapp-coreapp-autoscaler unchanged
service/whatsapp-coreapp-service unchanged
deployment.apps/whatsapp-coreapp-deployment configured

ขั้นตอนที่ 4: ดำเนินการตรวจสอบระบบครั้งที่สอง

ดำเนินการตรวจสอบระบบอีกครั้งเพื่อตรวจสอบยืนยันว่าโหนดทั้งหมดทำงานอย่างถูกต้องโดยใช้การเรียก API ไปยังโหนด health เพื่อตรวจสอบยืนยันว่าพ็อดทั้งหมดทำงานอย่างถูกต้อง

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

'health': {
    '172.17.0.10:whatsapp-coreapp-deployment-78c4d987b8-hwqp6': {
        'gateway_status': 'disconnected',
        'role': 'coreapp'
    },
    '172.17.0.11:whatsapp-coreapp-deployment-78c4d987b8-l5qjj': {
        'gateway_status': 'connected',
        'role': 'coreapp'
    },
    '172.17.0.6:whatsapp-master-deployment-8598d7bf6b-56fvn': {
        'gateway_status': 'disconnected',
        'role': 'secondary_master'
    },
    '172.17.0.7:whatsapp-coreapp-deployment-78c4d987b8-4cpz4': {
        'gateway_status': 'connected',
        'role': 'coreapp'
    },
    '172.17.0.8:whatsapp-master-deployment-8598d7bf6b-9r6lc': {
        'gateway_status': 'connected',
        'role': 'primary_master'
    }
},
'meta': {
    'version': 'v2.23.4',
    'api_status': 'stable'
}

ตอนนี้คอนเทนเนอร์ whatsapp-coreapp-deployment-78c4d987b8-hwqp6 ใหม่ทำหน้าที่เป็นคอนเทนเนอร์สำรอง และจะยังไม่เชื่อมต่อกับเซิร์ฟเวอร์ WhatsApp ในขณะนี้ ถ้า whatsapp-coreapp-deployment-78c4d987b8-l5qjj หรือ whatsapp-coreapp-deployment-78c4d987b8-4cpz4 หยุดทำงาน whatsapp-coreapp-deployment-78c4d987b8-hwqp6` จะเชื่อมต่อกับเซิร์ฟเวอร์ WhatsApp เพื่อรักษาจำนวนชาร์ดในภาพรวมให้เป็น 2 รายการ

การอัพเกรดไคลเอ็นต์ WhatsApp Business API

ระบบจะมีช่วงเวลาหยุดทำงานในระหว่างกระบวนการอัพเกรด

ขอแนะนำเป็นอย่างยิ่งให้สำรองข้อมูลการตั้งค่าแอพพลิเคชั่นปัจจุบันของคุณก่อนอัพเกรด เพื่อให้มั่นใจว่าคุณจะกลับมาทำงานได้ตามปกติอย่างรวดเร็ว โปรดปฏิบัติตามเอกสารประกอบเกี่ยวกับการสำรองและกู้คืนข้อมูล

เราขอแนะนำให้ทำการอัพเกรดในช่วงเวลาที่มีปริมาณงานน้อยที่สุด

ขั้นตอนที่ 1: เปลี่ยนตัวแปรสภาพแวดล้อมการทำงาน $VERSION เป็นเวอร์ชั่นใหม่

อัพเดตตัวแปรสภาพแวดล้อมการทำงาน $VERSION ให้เป็นเวอร์ชั่นที่คุณต้องการอัพเกรด (เช่น 2.23.5) ในส่วน containers ของไฟล์ webapp.yaml, master.yaml และ coreapp.yaml

webapp.yaml

containers:
- name: whatsapp-web
  image: docker.whatsapp.biz/web:v2.23.5

master.yaml

containers:
- name: whatsapp-master
  image: docker.whatsapp.biz/coreapp:v2.23.5

coreapp.yaml

containers:
- name: whatsapp-coreapp
  image: docker.whatsapp.biz/coreapp:v2.23.5

ขั้นตอนที่ 2: อัพเกรดคอนเทนเนอร์

อัพเกรดคอนเทนเนอร์ Webapp, Master และ Coreapp และติดตามสถานะการเปิดตัว

Webapp

kubectl apply -f webapp.yaml

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

kubectl rollout status deployments/whatsapp-web-deployment

Master

kubectl apply -f master.yaml

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

kubectl rollout status deployments/whatsapp-master-deployment

Coreapp

kubectl apply -f coreapp.yaml

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

kubectl rollout status deployments/whatsapp-coreapp-deployment

การถอนการติดตั้งไคลเอ็นต์ WhatsApp Business API

ขั้นตอนที่ 1: ลบการติดตั้งใช้งาน

ลบการติดตั้งใช้งานโดยใช้คำสั่งต่อไปนี้

kubectl delete -f webapp.yaml
kubectl delete -f master.yaml
kubectl delete -f coreapp.yaml
kubectl delete -f mysql.yaml

ขั้นตอนที่ 2: ลบไดรฟ์ข้อมูล

ลบไดรฟ์ข้อมูลโดยใช้คำสั่งต่อไปนี้

kubectl delete -f volume.yaml

ขั้นตอนที่ 3: ลบข้อมูลลับ

ลบข้อมูลลับโดยใช้คำสั่งต่อไปนี้

kubectl delete secrets/whatsapp-config

การแก้ไขข้อผิดพลาด

หากต้องการตรวจสอบว่าพ็อดทั้งหมดกำลังทำงานอยู่หรือไม่ ให้ใช้คำสั่งต่อไปนี้

kubectl get pods

เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้

NAME                                           READY   STATUS    RESTARTS   AGE
mysql-deployment-5d4f898-xtkpj                 1/1     Running   0          1h
whatsapp-coreapp-deployment-78c4d987b8-4cpz4   1/1     Running   2          1h
whatsapp-coreapp-deployment-78c4d987b8-hwqp6   1/1     Running   0          24m
whatsapp-coreapp-deployment-78c4d987b8-l5qjj   1/1     Running   2          1h
whatsapp-master-deployment-8598d7bf6b-56fvn    1/1     Running   9          1h
whatsapp-master-deployment-8598d7bf6b-9r6lc    1/1     Running   8          1h
whatsapp-web-deployment-cd4c5785c-f99n4        1/1     Running   0          50m
whatsapp-web-deployment-cd4c5785c-s5phx        1/1     Running   0          50m

หากมีพ็อดใดไม่พร้อมทำงาน (หรือแสดงเป็น 0/1 ในคอลัมน์ READY) คุณสามารถเรียกดูบันทึกข้อมูลของพ็อดดังกล่าวได้โดยใช้คำสั่ง kubectl logs พร้อมระบุชื่อพอด

ตัวอย่าง:

kubectl logs whatsapp-coreapp-deployment-78c4d987b8-4cpz4 > whatsapp-coreapp-deployment-78c4d987b8-4cpz4.txt

คุณจะพบบันทึกข้อมูลได้ในไฟล์ whatsapp-coreapp-deployment-78c4d987b8-4cpz4.txt ในไดเรกทอรีล่าสุด

หากต้องการรวบรวมบันทึกข้อมูลสำหรับบริการที่ติดตั้งใช้งานใดโดยเฉพาะเจาะจง เช่น Webapp ให้เรียกใช้คำสั่ง kubectl logs พร้อมระบุชื่อบริการ

ตัวอย่าง:

kubectl logs deployments/whatsapp-web-deployment > whatsapp-web-deployment.txt

คุณจะพบบันทึกข้อมูลได้ในไฟล์ whatsapp-web-deployment.txt ในไดเรกทอรีปัจจุบัน


ซอฟต์แวร์นี้ใช้โค้ดของ FFmpeg ซึ่งได้รับสิทธิ์ใช้งานภายใต้ LGPL เวอร์ชั่น 2.1 และคุณสามารถดาวน์โหลดซอร์สโค้ดได้ที่นี่