如何在没有SSL网络的情况下运行Kubernetes

时间:2020-04-01 12:20:01

标签: ssl networking kubernetes kube-apiserver

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

我在具有kubeadm的Linux机器上安装了Kubernetes集群,并编织了网络插件,现在我想禁用SSL网络,以便能够查看它们之间的所有流量。

我尝试了在this答案中描述的步骤,并且:

  • --insecure-port=0中删除了/etc/kubernetes/manifests/kube-apiserver.yaml
  • --insecure-bind-address=0.0.0.0添加到/etc/kubernetes/manifests/kube-controller-manager.yaml/etc/kubernetes/manifests/kube-scheduler.yaml
  • 重新启动kubelet service kubelet restart

我创建了新的部署:kubectl run nginx --image nginx在主服务器和工作服务器上运行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通信并对其进行调试以进行开发?

1 个答案:

答案 0 :(得分:2)

添加--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 Server和kubelet之间的http通信,可以在API Server中将--kubelet-https设置为false。