[บันทึกช่วยจำ] ลองเล่น VMware vSphere with Tanzu + NSX ALB (Avi)

Kritsadanshon Sadeewong
9 min readMay 3, 2021

สารบัญ

เมื่อไม่กี่เดือนที่ผ่านทาง VMware ได้มีการอัพเดตตัว vSphere และ vCenter เป็นเวอร์ชั่น 7.0 u2 ซึ่งก็ได้มีการอัพเดตอะไรใหม่ๆ เข้ามาหลายอย่างมากหนึ่งในนั้นก็คือ vSphere with Tanzu รองรับการใช้งาน Avi Network ซึ่งในตอนนี้ก็จะรองรับ 3 ตัวแล้วนั้นก็คือ NSX-T, HAproxy และ NSX ALB (Avi) นั้นเอง

เราทำมาทำความรู้จัก Avi Networks กันเบื้องต้นก่อนดีกว่า Avi Networks นั้นเป็นผู้พัฒนาระบบ Multi-cloud Application Delivery Services ซึ่ง VMware ได้ซื้อเข้ามาร่วมกับทีม VMware NSX ซึ่งใน Service ตัวหนึ่งที่เราจะนำมาใช้งานบน vSphere with Tanzu นั้นก็คือ Software Load Balancer โดยตอนนี้ทาง VMware จะเรียกว่า NSX Advance Load Balancer หรือ ALB นั้นเอง

ในบนความนี้เราจะมาลองใช้งาน ALB แทน HAproxy กันดูว่าจะเป็นยังไงบ้างโดย Environment ในแล็ปก็จะเป็นดังนี้

  1. vSphere 7.0 u2
  2. vCenter 7.0 u2

โดยจะมี Network Diagram ดังรูปต่อไปนี้

  1. Front Network (172.17.37.0/24) ใช้สำหรับ ขา VIP จาก Load Balancer เพื่อให้สามารถเรียกเข้าใช้งาน Service ต่างๆ ได้
  2. Workload Network (172.17.36.0/24) ใช้สำหรับขา Data ของ VMs ที่เป็น Supervisor Cluster แลพ Tanzu Kubernetes Cluster (TKC)
  3. Management Network (192.168.0.0/24) ใช้งานเชื่อมต่อขา Management ทุก Component ไม่ว่าจะเป็น vCenter, vSphere, Avi Controller, Avi Service Engine และ Supervisor Cluster

หลังจากที่ได้เตรียม Network เรียบร้อยแล้วก็ให้ไปเตรียม vCenter ให้เรียบร้อยตามบทความ [บันทึกช่วยจำ] ลองเล่น VMware vSphere with Tanzu + HAProxy ตอนที่ 1 ก่อนโดยจะประกอบไปด้วย

  • ตั้งค่าในส่วนของ Storage
  • เพิ่ม User ให้กับทีม
  • สร้าง Content Content Library

หลังจากนั้นเราก็จะมาเรียม Deploy Avi Controller กัน

ติดตั้ง Avi Controller

ขั้นตอนนี้จะเป็นการติดตั้ง และตั้งค่า Avi Controller แบบเบื้องต้นให้พอใช้งานได้ ซึ่งใน Production อาจจะต้องทำอะไรมากกว่านี้

ขั้นตอนที่ 1 — Download Avi Controller จากเว็บไซต์ https://portal.avipulse.vmware.com

ขั้นตอนที่ 2— ให้คลิ้กขวาที่ Cluster แล้วทำการเลือก Deploy OVF Template

ขั้นตอนที่ 3— ให้เลือก OVF Controller ที่เราได้ทำการ download มาแล้วคลิ้ก Next

ขั้นตอนที่ 4— ตั้งชื่อให้กับ Controllerในที่นี้ใช้ชื่อว่า “TZAVI.lab.local” และเลือก Folder ที่จะให้ VM นี้อยู่แล้วคลิ้ก Next

ขั้นตอนที่ 5— เลือก Cluster หรือ ESXi Host ที่จะให้ VM นี้ทำงานแล้วคลิ้ก Next

ขั้นตอนที่ 6— ระบบจะแสดงแสดงข้อมูลเบื้องต้นของ Controllerให้คลิ้ก Next

ขั้นตอนที่ 7— เลือก Datastore ที่ต้องการให้ VM แล้วคลิ้ก Next

ขั้นตอนที่ 8— เลือก Network สำหรับขา Management แล้วคลิ้ก Next

