[英]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.