Score:0

จะติดตั้ง Consul บน azure kubernetes โดยเปิดใช้งานนโยบายได้อย่างไร

ธง cn

ฉันได้ติดตั้ง Azure kubernetes โดยเปิดใช้งานนโยบาย Azure แล้ว ฉันทำตามขั้นตอนในคู่มือเริ่มต้นใช้งานของกงสุลตามที่เป็นอยู่: ลิงค์

แต่เมื่อมีการปรับใช้กงสุล พ็อดจะไม่ถูกปรับใช้

เมื่อฉันตรวจสอบชุดจำลอง มีข้อผิดพลาดดังนี้

เหตุการณ์:
  พิมพ์อายุเหตุผลจากข้อความ
  ---- ------ ---- ---- -------
  คำเตือน FailedCreate 23s (x17 over 6m20s) replicaset-controller เกิดข้อผิดพลาด: การรับเข้า webhook "validation.gatekeeper.sh" ปฏิเสธคำขอ: [azurepolicy-psp-container-no-privilege-esc-30132221bc21e5b724da] ไม่อนุญาตให้ใช้คอนเทนเนอร์ยกระดับสิทธิ์: คอนโทรลเลอร์

จะแก้ไขปัญหานี้ได้อย่างไร?

ขั้นตอนโดยละเอียดพร้อมเอาต์พุต

D:\consul_azure>git โคลน https://github.com/hashicorp/learn-consul-kubernetes.git
โคลนเป็น 'learn-consul-kubernetes'...
ระยะไกล: การแจงนับวัตถุ: 504 เสร็จแล้ว
ระยะไกล: การนับวัตถุ: 100% (504/504) เสร็จแล้ว
ระยะไกล: กำลังบีบอัดวัตถุ: 100% (325/325) เสร็จแล้ว
รีโมต: รวม 504 (เดลต้า 260), ใช้ซ้ำ 354 (เดลต้า 154), แพ็คใช้ซ้ำ 0
รับวัตถุ: 100% (504/504), 87.91 KiB | 173.00 KiB/s เสร็จแล้ว
การแก้ไขเดลตา: 100% (260/260) เสร็จแล้ว

D:\consul_azure>cd Learn-consul-kubernetes/service-mesh/deploy

D:\consul_azure\learn-consul-kubernetes\service-mesh\deploy>helm repo เพิ่ม hashicorp https://helm.releases.hashicorp.com
"hashicorp" มีอยู่แล้วด้วยการกำหนดค่าเดียวกัน การข้าม

D:\consul_azure\learn-consul-kubernetes\service-mesh\deploy>การอัปเดตที่เก็บหางเสือ
อดใจรอในขณะที่เราคว้าข้อมูลล่าสุดจากที่เก็บข้อมูลแผนภูมิของคุณ...
...รับการอัปเดตจากที่เก็บแผนภูมิ "aad-pod-identity" สำเร็จ
...รับการอัปเดตจากที่เก็บแผนภูมิ "secrets-store-csi-driver" สำเร็จ
...รับการอัปเดตจากที่เก็บแผนภูมิ "csi-secrets-store-provider-azure" สำเร็จ
...รับการอัปเดตจากที่เก็บแผนภูมิ "hashicorp" สำเร็จแล้ว
...รับการอัปเดตจากที่เก็บแผนภูมิ "spv-charts" สำเร็จ
...รับการอัปเดตจากที่เก็บแผนภูมิ "เสถียร" สำเร็จ
อัปเดตเสร็จสมบูรณ์ âขอให้มีความสุข!â

D:\consul_azure\learn-consul-kubernetes\service-mesh\deploy>helm install -f config.yaml กงสุล hashicorp/consul --version "0.32.1"
ชื่อ: กงสุล
ใช้งานล่าสุด: จันทร์ 16 ส.ค. 12:36:55 น. 2021
NAMESPACE: ค่าเริ่มต้น
สถานะ: ปรับใช้
การแก้ไข: 1
หมายเหตุ:
ขอบคุณสำหรับการติดตั้ง HashiCorp Consul!

ตอนนี้คุณได้ปรับใช้ Consul แล้ว คุณควรตรวจสอบเอกสารเกี่ยวกับการใช้
มีกงสุลกับ Kubernetes ที่นี่:

https://www.consul.io/docs/platform/k8s/index.html


รุ่นของคุณมีชื่อว่ากงสุล

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเผยแพร่ ให้เรียกใช้:

  $ หางเสือสถานะกงสุล
  $ หางเสือรับกงสุลทั้งหมด