ขั้นตอนที่ 9— ตั้งค่าในส่วนของ Network ในตัวอย่างตั้งค่าดังต่อไปนี้

  • Management Interface IP Address= 192.168.0.65
  • Management Interface Subnet Mask= 255.255.255.0
  • Management Interface Gateway = 192.168.0.254

ขั้นตอนที่ 10 — ตรวจสอบข้อมูลอีกครั้งถ้ามั่นใจแล้วคลิ้ก Finish เพื่อเริ่ม Deploy แล้วก็รอจน Deploy เสร็จ แล้วก็ทำการ PowerOn ขึ้นมา

ขั้นตอนที่ 11 — เมื่อ Controller ทำการ Power ขึ้นมาเรียบร้อยให้เปิด Web Browser เรียกไปที่ IP ของ Controller ในที่นี้คือ “https://192.168.0.65” เราจะพบหน้าแรกให้ทำการตั้งค่า Password ของ Admin

ขั้นตอนที่ 12 — หลังจากที่ทำการตั้งค่า Passsword ให้กับ Admin เรียบร้อย หน้าจอก็จะมาต่อในส่วนของ System Setting ในตัวอย่างตั้งค่าดังต่อไปนี้

  • Passphrase = VMware1!
  • Confirm Passphrase = VMware1!
  • DNS Passphrase = 192.168.0.10
  • DNS Search Domain = lab.local

ใส่ข้อมูลเสร็จแล้วก็ให้กด Next ไปไปต่อ

ขั้นตอนที่ 13 — ในส่วนนี้หากมี SMTP Server ก็สามารถตั้งค่าได้ ใส่ข้อมูลเสร็จแล้วก็ให้กด Next ไปต่อ

ขั้นตอนที่ 14 — ในส่วนของ Multi-Tenant ไม่ต้องตั้งค่าอะไรเพิ่ม แต่!! ต้องติ้ก Checkbox ขวาล่างจอที่เขียนว่า “Setup Cloud After” ด้วยก่อนที่จะกด Save

ขั้นตอนที่ 15 — หลังจากที่กด Save แล้วหน้าจอจะมาให้เราทำการ Setup Cloud โดยให้เราเลือกโลโก่ VMware แล้วให้กด Next

ขั้นตอนที่ 16 — ใส่ข้อมูลของ vCenter ที่เราเตรียมขึ้นมาให้เรียบร้อย แล้วกด Next ไปก่อน

ขั้นตอนที่ 17 — ในส่วนของ Select a Data Center ให้เลือก Datacenter ที่เราใช้งานโดย Controller จะไปทำการดึงข้อมูลมาจาก vCenter มาแสดง เมื่อทำการเลือกเสร็จแล้วก็ให้กด Next ไปได้เลย

ขั้นตอนที่ 18 — ต่อมาจะเป็นในส่วนของ Network สำหรับ Management ให้กับ Service Engine โดยในตัวอย่างตั้งค่าดังต่อไปนี้

  • Management Network = VM Network
  • Template Service Engine Group = Default Group
  • IP Subnet = 192.168.0.0/24
  • Add Static IP Address Pool = 192.168.0.70–192.168.0.79
  • Default Gateway = 192.168.0.254

ใส่ข้อมูลเสร็จแล้วก็ให้กด Save ได้เลย

ขั้นตอนที่ 19 — รอสักพักตรวจสอบสถานะของ Default-Cloud ที่เราได้ตั้งค่าไปต้องเป็นสีเขียว

ขั้นตอนที่ 20— ต่อมาเราก็จะไปทำการตั้งค่าในส่วนของ Network อื่นๆ โดยให้ไปที่ Infrastructure -> Networks หลังจากในคลิ้กไปที่เครื่องหมายดินสอที่หลัง Workload Network ในบทความนี้จะเป็นชื่อ “DPortGroup-172.17.36.x”

ขั้นตอนที่ 21 — ให้ทำการตั้งในส่วนต่างๆ โดยในตัวอย่างตั้งค่าดังต่อไปนี้

  • IP Subnet = 172.17.36.0/24
  • Static IP Address Pool = 172.17.36.101–172.17.36.200

ใส่ข้อมูลเสร็จแล้วก็ให้กด Save แล้วก็กด Save อีกครั้ง

