0Pricing
DevOps Bootcamp · บทเรียน

การสร้างแม่แบบทรัพยากร Kubernetes Secret

การเรนเดอร์ออบเจ็กต์ Secret โดยไม่เปิดเผยค่า

การสร้างแม่แบบทรัพยากร Kubernetes Secret เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

ชาร์ตสร้าง Secret ได้

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

รูปแบบแมนนิเฟสต์ของ Secret

Kubernetes Secret เป็นเพียงแมนนิเฟสต์ที่มีส่วนข้อมูล ค่าทุกค่าภายใต้ data ต้องเป็นข้อความที่แปลงเป็น Base64 แล้ว

apiVersion: v1
kind: Secret
metadata:
  name: db-credentials

แปลงข้อมูลด้วย b64enc

ภายใต้ data ให้แปลงค่าแต่ละค่า ตัวช่วยของ Sprig อย่าง b64enc จะแปลงสตริงข้อความธรรมดาเป็นรูปแบบ Base64 ที่ Kubernetes ต้องการ

data:
  password: {{ .Values.password | b64enc }}

ใช้ stringData เพื่อข้ามการแปลงรหัส

ควรใช้ stringData เมื่อคุณต้องการหลีกเลี่ยงการเรียกใช้ b64enc ด้วยตนเอง Kubernetes จะแปลงค่าเหล่านั้นให้คุณที่ฝั่งเซิร์ฟเวอร์

stringData:
  password: {{ .Values.password | quote }}

การแปลงรหัสยังไม่ใช่ข้อมูลลับ

โปรดจำไว้ว่าค่าที่สร้างออกมาในแมนนิเฟสต์เป็นเพียงค่าที่แปลงรหัสแล้ว ผู้ใดก็ตามที่อ่านค่ากลับมาได้ก็สามารถถอดรหัสได้ทันที

อย่าพิมพ์ค่าใน NOTES

การรั่วไหลที่พบได้บ่อยคือการแสดงค่าใน NOTES.txt ให้แสดงวิธีดึงค่าแทน เพื่อไม่ให้ข้อความธรรมดาปรากฏในผลลัพธ์ของคำสั่ง

นำ Secret ที่มีอยู่แล้วกลับมาใช้

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

{{- if not .Values.existingSecret }}
kind: Secret
{{- end }}

require ค่าที่จำเป็น

เมื่อข้อมูลลับเป็นสิ่งที่จำเป็นจริง ๆ ฟังก์ชัน required จะหยุดการสร้างผลลัพธ์พร้อมแสดงข้อความที่ชัดเจนหากไม่มีค่า

password: {{ required "password is required" .Values.password | b64enc }}

เมานต์ อย่าฝังค่าไว้โดยตรง

ให้พ็อดอ่าน Secret ผ่าน secretKeyRef หรือโวลุมที่เมานต์ไว้ แทนการฝังค่าโดยตรงลงในตัวแปรสภาพแวดล้อมของคอนเทนเนอร์

valueFrom:
  secretKeyRef:
    name: db-credentials
    key: password

เพิ่มแอตทริบิวต์เพื่อการหมุนเวียน

หากต้องการเริ่มพ็อดใหม่เมื่อ Secret เปลี่ยน ให้เพิ่มแอตทริบิวต์ checksum ลงในการดีพลอย เพื่อให้ค่าใหม่กระตุ้นการเริ่มต้นใหม่

checksum/secret: {{ include (print $.Template.BasePath "/secret.yaml") . | sha256sum }}

ผสานแนวทางเข้าด้วยกัน

ชาร์ตที่แข็งแกร่งจะผสานแนวคิดต่าง ๆ เข้าด้วยกัน ได้แก่ เลือกใช้ Secret ที่มีอยู่แล้วหรือ Secret จากภายนอก แปลงรหัสเฉพาะเมื่อจำเป็น และไม่แสดงค่าซ้ำออกมา

ตรวจสอบอย่างรวดเร็ว

คุณจะให้ Kubernetes แปลงค่าเป็น Base64 ให้ได้อย่างไร

ทบทวน

คุณได้เรียนรู้วิธีสร้างเทมเพลต Secret อย่างปลอดภัย ได้แก่ แปลงค่าด้วย b64enc หรือ stringData เลือกใช้ Secret ที่มีอยู่แล้ว และไม่แสดงค่าออกมาเลย 🎉

คำถามที่พบบ่อย

บทเรียน “การสร้างแม่แบบทรัพยากร Kubernetes Secret” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การสร้างแม่แบบทรัพยากร Kubernetes Secret” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสร้างแม่แบบทรัพยากร Kubernetes Secret”

การเรนเดอร์ออบเจ็กต์ Secret โดยไม่เปิดเผยค่า คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การสร้างแม่แบบทรัพยากร Kubernetes Secret” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เหตุใดจึงไม่ควรเก็บ Secrets ไว้ใน values.yaml
  2. การเข้ารหัสค่าด้วย helm-secrets และ SOPS
  3. การดึงข้อมูลจาก External Secrets Operators
  4. การสร้างแม่แบบทรัพยากร Kubernetes Secret
← กลับไปที่ DevOps Bootcamp