需求:研發須要調試部署的pod是否能正常提供訪問,但又不對pod進行暴露到集羣外。node
實現:經過Kubernetes的Port Forward機制對本機端口映射到pod端口來實現nginx
官網下載頁面:https://kubernetes.io/docs/tasks/tools/install-kubectl/windows
下載對應Kubernetes 相同版本的kubectl:api
https://storage.googleapis.com/kubernetes-release/release/v1.14.1/bin/windows/amd64/kubectl.exe瀏覽器
把下載的kubectl.exe文件存放在C:\k8s\bin目錄下,並把該目錄添加到PATH中(步驟略)app
須要獲取配置文件:ide
1)通常部署的Kubernetes,會生成 $HOME/.kube/config,把該目錄下的config文件,存放在Windows本地對應家目錄C:\Users\admin\.kube下測試
2)若是rancher部署的,可在集羣首頁查看配置文件,複製下來也存放在帳號的家目錄google
3)而後cmd中查看集羣spa
kubectl get node
說明配置kubectl成功。
先建立一個nginx,指定端口爲80
cat > my-nginx.yaml <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
spec:
replicas: 1
selector:
matchLabels:
k8s-app: my-nginx
template:
metadata:
labels:
k8s-app: my-nginx
spec:
containers:
- name: my-nginx
image: nginx:1.9
ports:
- containerPort: 80
EOF
#建立pod
kubectl create -f my-nginx.yaml
#查看pod名字信息
kubectl get svc,pod -o wide
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