คำตอบที่ปลอดภัยยิ่งขึ้น
คำตอบที่ได้รับการยอมรับทำให้ผู้ดูแลระบบสามารถเข้าถึง Helm ได้เต็มรูปแบบซึ่งไม่ใช่วิธีการรักษาความปลอดภัยที่ดีที่สุด ด้วยการทำงานเพิ่มขึ้นเล็กน้อยเราสามารถ จำกัด การเข้าถึงของ Helm ไปยังเนมสเปซเฉพาะได้ รายละเอียดเพิ่มเติมในเอกสารพวงมาลัย
$ kubectl create namespace tiller-world
namespace "tiller-world" created
$ kubectl create serviceaccount tiller --namespace tiller-world
serviceaccount "tiller" created
กำหนดบทบาทที่ช่วยให้ Tiller สามารถจัดการทรัพยากรทั้งหมดได้tiller-world
เช่นในrole-tiller.yaml
:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: tiller-manager
namespace: tiller-world
rules:
- apiGroups: ["", "batch", "extensions", "apps"]
resources: ["*"]
verbs: ["*"]
จากนั้นเรียกใช้:
$ kubectl create -f role-tiller.yaml
role "tiller-manager" created
ในrolebinding-tiller.yaml
,
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: tiller-binding
namespace: tiller-world
subjects:
- kind: ServiceAccount
name: tiller
namespace: tiller-world
roleRef:
kind: Role
name: tiller-manager
apiGroup: rbac.authorization.k8s.io
จากนั้นเรียกใช้:
$ kubectl create -f rolebinding-tiller.yaml
rolebinding "tiller-binding" created
หลังจากนั้นคุณสามารถเรียกใช้helm init
เพื่อติดตั้ง Tiller ในtiller-world
เนมสเปซ
$ helm init --service-account tiller --tiller-namespace tiller-world
ตอนนี้นำหน้าคำสั่งทั้งหมดด้วย--tiller-namespace tiller-world
หรือตั้งค่าTILLER_NAMESPACE=tiller-world
ในตัวแปรสภาพแวดล้อมของคุณ
คำตอบในอนาคตเพิ่มเติม
หยุดใช้ Tiller Helm 3 ขจัดความจำเป็นในการไถพรวนอย่างสมบูรณ์ หากคุณใช้ Helm 2 คุณสามารถใช้helm template
เพื่อสร้าง yaml จากแผนภูมิ Helm ของคุณจากนั้นเรียกใช้kubectl apply
เพื่อใช้วัตถุกับคลัสเตอร์ Kubernetes ของคุณ
helm template --name foo --namespace bar --output-dir ./output ./chart-template
kubectl apply --namespace bar --recursive --filename ./output -o yaml
--clusterrole=cluster-admin
จะช่วยแก้ไขปัญหาสิทธิ์ได้อย่างแน่นอน แต่อาจไม่ใช่วิธีแก้ไขที่คุณต้องการ ควรสร้างบัญชีบริการของคุณเองบทบาท (คลัสเตอร์) และการเชื่อมโยงบทบาท (คลัสเตอร์) ด้วยสิทธิ์ที่แน่นอนที่คุณต้องการ