[英]Traefik Ingress not opening port
我正在为我们销售的应用程序设置开发环境。
由于我们使用此环境进行主动开发,因此有必要像客户的给定环境一样构建它。 客户使用Kubernetes和traefik。 所以我们也在开发中做。
幸运的是,我们为客户环境获得了原始的YAML文件,因此我们只需稍加修改即可使用它们。
在我们设置了Ingress和Traefik Ingress控制器后,我假设kubernetes将打开系统上的给定端口,因此可以从外部访问应用程序。 但它没有,没有任何东西正在侦听端口443和80。
我仔细检查了配置(因为我们可以访问客户群,我可以比较他们的env和我们的env) - 但是所有内容看起来完全相同,尽管IP地址和名称空间的名称。
在traefik控制器pod的日志中,我在这里看不到任何错误。 只有我看到一些TLS证书错误。 有时在我的测试中,我看到在打开端口80时拒绝“绑定”的权限,但目前没有。
我(和客户)将traefik toml文件定义为配置映射,并将其作为卷添加到/ pod/conf/traefik.toml上。 此路径作为pod的参数给出,并根据日志使用该文件。
运行kubernetes的服务器是Windows Server 2016主机上的Ubuntu Server 18.04 Hyper-V计算机。 使用apt-get(非snap)部署Kubernetes,并使用kubeadm设置集群。
这是群集配置:
root@srv-app-003:~# kubeadm config view
apiServer:
extraArgs:
authorization-mode: Node,RBAC
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta1
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: ""
controllerManager: {}
dns:
type: CoreDNS
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
kubernetesVersion: v1.14.1
networking:
dnsDomain: cluster.local
podSubnet: 192.168.0.0/16
serviceSubnet: 10.96.0.0/12
scheduler: {}
这是节点配置:
root@srv-app-003:~# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
srv-app-003 Ready master 12d v1.14.1 192.168.6.203 <none> Ubuntu 18.04.2 LTS 4.15.0-48-generic docker://18.9.2
部署有4个Pod,它们都运行没有问题(我也可以在本地直接从pod中卷曲网站)。
我在这里放了一些重要的yaml文件: https : //gitlab.com/group15/my-awesome-project
告诉我你是否需要更多(服务帐户,角色(绑定)等...)
主要目标是运行开发环境,并且可以通过192.168.6.0网络内的HTTP访问。 我没有让它运行起来。 请帮帮我,我做错了什么?
在我看来,问题来自您的端口定义。 在您提供的部署中,仅定义了8080和9443。 另外,它们未映射到主机端口。
我建议你通过它的头盔图来部署Traefik。 这是确保为复杂的kubernetes应用程序提供强大而简单的部署的一种方式。
如果您查看此图表,您会在此处看到端口被定义为“port”和“hostPort”。 这里有一个例子,由helm为nginx控制器生成的内容(它非常接近traefik需要的内容):
name: ingress-nginx-controller
ports:
- containerPort: 80
hostPort: 80
name: http
protocol: TCP
- containerPort: 443
hostPort: 443
name: https
protocol: TCP
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.