我想开始为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
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通信并对其进行调试以进行开发?
答案 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。