Kubernetes Port Forward 機制訪問 pod


 

需求:研發需要調試部署的pod是否能正常提供訪問,但又不對pod進行暴露到集群外。

實現:通過Kubernetes的Port Forward機制對本機端口映射到pod端口來實現

 

一、單集群配置

1、安裝kubectl

官網下載頁面:https://kubernetes.io/docs/tasks/tools/install-kubectl/

下載對應Kubernetes 相同版本的kubectl:

https://storage.googleapis.com/kubernetes-release/release/v1.14.1/bin/windows/amd64/kubectl.exe

 把下載的kubectl.exe文件存放在C:\k8s\bin目錄下,並把該目錄添加到PATH中(步驟略)

  

2、配置kubectl

1)需要獲取配置文件:

a、一般部署的Kubernetes,會生成 $HOME/.kube/config,把該目錄下的config文件,存放在Windows本地對應家目錄C:\Users\admin\.kube下

 

 b、如果rancher部署的,可在集群首頁查看配置文件,復制下來也存放在賬號的家目錄

 

 

2)然后cmd中查看集群

kubectl get node

說明配置kubectl成功。

 

3、設置轉發端口

1)把本地3080端口轉發到容器的80端口

kubectl port-forward my-nginx-6d7ddd766f-4fxxc 3080:80

Forwarding from 127.0.0.1:3080 -> 80
Forwarding from [::1]:3080 -> 80

輸出如上,說明轉發成功。如果是部署在其他namespace上,需要用 -n 指定namespace。該窗口不能關閉。

 

2)本地瀏覽器訪問

127.0.0.1:3080

 

二、多集群配置

如果是多個集群(測試、正式、CI/CD等環境),有兩種方式進行配置。

1、指定kubeconfig文件

將多個集群的 config 文件都存放在 .kube 文件夾中,命令指定文件絕對路徑。

kubectl --kubeconfig="C:\Users\admin\.kube\dev-config" get pod --all-namespaces

 

2、指定 context

把所有的集群文件合並為一個文件config。

apiVersion: v1
kind: Config
clusters:
- name: "production"
  cluster:
    server: "https://rancher.wmq.com/k8s/clusters/c-xaw"
- name: "develop"
  cluster:
    server: "https://rancher.wmq.com/k8s/clusters/c-xaq"

users:
- name: "u-42lyr7ytst"
  user:
    token: "kubeconfig-u-42lyr7ytst.c-x497w:756z5v8s84cch4444kx33333395zg4klxwtaaabqrg"
- name: "u-42lyr7ytst_dev"
  user:
    token: "kubeconfig-u-42lyr7ytst.c-xg99q:6sm7hhdlfx44449c4rs3333333333g3vzcjdjcaaazzq"

contexts:
- name: "prod"
  context:
    user: "u-42lyr7ytst"
    cluster: "production"
- name: "dev"
  context:
    user: "u-42lyr7ytst_dev"
    cluster: "develop"

current-context: "dev"

執行下面命令即可

kubectl --context dev get pod --all-namespaces

 

 三、gui軟件

如果覺得上面步驟很麻煩,這里推薦一個開源的gui軟件:Kube Forwarder;支持多集群,只需要簡單的導入各個集群的 kubeconfig 文件即可,很方便使用。

如下圖:

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM