كما أفهم ، يعمل خادم kube-api كعميل عند الاتصال بـ ETCD و Kubelet. يعمل كل من ETCD و Kubelet كخوادم لـ kube-api. مع بيئة آمنة (مصادقة ثنائية الاتجاه SSL) ، يحتاج خادم kube-api إلى شهادات ETCD و Kubelet وشهادة CA. ما لا أفهمه هو لماذا نحتاج إلى توفير المفاتيح الخاصة لـ ETCD (etcd-keyfile) و Kubelet (kubelet-client-key) أثناء تكوين kube-apiserver.yaml؟

answer

نظرًا لأن etcd يستخدم مصادقة TLS المتبادلة X.509 في kubernetes ، لذلك يجب أن يكون الخادم قادرًا على إثبات ملكيته لشهادة العميل المقدمة إلى الخادم ، وهذا يحدث عبر المفتاح الخاص

هناك خيارات مصادقة أخرى لـ etcd ، لكن kubernetes لا تستخدمها ، وليس من الواضح ما إذا كان خادم apiserver يقدم حتى خيار مصادقة غير TLS للاتصال بـ etcd ، حتى لو أردت ذلك