【发布时间】:2019-11-10 22:23:36
【问题描述】:
我是 k8s 的新手 我有一个部署文件在下面
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins-deployment
spec:
replicas: 3
selector:
matchLabels:
component: web
template:
metadata:
labels:
component: web
spec:
containers:
- name: jenkins
image: jenkins
ports:
- containerPort: 8080
- containerPort: 50000
我的服务文件如下:
apiVersion: v1
kind: Service
metadata:
name: jenkins-svc
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 8080
name: http
selector:
component: web
我的入口文件是
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: jenkins-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: jenkins.xyz.com
http:
paths:
- path: /
backend:
serviceName: jenkins-svc
servicePort: 80
我正在使用 nginx 入口项目,我的集群是使用具有 3 个节点的 kubeadm 创建的 nginx ingress
我首先运行了强制命令
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
当我尝试访问 jenkins.xyz.com 时,它不起作用 当我尝试命令时
kubectl get ing
ing 资源没有获得分配给它的 IP 地址
【问题讨论】:
-
您是否更新了 DNS 记录,以便将“jenkins.xyz.com”解析为 nginx-ingress-controller 的 IP?访问 jenkins.xyz.com 时出现什么错误?
-
您好,我不知道 dns 记录,我会在访问 jenkis.xyz.com 时检查它,我收到 504 网关超时
-
我最近看到了这个问题stackoverflow.com/questions/52989993/… 并应用了命令 kubectl apply -f raw.githubusercontent.com/kubernetes/ingress-nginx/master/… 然后当我运行命令 kubectl get svc -n ingress-nginx 我看到一个集群 IP 和端口 80: 30859、443:31064 和外部 IP 为无
-
是的,您需要为您的服务使用“负载平衡器”类型,以便您的云提供商为您提供 IP。在您的配置中,它是“NodePort”服务,因此不会分配 IP。您可以在这里查看我的答案以了解:stackoverflow.com/questions/54784460/aws-vpc-k8s-load-balancing/…
-
您好,我很抱歉完全理解我是否必须在我的 Jenkins-Service 文件中将服务类型从 ClusterIP 更改为 LoadBalancer ?我确实尝试过这样做,但遇到了同样的问题
标签: kubernetes kubectl kubernetes-ingress kubeadm nginx-ingress