5. ตรวจสอบหลังติดตั้ง
Last updated: 2026-10-02
ทำหน้านี้หลัง workloads พร้อมและตั้ง DNS แล้ว. HTTPS ต้องมี origin certificate ที่ใช้งานได้ตามหน้า 4. ตรวจ Admin และเปลี่ยน seed password ก่อนตรวจเครื่องมือดูแล
5.1 เข้า Admin ครั้งแรก
API สร้างบัญชี admin ระหว่าง database migration และเขียน seed password ลง startup log. อ่าน log ใน terminal ส่วนตัวเท่านั้น:
export KUBECONFIG="$HOME/k3s.yaml"
kubectl logs -n please-payment-production \
deploy/please-payment-prod-onix-api --all-containers=true \
| grep 'MigrateUsers : Added'
ใช้ชื่อผู้ใช้ admin และ seed password ที่ https://admin.example.com/login แล้วเปลี่ยนรหัสผ่านทันที. อย่าเก็บรหัสผ่านใน Git, .env, ticket หรือ screenshot.
หากไม่พบข้อความ ให้ตรวจ pod และ log ล่าสุดใน terminal ส่วนตัว:
kubectl get pods -n please-payment-production
kubectl logs -n please-payment-production deploy/please-payment-prod-onix-api \
--all-containers=true --tail=200
5.2 เข้า Argo CD
เครื่องมือดูแลระบบทุกตัวใน /tools ต้องเข้าผ่าน https://<ip-address> โดยแทน <ip-address> ด้วย Static public IPv4 ของ VM เช่น https://203.0.113.10/tools/argocd
เปิด https://<ip-address>/tools/argocd บัญชีเริ่มต้นคือ admin. รันคำสั่งนี้ใน terminal ส่วนตัวเพื่ออ่าน initial password:
kubectl -n argocd get secret argocd-initial-admin-secret \
-o jsonpath='{.data.password}' | base64 -d; echo
เก็บรหัสผ่านใน password manager และเปลี่ยนตามนโยบาย. ห้าม commit หรือ screenshot รหัสผ่าน
ตรวจว่า applications หลักเป็น Synced และ Healthy:
kubectl get applications -n argocd
5.3 ดู CPU และ memory
เปิด https://<ip-address>/tools/grafana-k8s เพื่อดู metrics ของ node และ pods. หากต้องใช้ credentials เริ่มต้น ให้อ่านใน terminal ส่วนตัวเท่านั้น:
kubectl get secret initial-secret -n default \
-o jsonpath='{.data.GRAFANA_USER}' | base64 -d; echo
kubectl get secret initial-secret -n default \
-o jsonpath='{.data.GRAFANA_PASSWORD}' | base64 -d; echo
ตรวจว่า Grafana และ metrics components ทำงาน:
kubectl get pods -n monitoring
5.4 ดู logs
เปิด Grafana Loki ที่ https://<ip-address>/tools/grafana-loki เพื่อค้นหาและดู log. หากยังเข้าไม่ได้ ให้ตรวจ pod และ service ใน namespace loki-log ก่อน
kubectl get pods -n loki-log
5.5 ตรวจสุขภาพระบบ
ใช้ kubeconfig ที่ script 00 คัดลอกไว้ใน home directory:
export KUBECONFIG="$HOME/k3s.yaml"
kubectl get nodes -o wide
kubectl get applications -n argocd
kubectl get pods -A
kubectl get pvc -A
kubectl get ingress,certificate -A
findmnt -T /data
df -hT /data
ผลที่ควรได้หลังแก้ส่วนที่ template ยังขาด:
- node เป็น
Ready - Applications หลักเป็น
SyncedและHealthy - pods สำคัญอยู่ใน
RunningหรือCompletedตามชนิดงาน - PVC เป็น
Bound - certificate ทุก hostname เป็น
Ready=Trueหลังติดตั้ง certificate manifests ที่รองรับแล้ว /dataใช้ filesystem และพื้นที่ตามแผน
5.6 ตรวจ scheduled jobs
kubectl get cronjobs,jobs -n please-payment-production
kubectl describe cronjob payment-cleanup -n please-payment-production
payment-cleanup ต้องมี API key ที่ backend อนุมัติสำหรับงานนี้. ห้ามสร้างหรือฝัง API key ลง Git, manifest หรือ screenshot
หาก job แจ้งว่าไม่พบ API key ชื่อ payment-cleanup ให้ผู้ดูแลที่ได้รับสิทธิ์เปิด Administrator → API Keys แล้วตรวจหรือสร้าง key ชื่อนี้ให้มีสถานะ Active และกำหนดสิทธิ์เท่าที่จำเป็น เก็บค่า key ไว้ใน password manager เท่านั้น; อย่าใส่ใน .env หรือ manifest
ห้ามนำค่า secret หรือ raw log ที่มีข้อมูลลับไปเก็บใน Git, ticket, chat หรือ screenshot
5.7 Discord alerts
template มี discord-alm application และ Alertmanager routing config. การส่งจริงขึ้นกับ DISCORD_WEBHOOK ใน initial secret; หลังตั้งค่าแล้วให้ทดสอบการแจ้งเตือนตามนโยบายของระบบ
kubectl get pods -n discord-alm
5.8 Checklist ตรวจสอบหลังติดตั้ง
- ⬜ เข้า Admin ได้และเปลี่ยน seed password แล้ว
- ⬜ เข้า Argo CD ได้และเก็บ credentials อย่างปลอดภัย
- ⬜ Applications หลักเป็น
Synced/Healthy - ⬜ Grafana Kubernetes และ Grafana Loki เปิดได้
- ⬜ ตรวจ certificate ของทุก hostname แล้ว
- ⬜ ตรวจ
payment-cleanupและ scheduled jobs แล้ว - ⬜ ตรวจ pod ของ
discord-almและทดสอบการส่ง alert แล้ว - ⬜ จำกัด permission
.envบน VM และไม่ commit ไฟล์