ไดรเวอร์ Amazon Elastic File System Container Storage Interface (CSI) ใช้ข้อกำหนด CSI สำหรับผู้จัดเตรียมคอนเทนเนอร์เพื่อจัดการวงจรการใช้งานของระบบไฟล์ Amazon EFS
ไดรเวอร์ Amazon EFS CSI เวอร์ชันข้อมูลจำเพาะ CSI | เวอร์ชัน 0.3.0 | เวอร์ชัน 1.1.0 | เวอร์ชัน 1.2.0 |
---|---|---|---|
สาขาหลัก | เลขที่ | เลขที่ | ใช่ |
v2.xx | เลขที่ | เลขที่ | ใช่ |
v1.xx | เลขที่ | เลขที่ | ใช่ |
เวอร์ชัน 0.3.0 | เลขที่ | ใช่ | เลขที่ |
เวอร์ชัน 0.2.0 | เลขที่ | ใช่ | เลขที่ |
เวอร์ชัน 0.1.0 | ใช่ | เลขที่ | เลขที่ |
ไดรเวอร์ Amazon EFS CSI รองรับการจัดเตรียมแบบไดนามิกและการจัดเตรียมแบบคงที่ ปัจจุบัน Dynamic Provisioning จะสร้างจุดเข้าใช้งานสำหรับ PV แต่ละรายการ ซึ่งหมายความว่าจะต้องสร้างระบบไฟล์ Amazon EFS ด้วยตนเองบน AWS ก่อน และควรจัดเตรียมเป็นอินพุตให้กับพารามิเตอร์คลาสพื้นที่จัดเก็บ สำหรับการจัดเตรียมแบบคงที่ ต้องสร้างระบบไฟล์ Amazon EFS ด้วยตนเองบน AWS ก่อน หลังจากนั้นจึงสามารถติดตั้งภายในคอนเทนเนอร์เป็นโวลุ่มได้โดยใช้ไดรเวอร์
มีการใช้อินเทอร์เฟซ CSI ต่อไปนี้:
พารามิเตอร์ | ค่านิยม | ค่าเริ่มต้น | ไม่จำเป็น | คำอธิบาย |
---|---|---|---|---|
การจัดเตรียมโหมด | เลนส์เอฟเอฟ-ap | เท็จ | ประเภทของวอลุ่มที่จัดเตรียมโดย efs ปัจจุบันรองรับจุดเข้าใช้งาน | |
fileSystemId | เท็จ | ระบบไฟล์ที่สร้างจุดเชื่อมต่อ | ||
ไดเรกทอรี Perms | เท็จ | สิทธิ์ไดเรกทอรีสำหรับการสร้างไดเรกทอรีรากของ Access Point | ||
uid | จริง | รหัสผู้ใช้ POSIX ที่จะใช้สำหรับการสร้างไดเรกทอรีรากของ Access Point | ||
กิ๊ด | จริง | รหัสกลุ่ม POSIX ที่จะใช้สำหรับการสร้างไดเรกทอรีรากของ Access Point | ||
gidRangeStart | 50,000 | จริง | ช่วงเริ่มต้นของรหัสกลุ่ม POSIX ที่จะใช้สำหรับการสร้างไดเรกทอรีรากของ Access Point ไม่ได้ใช้หากตั้งค่า uid/gid | |
gidRangeEnd | 7000000 | จริง | ช่วงสิ้นสุดของรหัสกลุ่ม POSIX ไม่ได้ใช้หากตั้งค่า uid/gid | |
basePath | จริง | เส้นทางที่สร้างจุดเข้าใช้งานสำหรับการจัดเตรียมแบบไดนามิก หากไม่ได้ระบุพารามิเตอร์นี้ จุดเชื่อมต่อจะถูกสร้างขึ้นภายใต้ไดเร็กทอรีรากของระบบไฟล์ | ||
รูปแบบย่อย | /${.PV.name} | จริง | เทมเพลตที่ใช้ในการสร้างเส้นทางย่อยที่จุดเชื่อมต่อแต่ละจุดสร้างขึ้นภายใต้การจัดเตรียมแบบไดนามิก สามารถสร้างขึ้นจากสตริงคงที่และตัวแปรที่จำกัด ซึ่งคล้ายกับตัวแปร 'subPathPattern' บนแผนภูมิ nfs-subdir-external-provisioner รองรับ .PVC.name , .PVC.namespace และ .PV.name | |
ตรวจสอบให้แน่ใจว่า UniqueDirectory | จริง | จริง | หมายเหตุ: ให้ตั้งค่านี้เป็นเท็จหากคุณแน่ใจว่านี่เป็นพฤติกรรมที่คุณต้องการเท่านั้น ใช้เมื่อเปิดใช้งานการจัดเตรียมแบบไดนามิก หากตั้งค่าเป็นจริง จะผนวก UID เข้ากับรูปแบบที่ระบุใน subPathPattern เพื่อให้แน่ใจว่าจุดเชื่อมต่อจะไม่ชี้ไปที่ไดเร็กทอรีเดียวกันโดยไม่ได้ตั้งใจ | |
อาซ | - | จริง | ใช้สำหรับการเมานต์ข้ามบัญชี az ภายใต้พารามิเตอร์คลาสหน่วยเก็บข้อมูลเป็นทางเลือก หากระบุ เป้าหมายการเมานต์ที่เกี่ยวข้องกับ az จะถูกนำมาใช้สำหรับการเมานต์ข้ามบัญชี หากไม่ได้ระบุ เป้าหมายการพาหนะแบบสุ่มจะถูกเลือกสำหรับพาหนะข้ามบัญชี | |
ใช้ AccessPoint ซ้ำ | เท็จ | จริง | เมื่อตั้งค่าเป็นจริง จะสร้างโทเค็นไคลเอ็นต์จุดเข้าใช้งานจากชื่อ PVC ที่ให้ไว้ เพื่อให้สามารถจำลอง AccessPoint จากคลัสเตอร์อื่นได้ หากใช้ชื่อ PVC และการกำหนดค่าคลาสการจัดเก็บข้อมูลเดียวกัน |
บันทึก
gidRangeStart
และ gidRangeEnd
พารามิเตอร์เหล่านี้เป็นทางเลือกเฉพาะในกรณีที่ละเว้นทั้งสองรายการ หากคุณระบุอย่างใดอย่างหนึ่ง อีกอันจะกลายเป็นข้อบังคับaz
ภายใต้พารามิเตอร์คลาสหน่วยเก็บข้อมูลอย่าสับสนกับตัวเลือกการเมานต์ efs-utils az
ตัวเลือก az
mount ใช้สำหรับการเมานต์ cross-az หรือ mount ระบบไฟล์เอฟเอฟหนึ่งโซนภายในบัญชี aws เดียวกันกับคลัสเตอร์หากคุณต้องการส่ง mountOptions อื่นๆ ไปยังไดรเวอร์ Amazon EFS CSI ขณะติดตั้ง คุณสามารถส่งผ่านตัวเลือกเหล่านั้นผ่าน Persistent Volume หรือออบเจ็กต์คลาสพื้นที่จัดเก็บ ขึ้นอยู่กับว่ามีการใช้การจัดเตรียมแบบคงที่หรือไดนามิก ต่อไปนี้เป็นตัวอย่างของ mountOptions บางตัวที่สามารถส่งผ่านได้:
เมื่อใช้ไดรเวอร์ EFS CSI โปรดทราบว่าตัวเลือกการเมานต์ noresvport
ถูกเปิดใช้งานตามค่าเริ่มต้น ซึ่งหมายความว่าไคลเอ็นต์สามารถใช้พอร์ตต้นทางใดๆ ที่มีอยู่สำหรับการสื่อสาร ไม่ใช่เฉพาะพอร์ตที่สงวนไว้
ข้อดีอย่างหนึ่งของการใช้ Amazon EFS ก็คือ มีการรองรับการเข้ารหัสระหว่างการส่งผ่านโดยใช้ TLS เมื่อใช้การเข้ารหัสระหว่างการส่ง ข้อมูลจะถูกเข้ารหัสระหว่างการเปลี่ยนผ่านเครือข่ายไปเป็นบริการ Amazon EFS นี่เป็นการป้องกันเชิงลึกอีกชั้นพิเศษสำหรับแอปพลิเคชันที่ต้องการการปฏิบัติตามข้อกำหนดด้านความปลอดภัยที่เข้มงวด
การเข้ารหัสระหว่างทางถูกเปิดใช้งานตามค่าเริ่มต้นในเวอร์ชันสาขาหลักของไดรเวอร์ หากต้องการปิดใช้งานและเมานต์โวลุ่มโดยใช้ NFSv4 ธรรมดา ให้ตั้งค่าฟิลด์ volumeAttributes
encryptInTransit
เป็น "false"
ในรายการวอลุ่มถาวรของคุณ สำหรับตัวอย่างรายการ โปรดดูตัวอย่างการเข้ารหัสระหว่างทาง
บันทึก
ต้องใช้ Kubernetes เวอร์ชัน 1.13 ขึ้นไป หากคุณใช้ฟีเจอร์นี้ใน Kubernetes
ส่วนต่อไปนี้เป็นหัวข้อเฉพาะของ Kubernetes หากคุณเป็นผู้ใช้ Kubernetes ให้ใช้สิ่งนี้กับฟีเจอร์ไดรเวอร์ ขั้นตอนการติดตั้ง และตัวอย่าง
ไดรเวอร์ Amazon EFS CSI เวอร์ชัน Kubernetes | วุฒิภาวะ | เวอร์ชัน 1.11 | เวอร์ชัน 1.12 | เวอร์ชัน 1.13 | เวอร์ชัน 1.14 | เวอร์ชัน 1.15 | เวอร์ชัน 1.16 | เวอร์ชัน 1.17+ |
---|---|---|---|---|---|---|---|---|
สาขาหลัก | จอร์เจีย | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | ใช่ |
v2.1.x | จอร์เจีย | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | ใช่ |
เวอร์ชัน 2.0.x | จอร์เจีย | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | ใช่ |
v1.7.x | จอร์เจีย | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | ใช่ |
v1.6.x | จอร์เจีย | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | ใช่ |
v1.5.x | จอร์เจีย | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | ใช่ |
v1.4.x | จอร์เจีย | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | ใช่ |
v1.3.x | จอร์เจีย | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | ใช่ |
v1.2.x | จอร์เจีย | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | ใช่ |
v1.1.x | จอร์เจีย | เลขที่ | เลขที่ | เลขที่ | ใช่ | ใช่ | ใช่ | ใช่ |
v1.0.x | จอร์เจีย | เลขที่ | เลขที่ | เลขที่ | ใช่ | ใช่ | ใช่ | ใช่ |
เวอร์ชัน 0.3.0 | เบต้า | เลขที่ | เลขที่ | เลขที่ | ใช่ | ใช่ | ใช่ | ใช่ |
เวอร์ชัน 0.2.0 | เบต้า | เลขที่ | เลขที่ | เลขที่ | ใช่ | ใช่ | ใช่ | ใช่ |
เวอร์ชัน 0.1.0 | อัลฟ่า | ใช่ | ใช่ | ใช่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ |
เวอร์ชันไดรเวอร์ Amazon EFS CSI | ภาพ |
---|---|
สาขาหลัก | อเมซอน / aws-efs-csi-driver: master |
เวอร์ชัน 2.1.0 | อเมซอน / aws-efs-csi-ไดรเวอร์: v2.1.0 |
เวอร์ชัน 2.0.9 | อเมซอน/aws-efs-csi-ไดรเวอร์:v2.0.9 |
เวอร์ชัน 2.0.8 | อเมซอน/aws-efs-csi-ไดรเวอร์:v2.0.8 |
เวอร์ชัน 2.0.7 | อเมซอน/aws-efs-csi-ไดรเวอร์:v2.0.7 |
เวอร์ชัน 2.0.6 | อเมซอน/aws-efs-csi-ไดรเวอร์:v2.0.6 |
เวอร์ชัน 2.0.5 | อเมซอน/aws-efs-csi-ไดรเวอร์:v2.0.5 |
เวอร์ชัน 2.0.4 | อเมซอน/aws-efs-csi-ไดรเวอร์:v2.0.4 |
เวอร์ชัน 2.0.3 | อเมซอน/aws-efs-csi-ไดรเวอร์:v2.0.3 |
เวอร์ชัน 2.0.2 | อเมซอน/aws-efs-csi-ไดรเวอร์:v2.0.2 |
เวอร์ชัน 2.0.1 | อเมซอน/aws-efs-csi-ไดรเวอร์:v2.0.1 |
เวอร์ชัน 2.0.0 | อเมซอน/aws-efs-csi-ไดรเวอร์:v2.0.0 |
เวอร์ชัน 1.7.7 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.7.7 |
เวอร์ชัน 1.7.6 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.7.6 |
เวอร์ชัน 1.7.5 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.7.5 |
เวอร์ชัน 1.7.4 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.7.4 |
เวอร์ชัน 1.7.3 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.7.3 |
เวอร์ชัน 1.7.2 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.7.2 |
เวอร์ชัน 1.7.1 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.7.1 |
เวอร์ชัน 1.7.0 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.7.0 |
เวอร์ชัน 1.6.0 | อเมซอน / aws-efs-csi-ไดรเวอร์: v1.6.0 |
เวอร์ชัน 1.5.9 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.5.9 |
เวอร์ชัน 1.5.8 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.5.8 |
เวอร์ชัน 1.5.7 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.5.7 |
เวอร์ชัน 1.5.6 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.5.6 |
เวอร์ชัน 1.5.5 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.5.5 |
เวอร์ชัน 1.5.4 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.5.4 |
เวอร์ชัน 1.5.3 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.5.3 |
เวอร์ชัน 1.5.2 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.5.2 |
เวอร์ชัน 1.5.1 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.5.1 |
เวอร์ชัน 1.5.0 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.5.0 |
เวอร์ชัน 1.4.9 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.4.9 |
เวอร์ชัน 1.4.8 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.4.8 |
เวอร์ชัน 1.4.7 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.4.7 |
เวอร์ชัน 1.4.6 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.4.6 |
เวอร์ชัน 1.4.5 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.4.5 |
เวอร์ชัน 1.4.4 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.4.4 |
เวอร์ชัน 1.4.3 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.4.3 |
เวอร์ชัน 1.4.2 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.4.2 |
เวอร์ชัน 1.4.1 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.4.1 |
เวอร์ชัน 1.4.0 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.4.0 |
เวอร์ชัน 1.3.8 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.3.8 |
เวอร์ชัน 1.3.7 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.3.7 |
เวอร์ชัน 1.3.6 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.3.6 |
เวอร์ชัน 1.3.5 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.3.5 |
เวอร์ชัน 1.3.4 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.3.4 |
เวอร์ชัน 1.3.3 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.3.3 |
เวอร์ชัน 1.3.2 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.3.2 |
เวอร์ชัน 1.3.1 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.3.1 |
เวอร์ชัน 1.3.0 | อเมซอน / aws-efs-csi-ไดรเวอร์: v1.3.0 |
เวอร์ชัน 1.2.1 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.2.1 |
เวอร์ชัน 1.2.0 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.2.0 |
เวอร์ชัน 1.1.1 | อเมซอน/aws-efs-csi-ไดรเวอร์:v1.1.1 |
เวอร์ชัน 1.1.0 | อเมซอน / aws-efs-csi-ไดรเวอร์: v1.1.0 |
เวอร์ชัน 1.0.0 | อเมซอน / aws-efs-csi-ไดรเวอร์: v1.0.0 |
เวอร์ชัน 0.3.0 | อเมซอน/aws-efs-csi-ไดรเวอร์:v0.3.0 |
เวอร์ชัน 0.2.0 | อเมซอน/aws-efs-csi-ไดรเวอร์:v0.2.0 |
เวอร์ชัน 0.1.0 | อเมซอน/aws-efs-csi-ไดรเวอร์:v0.1.0 |
เวอร์ชั่นไดร์เวอร์ | ภาพ ECR |
---|---|
เวอร์ชัน 2.1.0 | public.ecr.aws/efs-csi-driver/amazon/aws-efs-csi-ไดรเวอร์:v2.1.0 |
บันทึก
คุณสามารถดูรูปภาพของ EF-csi-driver เวอร์ชันก่อนหน้าได้จากที่นี่
บันทึก
เนื่องจาก Amazon EFS เป็นระบบไฟล์แบบยืดหยุ่น จึงไม่บังคับใช้ความจุของระบบไฟล์ใดๆ จริงๆ ค่าความจุจริงในวอลุ่มถาวรและการอ้างสิทธิ์วอลุ่มถาวรจะไม่ถูกใช้เมื่อสร้างระบบไฟล์ อย่างไรก็ตาม เนื่องจาก Kubernetes ต้องระบุความจุของพื้นที่เก็บข้อมูล คุณต้องระบุค่าและคุณสามารถใช้ค่าที่ถูกต้องสำหรับความจุได้
ข้อควรพิจารณา
1.2
หรือใหม่กว่า คุณสามารถจัดเตรียมไดรฟ์ข้อมูลถาวรแบบคงที่ได้โดยใช้เวอร์ชัน 1.1
ของไดรเวอร์บนคลัสเตอร์ Amazon EKS ทุกเวอร์ชันที่รองรับ1.3.2
หรือใหม่กว่านี้รองรับสถาปัตยกรรม Arm64 รวมถึงอินสแตนซ์ที่ใช้ Amazon EC2 Graviton1.4.2
หรือใหม่กว่าของไดรเวอร์นี้รองรับการใช้ FIPS สำหรับการติดตั้งระบบไฟล์ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการเปิดใช้งาน FIPS โปรดดูที่ Helmมีสภาวะการแข่งขันที่อาจเกิดขึ้นในการเริ่มต้นโหนด (โดยเฉพาะอย่างยิ่งเมื่อโหนดเข้าร่วมคลัสเตอร์เป็นครั้งแรก) โดยที่พ็อด/กระบวนการที่ต้องอาศัยไดรเวอร์ EFS CSI สามารถดำเนินการบนโหนดได้ก่อนที่ไดรเวอร์ EFS CSI จะสามารถเริ่มต้นระบบและพร้อมใช้งานโดยสมบูรณ์ เพื่อต่อสู้กับสิ่งนี้ ไดรเวอร์ EFS CSI มีคุณสมบัติในการลบเทนต์ออกจากโหนดโดยอัตโนมัติเมื่อเริ่มต้นระบบ คุณลักษณะนี้ถูกนำมาใช้จากเวอร์ชัน v1.7.2 ของไดรเวอร์ EFS CSI และเวอร์ชัน v2.5.2 ของแผนภูมิ Helm ผู้ใช้สามารถทำให้โหนดของตนเสียเมื่อเข้าร่วมคลัสเตอร์และ/หรือเมื่อเริ่มต้นระบบ เพื่อป้องกันไม่ให้พ็อดอื่นๆ ทำงานและ/หรือกำหนดเวลาบนโหนดก่อนที่ไดรเวอร์ EFS CSI จะพร้อมใช้งาน
คุณลักษณะนี้เปิดใช้งานตามค่าเริ่มต้น และผู้ดูแลระบบคลัสเตอร์ควรใช้ taint efs.csi.aws.com/agent-not-ready:NoExecute
(เอฟเฟกต์ใดๆ จะทำงาน แต่แนะนำให้ใช้ NoExecute
) ตัวอย่างเช่น EKS Managed Node Groups รองรับการเทนเทนโหนดโดยอัตโนมัติ
ข้อกำหนดเบื้องต้น
aws configure
ในคู่มือผู้ใช้ AWS Command Line Interface เวอร์ชัน AWS CLI ที่ติดตั้งใน AWS CloudShell อาจมีเวอร์ชันช้ากว่าเวอร์ชันล่าสุดหลายเวอร์ชัน หากต้องการอัปเดต โปรดดูการติดตั้ง AWS CLI ลงในไดเร็กทอรีหลักของคุณในคู่มือผู้ใช้ AWS CloudShellkubectl
ได้รับการติดตั้งบนอุปกรณ์หรือ AWS CloudShell ของคุณ เวอร์ชันนี้สามารถเป็นเวอร์ชันเดียวกันหรือเวอร์ชันรองได้ไม่เกิน 1 เวอร์ชันที่เก่ากว่าหรือใหม่กว่าเวอร์ชัน Kubernetes ของคลัสเตอร์ของคุณ หากต้องการติดตั้งหรืออัปเกรด kubectl
โปรดดูที่การติดตั้งหรืออัปเดต kubectl
บันทึก
พ็อดที่ทำงานบน AWS Fargate จะติดตั้งระบบไฟล์ Amazon EFS โดยอัตโนมัติ โดยไม่ต้องใช้ขั้นตอนการติดตั้งไดรเวอร์ด้วยตนเองที่อธิบายไว้ในหน้านี้
ไดรเวอร์ต้องได้รับอนุญาตจาก IAM เพื่อพูดคุยกับ Amazon EFS เพื่อจัดการโวลุ่มในนามของผู้ใช้ มีหลายวิธีในการให้สิทธิ์ IAM แก่คนขับ:
AmazonEFSCSIDriverPolicy
ให้กับบทบาท IAM ของกลุ่มโหนดของคลัสเตอร์มีหลายตัวเลือกในการปรับใช้ไดรเวอร์ ต่อไปนี้เป็นตัวอย่างบางส่วน
ขั้นตอนนี้ต้องใช้ Helm V3 หรือใหม่กว่า หากต้องการติดตั้งหรืออัปเกรด Helm โปรดดูการใช้ Helm กับ Amazon EKS
ในการติดตั้งไดรเวอร์โดยใช้ Helm
เพิ่มที่เก็บ Helm
helm repo add aws-efs-csi-driver https://kubernetes-sigs.github.io/aws-efs-csi-driver/
อัพเดตรีโปครับ
helm repo update aws-efs-csi-driver
ติดตั้งไดร์เวอร์รุ่นต่างๆ โดยใช้แผนภูมิ Helm
helm upgrade --install aws-efs-csi-driver --namespace kube-system aws-efs-csi-driver/aws-efs-csi-driver
หากต้องการระบุที่เก็บรูปภาพ ให้เพิ่มอาร์กิวเมนต์ต่อไปนี้ แทนที่ที่อยู่ที่เก็บด้วยที่อยู่อิมเมจคอนเทนเนอร์ของคลัสเตอร์
--set image.repository=602401143452.dkr.ecr.region-code.amazonaws.com/eks/aws-efs-csi-driver
หากคุณสร้างบัญชีบริการแล้วโดยทำตาม สร้างนโยบาย IAM และบทบาทสำหรับ Amazon EKS ให้เพิ่มอาร์กิวเมนต์ต่อไปนี้
--set controller.serviceAccount.create=false
--set controller.serviceAccount.name=efs-csi-controller-sa
หากคุณไม่มีการเข้าถึงอินเทอร์เน็ต ให้เพิ่มอาร์กิวเมนต์ต่อไปนี้
--set sidecars.livenessProbe.image.repository=602401143452.dkr.ecr.region-code.amazonaws.com/eks/livenessprobe
--set sidecars.node-driver-registrar.image.repository=602401143452.dkr.ecr.region-code.amazonaws.com/eks/csi-node-driver-registrar
--set sidecars.csiProvisioner.image.repository=602401143452.dkr.ecr.region-code.amazonaws.com/eks/csi-provisioner
หากต้องการบังคับให้ไดรเวอร์ Amazon EFS CSI ใช้ FIPS สำหรับติดตั้งระบบไฟล์ ให้เพิ่มอาร์กิวเมนต์ต่อไปนี้
--set useFips=true
บันทึก
hostNetwork: true
(ควรเพิ่มภายใต้ข้อกำหนด/การปรับใช้บนการติดตั้ง kubernetes โดยที่ไม่สามารถเข้าถึงข้อมูลเมตา AWS จากเครือข่ายพ็อด เพื่อแก้ไขข้อผิดพลาด NoCredentialProviders: no valid providers in chain
พารามิเตอร์นี้ควรเพิ่ม)
หากคุณต้องการดาวน์โหลดรูปภาพด้วยไฟล์ Manifest เราขอแนะนำให้ลองขั้นตอนเหล่านี้ก่อนเพื่อดึงรูปภาพที่มีการรักษาความปลอดภัยจากรีจิสทรี Amazon ECR ส่วนตัว
หากต้องการติดตั้งไดรเวอร์โดยใช้อิมเมจที่จัดเก็บไว้ในรีจิสทรี Amazon ECR ส่วนตัว
ดาวน์โหลดรายการ แทนที่ release-XX
ด้วยสาขาที่คุณต้องการ เราขอแนะนำให้ใช้เวอร์ชันล่าสุด สำหรับรายชื่อสาขาที่ใช้งานอยู่ โปรดดูสาขา
kubectl kustomize
" github.com/kubernetes-sigs/aws-efs-csi-driver/deploy/kubernetes/overlays/stable/ecr/?ref=release-2.X " > private-ecr-driver.yaml
บันทึก
หากคุณพบปัญหาที่ไม่สามารถแก้ไขได้ด้วยการเพิ่มสิทธิ์ IAM ให้ลองใช้ขั้นตอน Manifest (การลงทะเบียนสาธารณะ) แทน
ในคำสั่งต่อไปนี้ ให้แทนที่ region-code
ด้วยภูมิภาค AWS ที่คลัสเตอร์ของคุณอยู่ จากนั้นเรียกใช้คำสั่งที่แก้ไขเพื่อแทนที่ us-west-2
ในไฟล์ด้วยภูมิภาค AWS ของคุณ
sed -i.bak -e ' s|us-west-2|region-code| ' private-ecr-driver.yaml
แทนที่ account
ในคำสั่งต่อไปนี้ด้วยบัญชีจากการลงทะเบียนอิมเมจคอนเทนเนอร์ของ Amazon สำหรับภูมิภาค AWS ที่คลัสเตอร์ของคุณอยู่ จากนั้นเรียกใช้คำสั่งที่แก้ไขเพื่อแทนที่ 602401143452
ในไฟล์
sed -i.bak -e ' s|602401143452|account| ' private-ecr-driver.yaml
หากคุณสร้างบัญชีบริการแล้วโดยทำตาม สร้างนโยบาย IAM และบทบาทสำหรับ Amazon EKS จากนั้นให้แก้ไขไฟล์ private-ecr-driver.yaml
ลบบรรทัดต่อไปนี้ที่สร้างบัญชีบริการ Kubernetes
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/name: aws-efs-csi-driver
name: efs-csi-controller-sa
namespace: kube-system
---
ใช้รายการ
kubectl apply -f private-ecr-driver.yaml
ในบางสถานการณ์ คุณอาจไม่สามารถเพิ่มสิทธิ์ IAM ที่จำเป็นเพื่อดึงข้อมูลจากรีจิสทรี Amazon ECR ส่วนตัวได้ ตัวอย่างหนึ่งของสถานการณ์นี้คือ หากหลักการ IAM ของคุณไม่ได้รับอนุญาตให้ตรวจสอบสิทธิ์กับบัญชีของบุคคลอื่น เมื่อสิ่งนี้เป็นจริง คุณสามารถใช้รีจิสทรี Amazon ECR สาธารณะได้
หากต้องการติดตั้งไดรเวอร์โดยใช้อิมเมจที่จัดเก็บไว้ในรีจิสทรี Amazon ECR สาธารณะ
ดาวน์โหลดรายการ แทนที่ release-XX
ด้วยสาขาที่คุณต้องการ เราขอแนะนำให้ใช้เวอร์ชันล่าสุด สำหรับรายชื่อสาขาที่ใช้งานอยู่ โปรดดูสาขา
kubectl kustomize
" github.com/kubernetes-sigs/aws-efs-csi-driver/deploy/kubernetes/overlays/stable/?ref=release-2.X " > public-ecr-driver.yaml
หากคุณสร้างบัญชีบริการแล้วโดยทำตาม สร้างนโยบายและบทบาท IAM จากนั้นให้แก้ไขไฟล์ public-ecr-driver.yaml
ลบบรรทัดต่อไปนี้ที่สร้างบัญชีบริการ Kubernetes
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/name: aws-efs-csi-driver
name: efs-csi-controller-sa
namespace: kube-system
---
ใช้รายการ
kubectl apply -f public-ecr-driver.yaml
หลังจากปรับใช้ไดรเวอร์แล้ว คุณสามารถดำเนินการต่อไปยังส่วนเหล่านี้ได้:
พารามิเตอร์ | ค่านิยม | ค่าเริ่มต้น | ไม่จำเป็น | คำอธิบาย |
---|---|---|---|---|
เลือกใช้ปริมาตรเมตริก | เท็จ | จริง | เลือกใช้เพื่อปล่อยเมตริกปริมาณ | |
ปริมาตรเมตริก-ระยะเวลารีเฟรช | 240 | จริง | ระยะเวลารีเฟรชสำหรับการวัดปริมาณเป็นนาที | |
ปริมาตรเมตริก-fs-อัตราจำกัด | 5 | จริง | ตัวจำกัดอัตรารูทีนเมทริกวอลุ่มต่อระบบไฟล์ |
การเปิดใช้งานพารามิเตอร์การเลือกใช้ vol-metrics จะเปิดใช้งานการรวบรวมข้อมูลการใช้งานไอโหนดและดิสก์ ฟังก์ชันการทำงานนี้ โดยเฉพาะอย่างยิ่งในสถานการณ์ที่มีระบบไฟล์ขนาดใหญ่ อาจส่งผลให้การใช้งานหน่วยความจำเพิ่มขึ้นเนื่องจากการรวบรวมข้อมูลระบบไฟล์โดยละเอียด เราแนะนำให้ผู้ใช้ที่มีระบบไฟล์ขนาดใหญ่พิจารณาแง่มุมนี้เมื่อใช้คุณสมบัตินี้
พารามิเตอร์ | ค่านิยม | ค่าเริ่มต้น | ไม่จำเป็น | คำอธิบาย |
---|---|---|---|---|
ลบจุดเข้าถึง root-dir | เท็จ | จริง | เลือกที่จะลบไดเรกทอรีรากของจุดเข้าใช้งานโดย DeleteVolume ตามค่าเริ่มต้น DeleteVolume จะลบจุดเชื่อมต่อที่อยู่ด้านหลัง Persistent Volume และการลบจุดเชื่อมต่อจะไม่ลบไดเรกทอรีรากของจุดเชื่อมต่อหรือเนื้อหา | |
แท็ก | จริง | คู่คีย์:ค่าที่คั่นด้วยช่องว่างซึ่งจะถูกเพิ่มเป็นแท็กสำหรับทรัพยากร Amazon EFS ตัวอย่างเช่น '--tags=name:efs-tag-test date:Jan24' |
หากคุณต้องการอัปเดตเป็นเวอร์ชันล่าสุด:
kubectl apply -k " github.com/kubernetes-sigs/aws-efs-csi-driver/deploy/kubernetes/overlays/stable/?ref=release-2.0 "
หากคุณต้องการอัปเดตเป็นเวอร์ชันเฉพาะ ขั้นแรกให้ปรับแต่งไฟล์ yaml ของไดรเวอร์ในเครื่อง:
kubectl kustomize " github.com/kubernetes-sigs/aws-efs-csi-driver/deploy/kubernetes/overlays/stable/?ref=release-2.0 " > driver.yaml
จากนั้น อัปเดตทุกบรรทัดที่อ้างอิง image: amazon/aws-efs-csi-driver
เป็นเวอร์ชันที่ต้องการ (เช่น ไปยัง image: amazon/aws-efs-csi-driver:v2.1.0
) ในไฟล์ yaml และปรับใช้ไดรเวอร์ yaml อีกครั้ง:
kubectl apply -f driver.yaml
ก่อนที่จะทำตามตัวอย่าง คุณต้อง:
elasticfilesystem:DescribeMountTargets
และ ec2:DescribeAvailabilityZones
ในนโยบายของคุณที่แนบมากับบทบาทบัญชีบริการ Amazon EKS โปรดดูนโยบายตัวอย่างที่นี่ โปรดอ่านข้อมูลจำเพาะของ CSI และเอกสารประกอบสำหรับนักพัฒนา CSI ของ Kubernetes เพื่อทำความเข้าใจพื้นฐานเกี่ยวกับไดรเวอร์ CSI ก่อนที่จะเริ่มต้น
หากคุณกำลังจะอัปเดตไฟล์นโยบาย iam โปรดอัปเดตนโยบายเอฟเฟ็กต์ใน weaveworks/eksctl https://github.com/weaveworks/eksctl/blob/main/pkg/cfn/builder/statement.go */
การพึ่งพาได้รับการจัดการผ่านโมดูล go ในการสร้างโปรเจ็กต์ ก่อนอื่นให้เปิด go mod โดยใช้ export GO111MODULE=on
เพื่อสร้างโปรเจ็กต์ให้รัน: make
หากต้องการดำเนินการทดสอบหน่วยทั้งหมด ให้รัน: make test
หากต้องการดึงบันทึกและแก้ไขปัญหาไดรเวอร์ โปรดดูที่การแก้ไขปัญหา/README.md
ไลบรารีนี้ได้รับอนุญาตภายใต้ Apache 2.0 License