如何 运行 没有 SSL 网络的 Kubernetes
How to run Kubernetes without SSL network
我想开始为 Kuberntes 项目开发。我想调试master和worker之间的网络。
目前他们正在使用 x509 证书进行 SSL 通信,我需要查看此通信。
我在 linux 机器上安装了 Kubernetes 集群,并插入了 kubeadm 和 weave 网络插件,现在我想禁用 SSL 网络以便能够看到它们之间的所有流量。
我尝试了 回答中描述的步骤并且:
- 已从
/etc/kubernetes/manifests/kube-apiserver.yaml
中删除 --insecure-port=0
- 将
--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
在 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。
我想开始为 Kuberntes 项目开发。我想调试master和worker之间的网络。
目前他们正在使用 x509 证书进行 SSL 通信,我需要查看此通信。
我在 linux 机器上安装了 Kubernetes 集群,并插入了 kubeadm 和 weave 网络插件,现在我想禁用 SSL 网络以便能够看到它们之间的所有流量。
我尝试了
- 已从
/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
--insecure-port=0
我创建了新的部署: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。