需求:研发须要调试部署的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