D:\consul_azure\learn-consul-kubernetes\service-mesh\deploy>กงสุลสถานะหางเสือ
ชื่อ: กงสุล
ใช้งานล่าสุด: จันทร์ 16 ส.ค. 12:36:55 น. 2021
NAMESPACE: ค่าเริ่มต้น
สถานะ: ปรับใช้
การแก้ไข: 1
หมายเหตุ:
ขอบคุณสำหรับการติดตั้ง HashiCorp Consul!

ตอนนี้คุณได้ปรับใช้ Consul แล้ว คุณควรตรวจสอบเอกสารเกี่ยวกับการใช้
มีกงสุลกับ Kubernetes ที่นี่:

https://www.consul.io/docs/platform/k8s/index.html


รุ่นของคุณมีชื่อว่ากงสุล

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเผยแพร่ ให้เรียกใช้:

  $ หางเสือสถานะกงสุล
  $ หางเสือรับกงสุลทั้งหมด

D:\consul_azure\learn-consul-kubernetes\service-mesh\deploy>kubectl รับพ็อด --selector app=consul
ไม่พบทรัพยากรในเนมสเปซเริ่มต้น

D:\consul_azure\learn-consul-kubernetes\service-mesh\deploy>kubectl รับพ็อด
ไม่พบทรัพยากรในเนมสเปซเริ่มต้น

D:\consul_azure\learn-consul-kubernetes\service-mesh\deploy>kubectl รับการปรับใช้
ชื่อพร้อม อายุปัจจุบันที่มีอยู่
กงสุลเชื่อมต่อหัวฉีด webhook-deployment 0/2 0 0 4m53s
กงสุลควบคุม 0/1 0 0 4m53s
กงสุลเว็บฮุคใบรับรองผู้จัดการ 0/1 0 0 4m53s
เซิร์ฟเวอร์ prometheus 0/1 0 0 4m53s

D:\consul_azure\learn-consul-kubernetes\service-mesh\deploy>kubectl อธิบายการปรับใช้ consul-controller
ชื่อ: กงสุล-ผู้ควบคุม
เนมสเปซ: ค่าเริ่มต้น
CreationTimestamp: จันทร์ 16 ส.ค. 2021 12:37:25 +0530
ป้ายกำกับ: app=consul
                        app.kubernetes.io/managed-by=หางเสือ
                        แผนภูมิ = กงสุลหางเสือ
                        ส่วนประกอบ = ตัวควบคุม
                        มรดก = หางเสือ
                        ปล่อย = กงสุล
คำอธิบายประกอบ: deployment.kubernetes.io/revision: 1
                        meta.helm.sh/release-name: กงสุล
                        meta.helm.sh/release-namespace: ค่าเริ่มต้น
ตัวเลือก: app=consul,chart=consul-helm,component=controller,heritage=Helm,release=consul
แบบจำลอง: 1 ที่ต้องการ | 0 ปรับปรุง | ทั้งหมด 0 | 0 ว่าง | 1 ไม่พร้อมใช้งาน
ประเภทกลยุทธ์: RollingUpdate
นาทีพร้อมวินาที: 0
RollingUpdateStrategy: ไม่พร้อมใช้งานสูงสุด 25%, ไฟกระชากสูงสุด 25%
เทมเพลตพ็อด:
  ป้ายกำกับ: app=consul
                    แผนภูมิ = กงสุลหางเสือ
                    ส่วนประกอบ = ตัวควบคุม
                    มรดก = หางเสือ
                    ปล่อย = กงสุล
  คำอธิบายประกอบ: consul.hashicorp.com/connect-inject: เท็จ
  บัญชีบริการ: ผู้ควบคุมกงสุล
  ตู้คอนเทนเนอร์:
   ตัวควบคุม:
    ภาพ: hashicorp/consul-k8s:0.26.0
    พอร์ต: 9443/TCP
    พอร์ตโฮสต์: 0/TCP
    สั่งการ:
      /ถัง/sh
      -ec
      กงสุล-k8s คอนโทรลเลอร์ \
        -webhook-tls-cert-dir=/tmp/controller-webhook/certs \
        -ศูนย์ข้อมูล=dc1 \
        -เปิดใช้งานการเลือกตั้งผู้นำ \
        -log-level="ข้อมูล" \

    ขีดจำกัด:
      ซีพียู: 100 ม
      หน่วยความจำ: 50Mi
    คำขอ:
      ซีพียู: 100 ม
      หน่วยความจำ: 50Mi
    สิ่งแวดล้อม:
      HOST_IP: (v1:status.hostIP)
      CONSUL_HTTP_ADDR: http://$(HOST_IP):8500
    ภูเขา:
      /tmp/controller-webhook/certs จาก cert (ro)
  ปริมาณ:
   ใบรับรอง:
    ประเภท: ความลับ (ไดรฟ์ข้อมูลที่เป็นความลับ)
    ชื่อลับ: กงสุล-controller-webhook-cert
    ตัวเลือก: เท็จ
