我已经设置了一个运行 Kali 的 novnc 容器并将其托管为 k8s 服务类型NodePort
。我可以通过 novnc 使用<master-node-ip>:<service-port>
.
使用ip地址+服务端口访问novnc
我正在尝试使用 nginx-ingress + HA 代理在自定义 URL 上托管服务。
当我使用 URL 访问 novnc 时,它会显示消息something went wrong, connection is closed
。
使用 url 访问 novnc
我尝试过同样的方法来托管一个简单的网页而没有问题,这个问题只发生在 novnc 服务上。
这些是部署的 YAML 文件:
创建命名空间
apiVersion: v1
kind: Namespace
metadata:
name: training
labels:
name: training
网络政策
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: training-netpol
namespace: training
spec:
podSelector: {}
policyTypes:
- Ingress
ingress:
- ports:
- port: 6080
- from:
- namespaceSelector:
matchLabels:
name: training
部署
apiVersion: apps/v1
kind: Deployment
metadata:
name: kali-deployment
namespace: training
spec:
selector:
matchLabels:
app: kali-vm
replicas: 1
template:
metadata:
labels:
app: kali-vm
spec:
containers:
- name: kali-vm
image: josephsim/kali-novnc
ports:
- containerPort: 6080
服务
apiVersion: v1
kind: Service
metadata:
name: kali-svc
namespace: training
spec:
type: NodePort
selector:
app: kali-vm
ports:
- protocol: TCP
port: 6080
入口控制器
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-controller
namespace: training
spec:
rules:
- host: test.kali-vm.training.com
http:
paths:
- backend:
serviceName: kali-svc
servicePort: 6080
/etc/hosts
我还使用文件将 HA 代理机器的 IP 地址指向 URL 。
我正在使用此设置:https ://www.youtube.com/watch?v=chwofyGr80c
我正在使用裸机 kubernetes 集群。关于如何使这项工作的任何想法?
编辑:尝试使用ConfigMap
,同样的问题仍然存在。
配置映射
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-services
namespace: training
data:
6080: "training/kali-svc:6080"