kubectl proxy 讓外部網絡訪問K8S service的ClusterIP

使用kubectl proxy命令就可以使API server監聽在本地的8001端口上:

$ kubectl proxy --port=8009
Starting to serve on 127.0.0.1:8009

如果想通過其它主機訪問就需要指定監聽的地址:

$ kubectl proxy --address=0.0.0.0  --port=8009
Starting to serve on [::]:8009

此時通過curl訪問會出現未認證的提示:

$ curl -X GET -L http://k8s-master:8009/
<h3>Unauthorized</h3>

設置API server接收所有主機的請求:

$ kubectl proxy --address='0.0.0.0'  --accept-hosts='^*$' --port=8009
Starting to serve on [::]:8009

訪問正常:

$ curl -X GET -L http://k8s-master:8009/
{
  "paths": [
    "/api",
    "/api/v1",
    ...
  ]
}

 

正常:

curl http://[k8s-master]:8009/api/v1/namespaces/[namespace-name]/services/[service-name]/proxy

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章