ingress"/>
ingress
根据一些参考文档,学习部署 ingress-http服务,出现了一些error信息,网上难找直接的处理方式,最后才发现是资源清单使用问题,还是得看官方文档说明。
创建ingress-http.yaml
使用的基本yaml配置如下——
# 文件名称: ingress-http.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: ingress-httpnamespace: dev
spec:rules:- host: nginx.itheimahttp:paths:- path: /backend:serviceName: nginx-serviceservicePort: 80- host: tomcat.itheimahttp:paths:- path: /backend:serviceName: tomcat-serviceservicePort: 8080
部署ingress服务
# 部署服务
kubectl create -f ingress-http.yaml
出现error信息
错误一:
error: resource mapping not found for name: "ingress-http" namespace: "dev" from "ingress-http.yaml": no matches for kind "Ingress" in version "extensions/v1beta1"
ensure CRDs are installed first
处理方式——
根据官方文档:Ingress对象资源清单说明
apiVersion: networking.k8s.io/v1
重新部署,仍然出现error信息
错误二:
* spec.rules[0].http.paths[0].pathType: Required value: pathType must be specified
paths下必须有pathType,否则创建就会失败,官方文档中也有说明
PS:附上官方文档的对应的截图
正确的yaml配置
apiVersion: networking.k8s.io/v1 # 注意最新的官方给定
kind: Ingress
metadata:name: ingress-httpnamespace: dev
spec:rules:- host: nginx.itheimahttp:paths:- path: /pathType: Prefix # requiredbackend:serviceName: nginx-serviceservicePort: 80- host: tomcat.itheimahttp:paths:- path: /pathType: Prefix # requiredbackend:serviceName: tomcat-serviceservicePort: 8080
# 最终部署情况查看——
$ kubectl get ing -n dev
NAME CLASS HOSTS ADDRESS PORTS AGE
ingress-http <none> nginx.itheima,tomcat.itheima 80 12m$ kubectl describe ing ingress-http -n dev
Name: ingress-http
Labels: <none>
Namespace: dev
Address:
Ingress Class: <none>
Default backend: <default>
Rules:Host Path Backends---- ---- --------nginx.itheima/ nginx-service:80 (10.244.1.91:80,10.244.1.92:80,10.244.1.93:80)tomcat.itheima/ tomcat-service:8080 (10.244.2.100:8080,10.244.2.101:8080,10.244.2.102:8080)
Annotations: <none>
Events: <none>
更多推荐
ingress
发布评论