ขั้นตอนที่ 22 — ให้ทำการตั้งค่าสำหรับ Front Network เหมือนกันในบทความนี้จะเป็นชื่อ “DPortGroup-172.17.37.x” และตั้งค่าต่างๆ โดยในตัวอย่างตั้งค่าดังต่อไปนี้

  • IP Subnet = 172.17.37.0/24
  • Static IP Address Pool = 172.17.37.51–172.17.37.100

ขั้นตอนที่ 23 — ตรวจสอบในส่วนของ Network จะเหมือนดังรูป

ขั้นตอนที่ 24 — ต่อมาให้ไป Template -> Profiles -> IPAM/DNS Profiles

ขั้นตอนที่ 25 — ให้คลิ้กปุ่ม Create -> DNS Profile แล้วทำการตั้งค่าต่างๆ โดยในตัวอย่างตั้งค่าดังต่อไปนี้

  • Name = Default-DNS
  • Domain Name = lab.local

ขั้นตอนที่ 26 — แล้วคลิ้กปุ่ม Create -> IPAM Profile แล้วทำการตั้งค่าต่างๆ โดยในตัวอย่างตั้งค่าดังต่อไปนี้

  • Name = Default-IPAM
  • Type = Avi Vantage IPAM
  • Cloud for Usable Network = Default-Cloud
  • Usable Network = DPortGroup-172.17.37.x — 172.17.37.0/24

ใส่ข้อมูลเสร็จแล้วก็ให้กด Save

ขั้นตอนที่ 27 — กลับไปที่ Infrastructure -> Clouds แล้วให้คลิ้กเครื่องหมายดินสอหลัง Default-Cloud

ขั้นตอนที่ 28 — ให้ทำการตั้งต่าในส่วนของ IPAM Profile และ DNS Profile ตามที่เราได้สร้างขึ้นมาจากขั้นตอนที่ 25 และ 26 แล้วทำการกด Save

ขั้นตอนที่ 29 — ต่อมาให้ไปที่เมนู Administrator -> Settings -> Access Settings แล้วคลิ้กเครื่องหมายดินสอเพื่อทำการแก้ไข

ขั้นตอนที่ 30 — ให้ทำการติ้กที่ Checkbox “Allow Basic Authentication”

ขั้นตอนที่ 31 — ในส่วนของ SSL/TLS Certificate ให้ทำการลบรายการที่มีอยู่ทิ้งทั้งหมด

ขั้นตอนที่ 32 — หลังจากที่ลบ SSL/TLS Certificate ออกไปแล้ว ให้คลิ้ก Dropdown ออกมา แล้วเลือกไปที่ “Create Certificate”

ขั้นตอนที่ 33 — ทำการตั้งค่าในส่วนของ Certificate โดยในตัวอย่างตั้งค่าดังต่อไปนี้

  • Name = tzavi.lab.local
  • Common Name tzavi.lab.local
  • Subject Alternate Name (SAN) = 192.168.0.65

หลังจากนั้นให้ทำการกด Save

ขั้นตอนที่ 34 — ในส่วนของ SSL/TLS Certificate จะปรากฏ Certificate ที่เราได้ทำการสร้างมาในขั้นต่อที่ 33 หลังจากนั้นให้ทำการกด Save

ขั้นตอนที่ 35 — รอสักครู่ระบบจะทำการเปลี่ยน Certificate ใหม่ ให้ทำการ Refresh หน้าจอ Web Browser แล้วไปที่เมนู Templates -> Security -> SSL/TLS Certificates ให้คลิ้กเครื่องหมาย Download ที่ Certificate ที่เราได้สร้างขึ้นมาในขั้นตอนที่ 33

ขั้นตอนที่ 36 — หน้าจอจะปรากฏข้อมูล Certificate ขึ้นมาให้เราทำการ Copy ข้อมูลในส่วนของ Certificate ก็อบไว้ใช้ในขั้นตอนการเปิดใช้งาน Workload บน vCenter

ขั้นตอนที่ 37 — ไปที่เมนู Infrastructure -> Routings -> Static Route ให้คลิ้กปุ่ม Create

ขั้นตอนที่ 37 — ให้กรอกข้อมูลดังต่อไปนี้

  • Gateway Subnet = 172.17.36.0/24
  • Nexy Hop = 172.17.37.254

กรอกเสร็จให้ทำการกด Save

เปิดการใช้งาน Workload Management

ต่อมาเราจะไปทำการเปิดการใช้งาน Workload Management บน vCenter ซึ่งก็จะคล้ายๆ กับ HAproxy

