最近我嘗試在中國的AWS上使用Kubernetes v1.7.3和jenkins v2.73.2建立CI/CD流(GFW阻塞dockerhub)。使用相同的URL顯示相同的服務,但有兩個不同的端口與traefik?
現在我可以用traefik公開服務,但似乎我不能用兩個不同的端口使用相同的URL公開相同的服務。
理想我想揭露http://jenkins.mydomain.com爲端口80上詹金斯的用戶界面,以及端口的詹金 - 從(詹金斯發現)50000 例如,我想這個工作:
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: jenkins namespace: default spec: rules: - host: jenkins.mydomain.com http: paths: - path:/ backend: serviceName: jenkins-svc servicePort: 80 - host: jenkins.mydomain.com http: paths: - path:/ backend: serviceName: jenkins-svc servicePort: 50000
和我的詹金斯-SVC被定義爲
apiVersion: v1 kind: Service metadata: name: jenkins-svc labels: run: jenkins spec: selector: run: jenkins ports: - port: 80 targetPort: 8080 name: http - port: 50000 targetPort: 50000 name: slave
在現實中,後者的規則將覆蓋前規則。
此外,有兩個插件我嘗試過:kubernetes-cloud和kubernetes。 使用前一選項,我無法配置jenkins-tunnel URL,所以從站無法與主站連接;與後者的選項,我不能從私人碼頭註冊表,如AWS ECR(沒有地方配置憑據),因此無法創建從屬(imagePullError)。
最後,我真的只是想讓詹金斯工作(創建奴隸與我的自定義圖像,建立奴隸和刪除工作完成後的奴隸),歡迎任何其他解決方案。
爲了能夠從ECR拉你,你可以具有適當權限的AWS實例角色。拉將使用實例元數據並透明地工作。 – vascop