我正在尝试在 pod 上公开一个端口 8080,这样我就可以直接从服务器获取 wget。使用端口转发一切正常(kubectl --namespace jenkins port-forward pods/jenkins-6f8b486759-6vwkj 9000:8080
),我能够连接到 127.0.0.1:9000
但是当我尝试避免端口转发并永久打开端口时(kubectl expose deployment jenkins --type=LoadBalancer -njenkins
):
我在 svc 中看到它(kubectl describe svc jenkins -njenkins
):
Name: jenkins
Namespace: jenkins
Labels: <none>
Annotations: <none>
Selector: app=jenkins
Type: LoadBalancer
IP Families: <none>
IP: 10.111.244.192
IPs: 10.111.244.192
Port: port-1 8080/TCP
TargetPort: 8080/TCP
NodePort: port-1 31461/TCP
Endpoints: 172.17.0.2:8080
Port: port-2 50000/TCP
TargetPort: 50000/TCP
NodePort: port-2 30578/TCP
Endpoints: 172.17.0.2:50000
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
但端口仍然没有启动,netstat
没有显示任何内容。应该如何正确完成?
使用 minikube 版本:v1.20.0,pod yaml 以防万一:
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
securityContext:
containers:
- name: jenkins
image: jenkins/jenkins:lts
ports:
- name: http-port
containerPort: 8080
hostPort: 8080
- name: jnlp-port
containerPort: 50000
volumeMounts:
- name: task-pv-storage
mountPath: /var/jenkins_home
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: task-pv-claim
最佳答案
问题出在 minikube 本身 - 在检查 kubectl get events --all-namespaces
时发现了它,发生了一些奇怪的事情,看起来内部代理组件已损坏。
关于kubernetes pod 端口暴露/转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70389601/