ฉันกำลังติดตั้ง NFS (บน Azure Virtual Machine) เป็น k8s (AKS) แอปพลิเคชันของฉันทำงานกับ Apache (ผู้ใช้ www-data) ตอนนี้ด้วยเหตุผลบางอย่าง ในที่สุดฉันไม่สามารถเข้าใจข้อผิดพลาดของแอปพลิเคชันของฉันด้วยข้อผิดพลาดการอนุญาตที่ถูกปฏิเสธ กล่าวคือ มันไม่สามารถเขียนลงในวอลุ่ม NFS ที่เมาต์ได้ มันเป็นปัญหาการอนุญาตอย่างชัดเจนและฉันก็ทำให้มันยุ่งเหยิงไปหมด
แอปพลิเคชันที่ดำเนินการโดย Apache: uid=33(www-data) gid=33(www-data) groups=33(www-data)
เอ็กซ์พอร์ตจากไดเร็กทอรี NFS และรายการย่อยทั้งหมด (เรียกซ้ำ): ฉันได้ส่งไปยัง www-ข้อมูล:www-ข้อมูล
.
เมื่อฉันพิมพ์ id ในคอนเทนเนอร์ ฉันรูท: uid=0(รูท) gid=0(รูท) กลุ่ม=0(รูท),1000
เมื่อฉันแตะไฟล์ใหม่ในคอนเทนเนอร์ในปริมาณที่เมาต์ จะมีสิทธิ์: uid=65534(ไม่มีใคร) gid=65534(ไม่มีกลุ่ม) กลุ่ม=65534(ไม่มีกลุ่ม)
. มันค่อนข้างน่าแปลกใจ
เมื่อฉันพิมพ์ id ในเซิร์ฟเวอร์ NFS: uid=1,000(azureuser) gid=1000(azureuser) กลุ่ม=1000(azureuser)
ถ้าฉันแตะไฟล์ใหม่ในเซิร์ฟเวอร์ NFS จะมี: uid=1,000(azureuser) gid=1000(azureuser) กลุ่ม=1000(azureuser)
. ดังนั้นฉันถือว่าสิ่งนี้เชื่อมโยงกับการประกาศนี้ในการปรับใช้การกำหนดค่า k8s:
บริบทความปลอดภัย:
fsGroup: 1,000
/etc/export
ไฟล์ใน NFS ฉันกำหนดค่าดังนี้:
/ส่งออก 10.240.0.0/16(rw,async,ไม่ปลอดภัย,fsid=0,crossmnt,no_subtree_check)
ฉันสับสนว่าตอนนี้คืออะไร คุณช่วยฉันแก้ปัญหานี้และอธิบายให้ชัดเจนว่าคืออะไร
Btw มีการสร้างการเชื่อมต่อระหว่าง NFS และ AKS (ฉันสามารถสร้างไฟล์ในคอนเทนเนอร์ในไดรฟ์ข้อมูลที่ติดตั้งและจะมองเห็นได้ในเซิร์ฟเวอร์ NFS ซึ่งทำงานตรงข้ามกัน)