应用场景
只要 pod 在 kubernetes 里面拉起来,就可以在本地终端快速调试应用,注意此方法只适合开发调试,长久使用在生产环境不推荐
使用命令
kubectl port-forward 资源名 本地端口:容器端口
转发原理
本地端口建立的连接将被转发到运行应用 Pod 的容器端口。 通过此连接,你可以在本地终端来快速调试在 Pod 中运行的应用
应用配置
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-demo-app
spec:
replicas: 1
selector:
matchLabels:
app: my-demo-app
template:
metadata:
labels:
app: my-demo-app
spec:
containers:
- name: my-demo-app
image: demo_app:v1
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9999
apiVersion: v1
kind: Service
metadata:
name: my-demo-app
spec:
selector:
app: my-demo-app
ports:
- protocol: TCP
port: 9999
targetPort: 9999
type: ClusterIP
使用命令
# Pod 层面
kubectl port-forward my-demo-app-5d7d96c594-57pzw 8888:9999
kubectl port-forward pods/my-demo-app-5d7d96c594-57pzw 8888:9999
kubectl port-forward deployment/my-demo-app 8888:9999
kubectl port-forward replicaset/my-demo-app 8888:9999
# Service 层面
kubectl port-forward service/my-demo-app 8888:9999
# 让 kubectl 帮你选择随机端口,避免端口冲突
kubectl port-forward my-demo-app-5d7d96c594-57pzw :9999