您好,登錄后才能下訂單哦!
k8s? 訪問pod? 和service? 主要有以下幾種方式
hostNetwork
hostPort
NodePort
LoadBalancer
Ingress
hostNetwork 主機網絡模式 ,相當于 docker run --net=host?
示例演示?
apiVersion:?v1 kind:?Pod metadata: ??name:?nginx-host spec: ??hostNetwork:?true ??containers: ????-?name:?nginx-host ??????image:?nginx
?kubectl create -f hostNetwork.yaml
查看pod 的ip 為 node 節(jié)點的ip,選擇這種網絡模式 pod? 調度 ,pod? 會根據節(jié)點選擇不同的node ip 發(fā)生變化,port 端口,需要保持不與宿主機上的port 端口發(fā)生沖突。
hostport 模式?
hostPort是直接將容器的端口與所調度的節(jié)點上的端口路由,這樣用戶就可以通過宿主機的IP加上來訪問Pod了
示例演示
apiVersion:?v1 kind:?Pod metadata: ??name:?nginx-port spec: ??hostNetwork:?true ??containers: ????-?name:?nginx-host ??????image:?nginx ??????ports:? ????????-?containerPort:?80 ??????????hostPort:?80
kubectl create -f hostPort.yaml
curl 192.168.222.250:80/index.html
pod 被調度不同節(jié)點,ip 就會發(fā)生變化,需要維護pod? 與宿主機間的對應關系
NodePort 模式
NodePort 模式 k8s service 默認情況使用 cluster IP 的方式, 這樣service 就會產生一個Cluster IP 的模式,這個cluster ip 默認只能在集群內部訪問,想要在外部直接訪問 service ,需要將 service type 的類型修改為 nodePort 模式 , nodePort值,范圍是30000-32767
示例如下
apiVersion:?v1 kind:?Pod metadata: ??name:?nginx ??labels: ????name:?nginx spec: ??containers: ????-?name:?nginx ??????image:?nginx ??????ports: ????????-?containerPort:?80 --- kind:?Service apiVersion:?v1 metadata: ??name:?nginx spec: ??type:?NodePort ??ports:? ????-?port:?80 ??????nodePort:?30008??#??nodePort值,范圍是30000-32767 ??selector: ????name:?nginx
kubectl apply? -f Node_pod.yaml
訪問pod 的三種方式
集群內部訪問
pod ip? :curl 10.244.1.245
ClusterIP :curl 10.1.250.193
集群外部訪問
NodePort: master:
http://192.168.222.240:30008?# 使用 NodePort 模式會在 master 和node 節(jié)點上新開一個端口 ,使用多個NodePort 模式需要維護好 端口的對應關系,防止出現端口沖突LoadBalancer? 需要負載均衡器的 支持,一般云服務商都有提供
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。