เงื่อนไข:
  พิมพ์เหตุผลของสถานะ
  ---- ------ ------
  ความคืบหน้า True NewReplicaSetCreated
  มี False ขั้นต่ำ ReplicasUnavailable
  ReplicaFailure True FailedCreate
OldReplicaSets: <ไม่มี>
NewReplicaSet: consul-controller-dff49c9f4 (สร้างแบบจำลอง 0/1 แล้ว)
เหตุการณ์:
  พิมพ์อายุเหตุผลจากข้อความ
  ---- ------ ---- ---- -------
  ScalingReplicaSet ปกติ 5m9s ตัวควบคุมการปรับใช้ ปรับขยายชุดแบบจำลอง consul-controller-dff49c9f4 เป็น 1

D:\consul_azure\learn-consul-kubernetes\service-mesh\deploy>kubectl รับ rs consul-controller-dff49c9f4
ชื่อที่ต้องการ อายุพร้อมในปัจจุบัน
กงสุล-controller-dff49c9f4 1 0 0 5m30s

D:\consul_azure\learn-consul-kubernetes\service-mesh\deploy>kubectl บันทึก consul-controller-dff49c9f4
ข้อผิดพลาดจากเซิร์ฟเวอร์ (NotFound): ไม่พบพ็อด "consul-controller-dff49c9f4"

D:\consul_azure\learn-consul-kubernetes\service-mesh\deploy>kubectl บันทึก rs/consul-controller-dff49c9f4
ข้อผิดพลาด: หมดเวลารอเงื่อนไข

D:\consul_azure\learn-consul-kubernetes\service-mesh\deploy>kubectl อธิบาย rs/consul-controller-dff49c9f4
ชื่อ: กงสุล-controller-dff49c9f4
เนมสเปซ: ค่าเริ่มต้น
ตัวเลือก: app=consul,chart=consul-helm,component=controller,heritage=Helm,pod-template-hash=dff49c9f4,release=consul
ป้ายกำกับ: app=consul
                แผนภูมิ = กงสุลหางเสือ
                ส่วนประกอบ = ตัวควบคุม
                มรดก = หางเสือ
                ฝักแม่แบบแฮช = dff49c9f4
                ปล่อย = กงสุล
คำอธิบายประกอบ: deployment.kubernetes.io/desired-replicas: 1
                Deployment.kubernetes.io/max-replicas: 2
                Deployment.kubernetes.io/revision: 1
                meta.helm.sh/release-name: กงสุล
                meta.helm.sh/release-namespace: ค่าเริ่มต้น
ควบคุมโดย: การปรับใช้/ผู้ควบคุมกงสุล
แบบจำลอง: 0 ปัจจุบัน / 1 ต้องการ
สถานะพ็อด: 0 กำลังดำเนินการ / 0 กำลังรอ / 0 สำเร็จ / 0 ล้มเหลว
เทมเพลตพ็อด:
  ป้ายกำกับ: app=consul
                    แผนภูมิ = กงสุลหางเสือ
                    ส่วนประกอบ = ตัวควบคุม
                    มรดก = หางเสือ
                    ฝักแม่แบบแฮช = dff49c9f4
                    ปล่อย = กงสุล
  คำอธิบายประกอบ: consul.hashicorp.com/connect-inject: เท็จ
  บัญชีบริการ: ผู้ควบคุมกงสุล
  ตู้คอนเทนเนอร์:
   ตัวควบคุม:
    ภาพ: hashicorp/consul-k8s:0.26.0
    พอร์ต: 9443/TCP
    พอร์ตโฮสต์: 0/TCP
    สั่งการ:
      /ถัง/sh
      -ec
      กงสุล-k8s คอนโทรลเลอร์ \
        -webhook-tls-cert-dir=/tmp/controller-webhook/certs \
        -ศูนย์ข้อมูล=dc1 \
        -เปิดใช้งานการเลือกตั้งผู้นำ \
        -log-level="ข้อมูล" \

    ขีดจำกัด:
      ซีพียู: 100 ม
      หน่วยความจำ: 50Mi
    คำขอ:
      ซีพียู: 100 ม
      หน่วยความจำ: 50Mi
    สิ่งแวดล้อม:
      HOST_IP: (v1:status.hostIP)
      CONSUL_HTTP_ADDR: http://$(HOST_IP):8500
    ภูเขา:
      /tmp/controller-webhook/certs จาก cert (ro)
  ปริมาณ:
   ใบรับรอง:
    ประเภท: ความลับ (ไดรฟ์ข้อมูลที่เป็นความลับ)
    ชื่อลับ: กงสุล-controller-webhook-cert
    ตัวเลือก: เท็จ
