Score:1

พ็อด kubernetes ที่ทำงานบนเครื่องมือคำนวณของ Google ไม่สามารถเข้าถึงบริการข้อมูลเมตา

ธง vn

ฉันกำลังพยายามเรียกใช้ google cloud python sdk จากภายในพ็อด k8 โดยทำงานบนเครื่องมือคำนวณของ Google มีบัญชีบริการที่แนบกับ VM ซึ่งให้สิทธิ์เข้าถึงผู้จัดการความลับ ฉันสามารถเข้าถึงตัวจัดการความลับจากโฮสต์ได้ แต่การเรียกใช้ python sdk จาก k8 pod บ่นว่าไม่สามารถเข้าถึงบริการข้อมูลเมตาได้

>>> secret_id = 'unskript_test'
>>> ชื่อ = client.secret_path (project_id, secret_id)
>>> การตอบสนอง = client.get_secret (คำขอ = {"ชื่อ": ชื่อ})
Traceback (การโทรครั้งล่าสุดล่าสุด):
  ไฟล์ "/opt/conda/lib/python3.7/site-packages/google/api_core/grpc_helpers.py" บรรทัดที่ 67 ใน error_remapped_callable
    ส่งคืน callable_(*args, **kwargs)
  ไฟล์ "/opt/conda/lib/python3.7/site-packages/grpc/_channel.py", บรรทัด 946 ใน __call__
    กลับ _end_unary_response_blocking (สถานะ โทร เท็จ ไม่มี)
  ไฟล์ "/opt/conda/lib/python3.7/site-packages/grpc/_channel.py", บรรทัด 849 ใน _end_unary_response_blocking
    เพิ่ม _InactiveRpcError (สถานะ)
grpc._channel._InactiveRpcError: <_InactiveRpcError ของ RPC ที่ลงท้ายด้วย:
    สถานะ = StatusCode.UNAVAILABLE
    รายละเอียด = "การรับข้อมูลเมตาจากปลั๊กอินล้มเหลวโดยมีข้อผิดพลาด: ไม่สามารถเรียก http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/?recursive=true จากบริการข้อมูลเมตาของ Google Compute Engine ข้อมูลเมตาของ Compute Engine เซิร์ฟเวอร์ไม่พร้อมใช้งาน"
    debug_error_string = "{"created":"@1630634901.103779641","description":"การรับข้อมูลเมตาจากปลั๊กอินล้มเหลวโดยมีข้อผิดพลาด: ไม่สามารถเรียกข้อมูล http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default /?recursive=true จากบริการข้อมูลเมตาของ Google Compute Engine เซิร์ฟเวอร์ข้อมูลเมตาของ Compute Engine ไม่พร้อมใช้งาน","file":"src/core/lib/security/credentials/plugin/plugin_credentials.cc","file_line":90,"grpc_status":14}"
>

metadata.google.internal ไม่ได้รับการแก้ไขจากพ็อด k8

jovyan@jovyan-25ca6c8c-157d-49e5-9366-f9d57fcb7a9f:~$ wget http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/?recursive=true
--2021-09-03 02:11:19-- http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/?recursive=true
การแก้ไข metadata.google.internal (metadata.google.internal)... ล้มเหลว: ไม่ทราบชื่อหรือบริการ
wget: ไม่สามารถแก้ไขที่อยู่โฮสต์ âmetadata.google.internalâ

อย่างไรก็ตามโฮสต์สามารถแก้ไขได้

ubuntu@gcp-test-proxy:~$ wget http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/?recursive=true
--2021-09-03 02:11:27-- http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/?recursive=true
กำลังแก้ไข metadata.google.internal (metadata.google.internal)... 169.254.169.254
กำลังเชื่อมต่อกับ metadata.google.internal (metadata.google.internal)|169.254.169.254|:80... เชื่อมต่อแล้ว
ส่งคำขอ HTTP แล้ว กำลังรอการตอบกลับ... 403 ถูกห้าม
2021-09-03 02:11:27 ข้อผิดพลาด 403: ต้องห้าม

ฉันจะทำให้พ็อดแก้ไข metadata.google.internal ได้อย่างไร

Bakul Mitra avatar
cn flag
สวัสดี @Amit. ปัญหาของคุณได้รับการแก้ไขหรือไม่? ถ้าใช่ คุณช่วยพูดถึงขั้นตอนที่คุณดำเนินการเพื่อแก้ปัญหาได้ไหม หรือถ้าคำตอบที่ได้ช่วยคุณยอมรับหรือโหวตก็ได้..
Score:0
ธง jp

สาเหตุนี้เกิดจาก Kubernetes pod ไม่สามารถแก้ไข metadata.google.internal ชื่อ DNS เป็น IP ที่เหมาะสม เครื่องโฮสต์ของคุณอาจมีรายการใน / etc / โฮสต์ ฮาร์ดโค้ดโดเมนนั้นเป็น IP: 169.254.169.254

คุณควรจะสามารถทำซ้ำใน Pod ของคุณได้โดยแก้ไข / etc / โฮสต์ ไฟล์.

เพียงจำไว้ว่าสิ่งนี้จะใช้ได้กับ VM ที่ทำงานบน GCP เท่านั้น ภายนอก ที่อยู่ IP 169.254.169.254 เป็นเพียงที่อยู่ IP อื่นที่ไม่มีความหมายพิเศษ

แก้ไข: เพิ่งตรวจสอบ /etc/hosts บนหนึ่งใน GCP VM ของฉัน และนี่คือสิ่งที่ฉันพบ:

$ cat /etc/host
127.0.0.1 localhost

# บรรทัดต่อไปนี้เป็นที่ต้องการสำหรับโฮสต์ที่รองรับ IPv6
::1 ip6-localhost ip6-วนกลับ
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
169.254.169.254 metadata.google.internal metadata

ลองคัดลอกบรรทัดสุดท้ายนั้นไปยังพ็อดของคุณ / etc / โฮสต์.

Amit avatar
vn flag
ขอบคุณ @maciek ปัญหาคือ microk8s ไม่คัดลอกโฮสต์และรายการโฮสต์ไปยังพ็อด เมื่อเราย้ายไปที่ k3 มันก็ได้รับการแก้ไข

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา