我需要从端口 80 访问 jupyter-lab 并将 k8s 配置重定向到 8888。这是我设置自己学习 k8s 网络的问题,并且还要让 jupyter-lab 运行。
这是 MetalLB 配置图。本地 DNS 将“jupyter-lab.k8s.home”解析为这些 IP 地址
---
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 10.10.10.24-10.10.10.26
这是我的 LoadBalancer 指向入口控制器,这不是暴露端口 80 并重定向到目标 8888 吗?
---
apiVersion: v1
kind: Service
metadata:
name: jupyter-lab-lb
namespace: default
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 8888
selector:
app: jupyter-lab-ingress
这是我的入口控制器,它是否正确配置了指向 CIP 的入口对象?
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: jupyter-lab-ingress
annotations:
# nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io: /
spec:
rules:
- host: jupyter-lab.k8s.home
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: jupyter-lab-cip
port:
number: 8888
这是针对我的 jupyer-lab 部署的 CIP
---
apiVersion: v1
kind: Service
metadata:
name: jupyter-lab-cip
namespace: default
spec:
type: ClusterIP
ports:
- port: 8888
targetPort: 8888
selector:
app: jupyter-lab
这是我在端口 8888 上运行 jupyter-lab 的部署
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: jupyter-lab-dpt
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: jupyter-lab
template:
metadata:
labels:
app: jupyter-lab
spec:
volumes:
- name: jupyter-lab-home
persistentVolumeClaim:
claimName: jupyter-lab-pvc
containers:
- name: jupyter-lab
image: docker.io/jupyter/tensorflow-notebook
ports:
- containerPort: 8888
volumeMounts:
- name: jupyter-lab-home
mountPath: /var/jupyter-lab_home
env:
- name: "JUPYTER_ENABLE_LAB"
value: "yes"
我确实看到了 jupyter-lab.k8s.home:8888,但我无法使用获得的令牌登录 kubectl logs -n default jupyter-lab-dpt-dfbd554b7-bf7fk
如何设置配置以便我可以浏览到http://jupyter-lab.k8s.home?noportnumber