如何 运行 没有 SSL 网络的 Kubernetes

How to run Kubernetes without SSL network

我想开始为 Kuberntes 项目开发。我想调试master和worker之间的网络。
目前他们正在使用 x509 证书进行 SSL 通信,我需要查看此通信。

我在 linux 机器上安装了 Kubernetes 集群,并插入了 kubeadm 和 weave 网络插件,现在我想禁用 SSL 网络以便能够看到它们之间的所有流量。

我尝试了 回答中描述的步骤并且:

我创建了新的部署:kubectl run nginx --image nginx 在 master 和 worker 中 运行 tcpdump -i ens3 -w ./traffic.pcap

部署失败 运行。
我检查了 kubelet 日志:journalctl -u kubelet:

Apr 01 12:16:57 master kubelet[10614]: E0401 12:16:57.238125   10614 pod_workers.go:190] Error syncing pod 26ead5e19e83a1d9426b732dc183b75d ("kube-controller-manager-master_kube-system(26ead5e19e83a1d9426b732dc183b75d)"), skipping: failed to "StartContainer" for "kube-controller-manager" with CrashLoopBackOff: "Back-off 5m0s restarting failed container=kube-controller-manager pod=kube-controller-manager-master_kube-system(26ead5e19e83a1d9426b732dc183b75d)"
Apr 01 12:16:59 master kubelet[10614]: E0401 12:16:59.238970   10614 pod_workers.go:190] Error syncing pod 448824ad8c321fa307186a36765b0ee4 ("kube-scheduler-master_kube-system(448824ad8c321fa307186a36765b0ee4)"), skipping: failed to "StartContainer" for "kube-scheduler" with CrashLoopBackOff: "Back-off 5m0s restarting failed container=kube-scheduler pod=kube-scheduler-master_kube-system(448824ad8c321fa307186a36765b0ee4)"  

如何禁用 Kubernetes SSL 通信并调试它以进行开发?

添加 --insecure-bind-address 后调度程序和控制器管理器没有启动,因为这两个组件不支持此标志。所以你删除它并且部署应该工作。

您可以通过下面的 运行 命令检查日志来验证这一点,您应该会看到一个错误 unknown flag: --insecure-bind-address

kubectl logs kube-controller-manager-master_kube-system -n kube-system

kubectl logs kube-scheduler-master_kube-system -n kube-system

编辑:

对于 API 服务器和 kubelet 之间的 http 通信,您可以在 API 服务器中将 --kubelet-https 设置为 false。