Kubernetes

  • Kafka รองรับ KRaft mode (Kafka Raft) ตั้งแต่ version 3.3+ ทำให้ไม่ต้องใช้ Zookeeper เหมือนแต่ก่อน สิ่งที่แตกต่างคือ ตัวอย่างนี้เราจะ setup Kafka จำนวน 3 replicas เพื่อใช้งานสำหรับ prouction ด้วยมี configuration ดังนี้ ผลลัพธ์จากการ run script ทดสอบการใช้งานตามตัวอย่าง รายการ access url kafka (3 brokers) 10.55.39.62:9092 Schema Registry (2 replicas) Internal schema-registry:8081 Control Center http://10.55.39.63:9021 เข้าหน้าจอ Control Center UI, http://10.55.39.63:9021 ทดสอบใช้งานผ่าน app ที่เขียนด้วย react โดยดูตัวอย่าง code…

    Read more

  • โดยหลักๆ แล้วจะมีวิธีการ integrate อยู่สองแบบคือ ตัวอย่างนี้จะใช้วิธีแรกคือ Vault Agent Injector ที่เราได้ทำการ setup แล้วใน Install Hashicorp Vault to Kubernetes และใช้ตัวอย่างของ application testapp-cd โดยที่ branch main จะใช้ password จาก secret เราจะเปลี่ยนให้เรียก password จาก vault ซึ่งต้องเพิ่ม annotation ตามตัวอย่างใน branch dev testapp-cd เริ่มแรกต้องสร้าง service account สำหรับ vault agent เรียกไปยัง vault server กำหนดสิทธิให้กับ service account ด้วย cluster rolebinding เพื่อให้ review token ได้ สร้าง…

    Read more

  • Setup Velero with NUS

    นอกจากจะใช้ s3 storage จาก rook ceph แล้ว Velero ยังสามารถเชื่อไปยัง S3 compatible อื่นๆ ได้ ตัวอย่างนี้จะใช้ Nutanix Unified Storage สำหรับเก็บ file backup ของ velero เริ่มแรกต้องสร้าง Access Keys ตามด้วย Object Store จากนั้นเข้าไปยัง Object Store ที่สร้างขึ้น สร้าง Bucket เพื่อเก็บ file backup ตัวอย่างนี้ได้สร้างไว้แล้วชื่อว่า test เข้าไปที่ test bucket และทำการกำหนดสิทธิ์ให้กับ user ที่จะเข้าใช้ หลังจากเสร็จขั้นตอนการเตรียม S3 Storage แล้วให้สร้าง secret บน Kubernetes ที่เราต้องการจะ Enable Velero…

    Read more

  • COSI Driver for Nutanix

    COSI (Container Object Storage Interface) เป็น driver ที่ช่วย deploy และ config Object Storage ทำหน้าที่เหมือนกับ CSI (Container Storage Interface) เพื่อสร้าง volume ทั้งที่เป็น block และ file storage ให้กับ container หน้าที่ของ COSI จะสร้าง Bucket และ Access/Secret key ให้อัตโนมัติ ทำให้การใช้งาน object storage ทำได้อัตโนมัติผ่าน deployment metadata (yaml) ลดงาน operation ในการจัดการ object storage ให้กับ container application COSI vs CSI Comparison Concept…

    Read more

  • Gateway API in NKP

    Gateway API เป็นมาตรฐานใหม่ที่จะมาทดแทน Ingress Controller แบบเดิมในการ Expose Kubernetes service ในรูปแบบของ http url เนื่องจากความสามารถของ Ingress Controller มีจำกัดเช่นทำได้แค่ map url path ไปยัง service ภายใน kubernetes ไม่รองรับความต้องการใหม่ๆ สำหรับการเข้าถึง modern application เช่น การจัดการ http header, query parameter routing, traffic splitting เป็นต้น รวมถึงรูปแบบ routing อื่นๆ เช่น GRPC, TLS, TCP และ UDP เป็นต้น บทความนี้จะมาลองใช้ Gateway API ที่อยู่ใน NKP เพื่อเปรียบเทียบให้เห็นความสามารถที่มากขึ้น โดยจะใช้ wordpress…

    Read more

  • Nutanix File Storage Class

    วิธีการ config ให้ Nutanix CSI เชื่อมต่อไปยัง File Service (NUS) ทำให้สามารถสร้าง persistent volume บน File Share ได้ ขั้นตอนการสร้าง Storage Class ทำได้ตามตัวอย่างดังนี้ สร้าง secret เพื่อเชื่อมต่อไปยัง Nutanix File server ผ่าน Prism Central ตัวอย่าง secret ที่สร้างจากข้อมูลที่ได้จาก lab สร้าง Storage Class ด้วยข้อมูลดังนี้ ตัวอย่างการสร้าง file storage class ด้วยการใช้ข้อมูลจาก lab deploy workload เพื่อทดสอบสร้าง file volume ทำการเขียนและอ่านไฟล์จาก file volume script สำหรับทดสอบ ข้อควรระวัง CIS…

    Read more

  • Stress Test Kubernetes

    Script สำหรับ stress test kubernetes เพื่อ consume resource ทั้งหมดของ kubernetes

    Read more

  • Install ArgoCD

    ArgoCD เป็น Tool สำหรับทำ GitOps ช่วยติดตั้ง Application Deployment (metadata fie) ที่เป็น yaml file, kustomize หรือ helm package ที่เก็บอยู่ใน Git Repository ไปยัง Kubernetes ปลายทางได้ทั้งแบบ auto deploy และ manual deploy Script สำหรับ install ArgoCD หลังจาก login เข้าหน้าหลักแล้วต้องสร้าง gitrepository สำหรับเชื่อต่อ project และ gitrepository ก่อน เชื่อต่อ kubernetes cluster ที่ต้องการ deploy application ทำการสร้าง application เพื่อให้ ArgoCD ทำการ deploy application ให้อัตโนมัติ…

    Read more

  • External Secrets Operator

    External Secrets Operator เป็น Kubernetes Operator ที่ช่วย Integrate Kubernetes Secret กับ KMS ภายนอกโดย Operator จะทำการ sync credential จาก KMS ภายนอกและทำการ update secret ของ Kubernetes อัตโนมัติ ช่วยให้การจัดการ credential สามารถจัดการแก้ไขจากระบบ KMS ได้จากที่เดียว สำหรับ NKP สามารถ Enable ได้จากหน้า Applications Catalog หลังจาก enable แล้ว เราจะต้องทำให้ Vault trust Kubernetes จากนั้นสร้าง SecretStore เพื่อเป็นสะพานเชื่อมระหว่าง Kubernetes และ Vault หลังจากนั้นสร้าง ExternalSecret เพื่อ Sync Secret…

    Read more

  • ติดตั้ง KMS สำหรับจัดการ credential ใน Kubernetes ด้วย Hashicorp vault ติดตั้ง vault cli สำหรับ ubuntu linux สำหรับ Rocky Linux ติดตั้ง helm cli สำหรับ ubuntu linux สำหรับการติดตั้งนี้จะไม่ enable tls เพื่อให้ง่ายในการทดสอบ โดยจะสร้าง Load balancer สำหรับเข้าถึง vault และมีการสร้าง volume เพื่อเก็บข้อมูลระบบ การติดตั้งจะติดตั้ง vaultในแบบ high availability โดยมีจำนวน vault instance ที่ 3 instance แต่เนื่องจากกระบวนการ initialize ของ pod จะทำพร้อมกันไม่ได้ จึงสร้างขึ้นมาหนึ่งตัวก่อนแล้วค่อย scale เป็น 3…

    Read more