ขั้นตอนที่ 1— ให้ไปที่ Menu -> Workload Management -> Cluster หากพบหน้าลงทะเบียน Free Evaluation ก็ให้ทำการลงทะเบียนให้เรียบร้อย

ขั้นตอนที่ 2— หลังจากลงทะเบียนเรียบร้อยก็จะมาหน้าเริ่มต้นให้คลิ้ก Get Start

ขั้นตอนที่ 3— การเปิดใช้งาน Workload Management ก็จะขั้นตอนให้เราตั้งเราให้เราทำตามขั้นตอนหน้าจอไปเรื่อยๆ เริ่มจากเลือก vCenter Server and Network ในตัวอย่างตั้งค่าดังต่อไปนี้ เสร็จแล้วคลิ้ก Next

  • vCenter Server = TZVCSA.lab.local
  • Network = vCenter Server Network

ขั้นตอนที่ 4— ลือก Cluster ที่เราจะใช้งานเป็น Workload ในตัวอย่างตั้งค่าดังต่อไปนี้ เสร็จแล้วคลิ้ก Next

  • Cluster

ขั้นตอนที่ 5— ให้เลือกขนาดของ Control Plane VMs ในตัวอย่างตั้งค่าดังต่อไปนี้ เสร็จแล้วคลิ้ก Next

  • Tiny

ขั้นตอนที่ 6— เลือก Storage Policy ในตัวอย่างตั้งค่าดังต่อไปนี้ เสร็จแล้วคลิ้ก Next

  • vSAN Default Storage Policy

ขั้นตอนที่ 7— ตั้งค่าในส่วน Load Balancer ในตัวอย่างตั้งค่าดังต่อไปนี้ โดยค่าต่างๆ เอามาจากตอนที่เรา Deploy HAProxy เสร็จแล้วคลิ้ก Next

  • Name = tzavi
  • Type = Avi
  • Avi Controller IP = 192.168.0.65:443
  • User name = admin
  • Password = VMware1!
  • Server Certificate Authority = ** ได้มาจากขั้นตอนที่ 36 ของการติดตั้ง Avi Controller

ขั้นตอนที่ 8— ตั้งค่าในส่วนของ Management Network ในกับ Supervisor Cluster ในตัวอย่างตั้งค่าดังต่อไปนี้ เสร็จแล้วคลิ้ก Next

  • Network = VM network
  • Starting IP Address = 192.168.0.80
  • Subnet Mark = 255.255.255.0
  • Gateway = 192.168.0.254
  • DNS Server = 192.168.0.10
  • DNS Search Domain = lab.local
  • NTP Server = 192.168.0.10

ขั้นตอนที่ 9— ตั้งค่าในส่วนของ Workload Network ให้ทำการคลิ้กที่ Add เพิ่มตั้งค่า Workload Network ในตัวอย่างตั้งค่าดังต่อไปนี้ เสร็จแล้วคลิ้ก Save

  • Name = network-vlan36
  • Port Group = DPortGroup-172.17.36.x
  • Gateway = 172.17.36.254
  • Subnet = 255.255.255.0
  • IP Address Rang = 172.17.36.101–172.17.36.200

ขั้นตอนที่ 10 — ให้ตั้งค่าในส่วนที่เหลือ เสร็จแล้วคลิ้ก Next

  • IP Address for services = 10.96.0.0/24 * ค่าเริ่มต้น
  • DNS Server = 192.168.0.10

ขั้นตอนที่ 11— ให้ตั้งต่า TKG โดยการเลือก Content Library ที่เราได้ตั้งค่าไว้ ในตัวอย่างตั้งค่าดังต่อไปนี้ เสร็จแล้วคลิ้ก Next

  • Add Content Library = tkg-cl

ขั้นตอนที่ 12— ให้ตรวจสอบอีกครั้ง มั่นใจแล้วก็คลิ้ก Finish และรอระบบทำการตั้งค่าสถานะ Config ตอนนี้จะเป็น Configuring ซึ่งขั้นตอนนี้จะใช้เวลาประมาณ 30–60 นาที

ขั้นตอนที่ 13 — เมื่อระบบทำการตั้งค่าเสร็จสิ้นแล้ว สถานะ Config จะเปลี่ยนเป็น Running

ขั้นตอนที่ 14 — ตรวจสอบโดยการเรียกไปที่ https://172.17.37.101 โดยจะต้องขึ้นหน้าจอดังรูป

