Kubernetes kube apiserver是否期望kube代理的存在?

Kubernetes kube apiserver是否期望kube代理的存在?,kubernetes,flannel,kubelet,kube-proxy,Kubernetes,Flannel,Kubelet,Kube Proxy,我一直在独立于kubernetes节点运行我的kubernetes masters。因此,我有kube-apiserver,kube-scheduler和kube-controllermanager在没有kubelet,kube-proxy或flannel的服务器上运行 到目前为止,这一切都非常有效。但是,今天我尝试设置并通过API服务器访问它。访问http://kube-master-0:8080/ui: 错误:“拨打tcp 172.16.72.12:9090:getsockopt:连接超时

我一直在独立于kubernetes节点运行我的kubernetes masters。因此,我有
kube-apiserver
kube-scheduler
kube-controllermanager
在没有
kubelet
kube-proxy
flannel
的服务器上运行

到目前为止,这一切都非常有效。但是,今天我尝试设置并通过API服务器访问它。访问
http://kube-master-0:8080/ui


错误:“拨打tcp 172.16.72.12:9090:getsockopt:连接超时”
试图达到:http://172.16.72.12:9090/'

这向我表明,API服务器正在尝试连接到pod IP,因为我们没有在此主机上运行flannel或kube代理,
172.16.72.12
IP将不会被路由


我是否需要在API服务器上运行kube proxy和flannel?有没有其他方法让API服务器代理UI?

这不是必需的,但它肯定会让您的生活更轻松


这不起作用的原因是kube代理没有将流量定向到服务。请尝试
kube节点:8080/ui
(假设您已将其与NodePort配置一样公开

,理论上,kube apiserver并不期待kube代理的存在。 这意味着kube apiserver将正确运行,接收并处理请求(主要是从
etcd
读取和写入)

但是,如果希望整个集群正常工作,则需要运行其他组件,例如:

  • 如果要计划
    pods
    部署
    ,则应运行
    kube调度程序
  • 如果希望
    pods
    containers
    在节点中运行,则必须运行
    kubelet
  • 如果您想保护
    复制
    ,则应运行
    控制器管理器
至于
kube代理
flannel
,它们是确保网络正常工作的关键部分。
负载平衡
服务
跨主机pod通信
等都取决于它们