เงื่อนไข:
  พิมพ์เหตุผลของสถานะ
  ---- ------ ------
  ReplicaFailure True FailedCreate
เหตุการณ์:
  พิมพ์อายุเหตุผลจากข้อความ
  ---- ------ ---- ---- -------
  คำเตือน FailedCreate 23s (x17 over 6m20s) replicaset-controller เกิดข้อผิดพลาด: การรับเข้า webhook "validation.gatekeeper.sh" ปฏิเสธคำขอ: [azurepolicy-psp-container-no-privilege-esc-30132221bc21e5b724da] ไม่อนุญาตให้ใช้คอนเทนเนอร์ยกระดับสิทธิ์: คอนโทรลเลอร์
in flag
ดูเหมือนว่าคุณกำลังประสบปัญหาเดียวกันกับที่อธิบายไว้ในhttps://github.com/hashicorp/consul-k8s/issues/635 Consul 1.10 ต้องการความสามารถของ NET_ADMIN เพื่อใช้พร็อกซีแบบโปร่งใส ฉันขอแนะนำให้แชร์รายละเอียดเพิ่มเติมเกี่ยวกับปัญหา GH เพื่อให้ทีมของเราแก้ไขข้อบกพร่องและแก้ไขปัญหานี้ได้ดีขึ้น ขอบคุณ.
Sara June avatar
cn flag
ขอบคุณเบลคสำหรับลิงค์ แต่ไม่มีวิธีแก้ปัญหาในลิงค์นั้น
in flag
สวัสดี Sara มีปัญหาในการติดตามรายงานข้อบกพร่อง ฉันแนะนำในความคิดเห็นก่อนหน้านี้ว่าให้ใช้ข้อมูลนั้นเพื่อให้ข้อมูลเพิ่มเติมแก่ทีมกงสุลเพื่อให้ตรวจสอบเรื่องนี้ได้
Score:1
ธง us

จนกว่ากงศุลจะยุติการยกระดับสิทธิ์ ซึ่งเป็นวิธีแก้ปัญหาในขั้นตอนที่ 9 ถึง กำหนดคำนิยามนโยบายหากต้องการแยกเนมสเปซ Kubernetes ออกจากการประเมินนโยบาย ให้ระบุรายการเนมสเปซในพารามิเตอร์ การยกเว้นเนมสเปซ ขอแนะนำให้ยกเว้น: ระบบ kube, ระบบผู้รักษาประตู, และ สีฟ้าอาร์ค.

โดยเฉพาะอย่างยิ่งสำหรับ คลัสเตอร์ Kubernetes ไม่ควรอนุญาตการยกระดับสิทธิ์ของคอนเทนเนอร์ คุณสามารถตั้งค่าพารามิเตอร์สำหรับ การยกเว้นเนมสเปซ และ การยกเว้นคอนเทนเนอร์เพิ่มเนมสเปซกงสุลและ/หรือคอนเทนเนอร์

ให้เป็นไปตาม คำจำกัดความของนโยบาย:

"พารามิเตอร์": {
...
"excludedNamespaces": {
        "ประเภท": "อาร์เรย์",
        "ข้อมูลเมตา": {
          "displayName": "การยกเว้นเนมสเปซ",
          "description": "รายการเนมสเปซ Kubernetes ที่จะแยกออกจากการประเมินนโยบาย"
        },
        "defaultValue": [
          "ระบบ kube",
          "ระบบเฝ้าประตู",
          "สีฟ้า-อาร์ค"
        ]
      },
...
"excludedContainers": {
        "ประเภท": "อาร์เรย์",
        "ข้อมูลเมตา": {
          "displayName": "การยกเว้นคอนเทนเนอร์",
          "description": "รายการ InitContainers และ Containers ที่จะแยกออกจากการประเมินนโยบาย การระบุคือชื่อของคอนเทนเนอร์ ใช้รายการว่างเพื่อใช้นโยบายนี้กับคอนเทนเนอร์ทั้งหมดในเนมสเปซทั้งหมด"
        },
        "defaultValue": []
      },
...
}

โพสต์คำตอบ

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