Mai*_*ppe 4 portforwarding kubernetes
这是我了解问题流的方式:
但是我的容器提供了另一个端口,例如3000。如何在步骤2或3中进行类似于80:3000的端口映射?
kubernetes文档中有诸如targetport和这样的令人困惑的选项hostport,这些选项对我没有帮助。kubectl port-forward似乎只将本地(开发)计算机的端口转发到特定的Pod进行调试。
这些是我用于在Google云中设置服务的命令:
kubectl run test-app --image=eu.gcr.io/myproject/my_app --port=80
kubectl expose deployment test-app --type="LoadBalancer"
Run Code Online (Sandbox Code Playgroud)
我发现我需要在第二个命令中添加一些参数:
kubectl expose deployment test-app --type="LoadBalancer" --target-port=3000 --port=80
Run Code Online (Sandbox Code Playgroud)
这将创建一个服务,该服务将传入的http流量(在端口80上)定向到端口3000上的其pod。
一个更好的方式做这件事是YAML文件service.yaml,并deployment.yaml和通话
kubectl create -f deployment.yaml
kubectl create -f service.yaml
Run Code Online (Sandbox Code Playgroud)
文件中包含这些内容的位置
# deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: app-deployment
spec:
replicas: 2
template:
metadata:
labels:
app: test-app
spec:
containers:
- name: user-app
image: eu.gcr.io/myproject/my_app
ports:
- containerPort: 3000
Run Code Online (Sandbox Code Playgroud)
和
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: app-service
spec:
selector:
app: test-app
ports:
- port: 80
targetPort: 3000
type: LoadBalancer
Run Code Online (Sandbox Code Playgroud)
请注意,服务的选择器必须与部署的标签匹配。
| 归档时间: |
|
| 查看次数: |
8175 次 |
| 最近记录: |