Ingress ใช้เพื่อจัดการการรับส่งข้อมูลขาเข้าของแอปพลิเคชันและสำหรับการยุติ SSL ในทางตรงกันข้าม ข้อมูลลับจะถูกใช้เพื่อจัดเก็บข้อมูลที่เป็นความลับและใบรับรอง TLS สำหรับการสมัคร
โพสต์นี้จะแสดงให้เห็นว่า:
- ความลับของ Kubernetes คืออะไร?
- วิชาบังคับก่อน: สร้างคีย์ส่วนตัวและใบรับรอง
- จะสร้าง TLS ลับใน Kubernetes ได้อย่างไร
- จะสร้างความลับผ่านไฟล์ Yaml ได้อย่างไร?
- จะฝังความลับด้วย Kubernetes Pod ได้อย่างไร
- บทสรุป
ความลับของ Kubernetes คืออะไร?
ข้อมูลลับเป็นหนึ่งในทรัพยากรของ Kubernetes ที่ใช้ในการจัดเก็บข้อมูลที่เป็นความลับ เช่น ข้อมูลรับรองการเข้าสู่ระบบของผู้ใช้ คีย์ ใบรับรอง หรือโทเค็น สามารถสร้างความลับทีละรายการและเชื่อมต่อกับพ็อดได้ จะป้องกันไม่ให้นักพัฒนาให้ข้อมูลที่เป็นความลับในรูปแบบโค้ดและยังให้การรักษาความปลอดภัยอีกชั้นหนึ่งอีกด้วย คุณสามารถสร้างและใช้ความลับประเภทต่างๆ ได้ ความลับที่ใช้กันมากที่สุดคือ:
ความลับทั่วไป: ข้อมูลลับทั่วไปใช้เพื่อจัดเก็บข้อมูลพื้นฐาน เช่น รหัสผ่าน โทเค็น คีย์ API คีย์ OAuth และอื่นๆ
ข้อมูลลับ TLS: ข้อมูลลับ TLS ใช้เพื่อจัดเก็บคีย์ส่วนตัวและใบรับรองที่ลงนามโดย CA เพื่อให้มั่นใจในความปลอดภัยของแอปพลิเคชันที่ทำงานภายใน Kubernetes และเพื่อความปลอดภัยในการสื่อสารภายในคลัสเตอร์ ผู้ใช้มักจะต้องสร้างและฝังความลับ TLS ลงในพ็อด
รีจิสทรีนักเทียบท่า: มันถูกใช้เพื่อจัดเก็บข้อมูลรับรองรีจิสทรีนักเทียบท่าเพื่อให้สามารถดึงรูปภาพจากรีจิสทรีได้อย่างง่ายดาย
วิชาบังคับก่อน: สร้างคีย์ส่วนตัวและใบรับรอง
หากต้องการสร้างใบรับรองและคีย์ส่วนตัวเพื่อปรับปรุงความปลอดภัย ให้ใช้ OpenSSL ที่สร้าง CSR (คำขอลงนามใบรับรอง) และคีย์ส่วนตัว จากนั้นใช้ CSR เพื่อสร้างใบรับรองที่ลงนามด้วยตนเองหรือใบรับรอง CA
หากต้องการใช้คำสั่ง OpenSSL บน Windows ผู้ใช้จำเป็นต้องติดตั้ง Git เพื่อจุดประสงค์นี้ให้ทำตามลิงค์ของเรา” ติดตั้งคอมไพล์บน Windows ' บทความ.
หลังจากติดตั้ง git แล้ว ให้ทำตามคำแนะนำด้านล่างเพื่อสร้างคีย์ส่วนตัวและใบรับรองที่ลงนาม
ขั้นตอนที่ 1: เปิด Git Bash Terminal
ทำการค้นหา “ คอมไพล์ทุบตี ” ในเมนู Start และเปิดเทอร์มินัล:
หากต้องการตรวจสอบไดเร็กทอรีปัจจุบันให้ใช้คำสั่ง “ นโยบายความเป็นส่วนตัว ' สั่งการ:
นโยบายความเป็นส่วนตัวขณะนี้ เรากำลังทำงานในไดเรกทอรี %USERPROFILE%:
ขั้นตอนที่ 2: สร้างไดเรกทอรีใหม่
สร้างไดเร็กทอรีใหม่เพื่อบันทึกใบรับรองและคีย์ส่วนตัว:
mkdir ใบรับรองนำทางไปยังไดเร็กทอรีที่สร้างขึ้นใหม่โดยใช้ปุ่ม “ ซีดี ' สั่งการ:
ซีดี ใบรับรอง
ขั้นตอนที่ 3: สร้างคีย์ส่วนตัว
ตอนนี้ให้สร้างคีย์ส่วนตัวผ่านคำสั่งที่กำหนด ที่นี่คีย์ส่วนตัวที่สร้างขึ้นจะถูกบันทึกไว้ใน “ mycert.คีย์ ”:
openssl genpkey -อัลกอริทึม อาร์เอสเอ -ออก mycert.คีย์
ขั้นตอนที่ 4: สร้าง CSR
หากต้องการสร้าง CSR (คำขอบริการใบรับรอง) เพื่อรับใบรับรองที่ลงนาม ให้ใช้คำสั่งที่กำหนด:
คำขอ openssl -ใหม่ -สำคัญ mycert.คีย์ -ออก mycert.csr
ขั้นตอนที่ 5: สร้างใบรับรอง
สุดท้ายนี้ ใช้คีย์ส่วนตัวที่สร้างขึ้นและ CSR สร้างใบรับรองและบันทึกไว้ใน ' mycert.crt ' ไฟล์. เพื่อจุดประสงค์นี้ ให้ดำเนินการคำสั่งด้านล่าง:
openssl x509 -req -ใน mycert.csr -signkey mycert.คีย์ -ออก mycert.crt -วัน 365
หลังจากสร้างใบรับรอง TLS แล้ว ผู้ใช้สามารถสร้าง TLS ลับได้โดยทำตามส่วนด้านล่าง
จะสร้าง TLS ลับใน Kubernetes ได้อย่างไร
เพื่อให้มั่นใจถึงความปลอดภัยของแอปพลิเคชันและการสื่อสารที่ปลอดภัยภายในและภายนอกคลัสเตอร์ Kubernetes ใบรับรอง TLS (Transport Layer Security) จึงมีความสำคัญที่ใช้ในการเข้ารหัสข้อมูล ข้อมูลลับของ Kubernetes ช่วยให้เราสามารถฝังใบรับรอง TLS ด้วยพ็อดที่ทำงานผ่าน TLS ที่เป็นความลับ หากต้องการสร้าง TLS ลับใน Kubernetes ให้ทำตามคำแนะนำต่อไปนี้
ขั้นตอนที่ 1: เริ่มคลัสเตอร์ Minikube
ในการเริ่มต้นคลัสเตอร์ minikube ขั้นแรกให้เปิด Windows PowerShell ในฐานะผู้ดูแลระบบ หลังจากนั้นให้สร้างและรันคลัสเตอร์โดยใช้คำสั่ง “ มินิคิวบ์สตาร์ท ' สั่งการ:
มินิคิวบ์สตาร์ท
ขั้นตอนที่ 2: รับโหนด
เข้าถึงโหนด Kubernetes เพื่อตรวจสอบว่าคลัสเตอร์เริ่มทำงานหรือไม่:
minikube รับโหนด
ขั้นตอนที่ 3: สร้าง TLS ลับ
สร้างความลับ TLS ใน Kubernetes โดยใช้ “ kubectl สร้างความลับ
ขั้นตอนที่ 4: รับความลับ
เพื่อการยืนยัน ให้แสดงรายการความลับของ Kubernetes โดยใช้คำสั่งที่กำหนด:
kubectl ได้รับความลับที่นี่คุณจะเห็นว่าเราได้สร้าง “ ความลับการสาธิต ” ซึ่งประกอบด้วย “ 2 ” ค่าข้อมูล:
ขั้นตอนที่ 5: อธิบายความลับ
หากต้องการดูวิธีการดูหรือจัดเก็บข้อมูลเป็นความลับ ให้อธิบายความลับโดยใช้เครื่องหมาย “ kubectl อธิบายความลับ
คุณสามารถดูค่าที่จัดเก็บเป็นไบต์และไม่สามารถดูได้โดยตรง ซึ่งต่างจาก Kubernetes ConfigMaps:
จะสร้าง TLS ลับผ่านไฟล์ Yaml ได้อย่างไร
หากต้องการสร้าง TLS ลับผ่านไฟล์ yaml ขั้นแรกให้สร้าง ' Secret.yml ” ให้เพิ่มไฟล์ ใบรับรองที่เข้ารหัส tls base64 ใน ' tls.crt ” และเพิ่ม คีย์เข้ารหัส base64 ใน ' tls.คีย์ '.
สำหรับการสาธิต ให้ทำตามขั้นตอนที่ระบุไว้
ขั้นตอนที่ 1: สร้างไฟล์ Yaml
สร้างไฟล์ชื่อ “ Secret.yml ” และวางรหัสที่กำหนด:
apiเวอร์ชัน : : เวอร์ชัน 1ข้อมูล : :
tls.crt : : 'ใบรับรองที่เข้ารหัส base64'
tls.คีย์ : : 'คีย์เข้ารหัส base64'
ใจดี : : ความลับ
ข้อมูลเมตา : :
ชื่อ : : mytls-ความลับ
เนมสเปซ : : ค่าเริ่มต้น
พิมพ์ : : kubernetes.io/tls
ในตัวอย่างข้างต้น ให้แทนที่ค่าคีย์ “tls.crt” และ “tls.key” ด้วยใบรับรองและค่าคีย์เดิมของคุณ:
ขั้นตอนที่ 2: สร้างความลับ
ตอนนี้ใช้ไฟล์ yaml ลับผ่าน ' kubectl ใช้ -f
ผลลัพธ์แสดงให้เห็นว่าเราได้สร้าง ' mytls-ความลับ ” โดยใช้ไฟล์ yaml:
หมายเหตุ: ดูใบรับรอง TLS และคีย์ส่วนตัว
หากต้องการดูใบรับรองที่เข้ารหัส base64 และใช้ในไฟล์ yaml ให้เรียกใช้คำสั่ง “ cat <ไฟล์เส้นทางสู่ใบรับรอง> | ฐาน64 ” คำสั่งในเทอร์มินัล git bash:
แมว mycert.crt | ฐาน64หากต้องการดูคีย์ที่เข้ารหัส base64 ให้ใช้ “ cat <ไฟล์เส้นทางสู่คีย์> | ฐาน64 ' สั่งการ:
แมว mycert.คีย์ | ฐาน64จะฝัง TLS ลับด้วย Kubernetes Pod ได้อย่างไร
หลังจากสร้าง TSL ลับแล้ว ผู้ใช้สามารถฝังมันเข้ากับพ็อด Kubernetes ได้ โดยทำตามคำแนะนำต่อไปนี้
ขั้นตอนที่ 1: สร้างไฟล์ Yaml
สร้างไฟล์ชื่อ “ pod.yml ” และวางข้อมูลโค้ดด้านล่างลงในไฟล์:
เวอร์ชัน api: v1ชนิด: พ็อด
ข้อมูลเมตา:
ชื่อ: เดโมพ็อด
ข้อมูลจำเพาะ:
ภาชนะ:
- ชื่อ: html-cont
ภาพ: rafia098 / html-img: 1.0
envจาก:
- ความลับอ้างอิง:
ชื่อ: สาธิตความลับ
ในตัวอย่างข้างต้น:
- “ ใจดี ” ระบุทรัพยากร Kubernetes ที่ผู้ใช้กำลังสร้าง
- “ ชื่อ ” ปุ่มจะตั้งชื่อพ็อด
- “ ตู้คอนเทนเนอร์ ” คีย์จะเก็บข้อมูลคอนเทนเนอร์
- “ ชื่อ ” ใต้คีย์ “คอนเทนเนอร์” จะตั้งชื่อคอนเทนเนอร์
- “ ภาพ ” คีย์จะให้แอปพลิเคชันหรืออิมเมจคอนเทนเนอร์เพื่อสร้างและเริ่มแอปพลิเคชันภายในคอนเทนเนอร์
- “ envจาก ” จะตั้งค่าตัวแปรสภาพแวดล้อมจากทรัพยากร Kubernetes อื่น ๆ ที่นี่เพื่อฝัง TLS ลับไว้ในพ็อด” ความลับRef ” ใช้เพื่อให้ข้อมูลอ้างอิงที่เป็นความลับ หากต้องการฝัง TLS ลับข้างต้น ให้ระบุชื่อของข้อมูลลับในคีย์ 'ชื่อ'
ขั้นตอนที่ 2: สร้างหรืออัปเกรดพ็อด
จากนั้นเปิดโฟลเดอร์ที่ “ pod.yml ” ไฟล์ถูกสร้างขึ้น:
ซีดี C:\Users\Dell\Documents\Kubernetes\Secret
ใช้ไฟล์ yaml เพื่อสร้างหรือกำหนดค่าพ็อดใหม่โดยใช้คำสั่ง “ สมัคร kubectl ' สั่งการ:
สมัคร kubectl -ฉ pod.yml
ขั้นตอนที่ 3: เข้าถึง Kubernetes Pod
สำหรับการตรวจสอบ ให้แสดงรายการพ็อด Kubernetes:
kubectl รับพ็อดที่นี่คุณจะเห็นว่าเราได้สร้าง “ สาธิตพ็อด ” สำเร็จ:
ขั้นตอนที่ 4: อธิบายพ็อด
หากต้องการตรวจสอบว่าพ็อดฝัง TLS ลับไว้หรือไม่ ให้อธิบายพ็อดโดยใช้คำสั่งด้านล่าง:
kubectl อธิบาย pod demo-podผลลัพธ์ด้านล่างแสดงให้เห็นว่าเราได้ฝังความลับ TLS ด้วยพ็อดสำเร็จแล้ว:
เราได้กล่าวถึงวิธีสร้าง TLS ลับและฝังไว้ด้วยแอปพลิเคชัน Kubernetes ที่ทำงานอยู่ในพ็อด
บทสรุป
หากต้องการสร้าง TLS ลับใน Kubernetes ขั้นแรกให้สร้างใบรับรองที่ลงนาม TLS และคีย์ส่วนตัว หลังจากนั้นให้เริ่มคลัสเตอร์ Kubernetes และเรียกใช้คำสั่ง “ kubectl สร้างความลับ