ขั้นตอนที่ 15 — ตรวจสอบหน้า Controller ไปที่เมนู Applications -> Dashboard

ไปที่เมนู Applications ->Virtual Services

โดยสถานะ Health ต้องไม่เป็นสีแดง (Health จะค่อยๆ เป็นสีจากส้มไปเป็นเขียวเองตามคะแนนที่ระบบตรวจสอบไปเรื่อยๆ)

เปิดการใช้งาน Namespace

ต่อไปจะเป็นการเปิดการใช้งาน Namespace ซึ่งจะมีขึ้นตอนเพิ่มขึ้นจากเวอร์ชั่นก่อนหน้านี้ด้วย

ขั้นตอนที่ 1 — ให้ไปที่ Menu -> Workload Management -> Namespace คลิ้ก Create Namespace

ขั้นตอนที่ 2 — ทำการตั้งค่าต่างๆ ในตัวอย่างตั้งค่าดังต่อไปนี้ เสร็จแล้วคลิ้ก Next

  • Cluster = Cluster
  • Name = devops
  • Network = network-vlan36

ขั้นตอนที่ 3 — ต่อมาตั้งค่า Permission เพื่อกำหนดสิทธิ์ที่จะให้ User ไหนใช้งานได้บ้าง โดยการคลิ้กที่ Add Permission

ขั้นตอนที่ 4 — เลือก User หรือ User Group ที่ต้องการ และกำหนด Role ในตัวอย่างตั้งค่าดังต่อไปนี้ เสร็จแล้วคลิ้ก Add

  • Identity Source = vsphere.local
  • User/Group Serch = devops
  • Role = owner

ขั้นตอนที่ 5 — ต่อมาตั้งค่า Storage เพื่อกำหนดว่า Namespace นี้สามารถใช้งาน Storage Policy อะไรได้บ้าง โดยการคลิ้กที่ Add Storage

ขั้นตอนที่ 6 — เลือก Storage Policy ที่ได้สร้างไว้ ในตัวอย่างตั้งค่าดังต่อไปนี้ เสร็จแล้วคลิ้ก Add

  • kubernetes-gold-storage-policy

ขั้นตอนที่ 7 — ต่อมาให้ไปตั้งค่าในส่วนของ VM Service

ขั้นตอนที่ 8— โดยการคลิ้กที่ Add VM Class

ขั้นตอนที่ 9 — แล้วก็ Add Content Library

ขั้นตอนที่ 10 — แล้วก็รอระบบ Config ให้เรียบร้อยก็จะพร้อมใช้งานสามารถที่จะสร้าง TKC ได้แล้ว

โดยสามารถทำต่อได้ตามบทความ [บันทึกช่วยจำ] ลองเล่น VMware vSphere with Tanzu + HAProxy ตอนจบ

แน่นอนบทความนี้เป็นเพียงแค่การ Config เบื้องต้น ยังไม่เหมาะกับนำไปใช้งานบน Production ควรจะต้องศึกษาเพิ่มเติมในอีกหลายๆ ส่วน

สุดท้ายแล้วหากท่านไหนหลงเข้ามาอ่านแล้วเห็นเป็นประโยชน์ก็สามารถนำไปต่อยอดได้เลย หรือหากมีคำแนะนำดีๆ ก็สามารถบอกกล่าวให้ทราบได้เช่นกันครับ

.

Ref: https://core.vmware.com/resource/vsphere-tanzu-quick-start-guide-v1a

Ref: https://cormachogan.com/2021/03/24/first-step-with-the-nsx-advanced-load-balancer/

Ref: https://docs.vmware.com/en/VMware-vSphere/7.0/vsphere-esxi-vcenter-server-702-vsphere-with-tanzu-guide.pdf

Ref: https://docs.vmware.com/en/VMware-vSphere/7.0/vmware-vsphere-with-tanzu/GUID-376FCCD1-7743-4202-ACCA-56F214B6892F.html

Ref: https://docs.vmware.com/en/VMware-vSphere/7.0/vmware-vsphere-with-tanzu/GUID-6A96C7A6-67ED-4020-8F3A-6394A11BD79D.html

.

--

--

Kritsadanshon Sadeewong

นายช่างระบบระบบคอมพิวเตอร์ ที่ชอบทดลอง และเรียนรู้สิ่งใหม่ไปเรื่อยๆ