- apiVersion: v1
- kind: Namespace
- metadata:
- labels:
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- name: ingress-nginx
- ---
- apiVersion: v1
- automountServiceAccountToken: true
- kind: ServiceAccount
- metadata:
- labels:
- app.kubernetes.io/component: controller
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx
- namespace: ingress-nginx
- ---
- apiVersion: v1
- kind: ServiceAccount
- metadata:
- labels:
- app.kubernetes.io/component: admission-webhook
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx-admission
- namespace: ingress-nginx
- ---
- apiVersion: rbac.authorization.k8s.io/v1
- kind: Role
- metadata:
- labels:
- app.kubernetes.io/component: controller
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx
- namespace: ingress-nginx
- rules:
- - apiGroups:
- - ""
- resources:
- - namespaces
- verbs:
- - get
- - apiGroups:
- - ""
- resources:
- - configmaps
- - pods
- - secrets
- - endpoints
- verbs:
- - get
- - list
- - watch
- - apiGroups:
- - ""
- resources:
- - services
- verbs:
- - get
- - list
- - watch
- - apiGroups:
- - networking.k8s.io
- resources:
- - ingresses
- verbs:
- - get
- - list
- - watch
- - apiGroups:
- - networking.k8s.io
- resources:
- - ingresses/status
- verbs:
- - update
- - apiGroups:
- - networking.k8s.io
- resources:
- - ingressclasses
- verbs:
- - get
- - list
- - watch
- - apiGroups:
- - ""
- resourceNames:
- - ingress-controller-leader
- resources:
- - configmaps
- verbs:
- - get
- - update
- - apiGroups:
- - ""
- resources:
- - configmaps
- verbs:
- - create
- - apiGroups:
- - ""
- resources:
- - events
- verbs:
- - create
- - patch
- ---
- apiVersion: rbac.authorization.k8s.io/v1
- kind: Role
- metadata:
- labels:
- app.kubernetes.io/component: admission-webhook
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx-admission
- namespace: ingress-nginx
- rules:
- - apiGroups:
- - ""
- resources:
- - secrets
- verbs:
- - get
- - create
- ---
- apiVersion: rbac.authorization.k8s.io/v1
- kind: ClusterRole
- metadata:
- labels:
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx
- rules:
- - apiGroups:
- - ""
- resources:
- - configmaps
- - endpoints
- - nodes
- - pods
- - secrets
- - namespaces
- verbs:
- - list
- - watch
- - apiGroups:
- - ""
- resources:
- - nodes
- verbs:
- - get
- - apiGroups:
- - ""
- resources:
- - services
- verbs:
- - get
- - list
- - watch
- - apiGroups:
- - networking.k8s.io
- resources:
- - ingresses
- verbs:
- - get
- - list
- - watch
- - apiGroups:
- - ""
- resources:
- - events
- verbs:
- - create
- - patch
- - apiGroups:
- - networking.k8s.io
- resources:
- - ingresses/status
- verbs:
- - update
- - apiGroups:
- - networking.k8s.io
- resources:
- - ingressclasses
- verbs:
- - get
- - list
- - watch
- ---
- apiVersion: rbac.authorization.k8s.io/v1
- kind: ClusterRole
- metadata:
- labels:
- app.kubernetes.io/component: admission-webhook
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx-admission
- rules:
- - apiGroups:
- - admissionregistration.k8s.io
- resources:
- - validatingwebhookconfigurations
- verbs:
- - get
- - update
- ---
- apiVersion: rbac.authorization.k8s.io/v1
- kind: RoleBinding
- metadata:
- labels:
- app.kubernetes.io/component: controller
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx
- namespace: ingress-nginx
- roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: ingress-nginx
- subjects:
- - kind: ServiceAccount
- name: ingress-nginx
- namespace: ingress-nginx
- ---
- apiVersion: rbac.authorization.k8s.io/v1
- kind: RoleBinding
- metadata:
- labels:
- app.kubernetes.io/component: admission-webhook
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx-admission
- namespace: ingress-nginx
- roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: ingress-nginx-admission
- subjects:
- - kind: ServiceAccount
- name: ingress-nginx-admission
- namespace: ingress-nginx
- ---
- apiVersion: rbac.authorization.k8s.io/v1
- kind: ClusterRoleBinding
- metadata:
- labels:
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx
- roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: ingress-nginx
- subjects:
- - kind: ServiceAccount
- name: ingress-nginx
- namespace: ingress-nginx
- ---
- apiVersion: rbac.authorization.k8s.io/v1
- kind: ClusterRoleBinding
- metadata:
- labels:
- app.kubernetes.io/component: admission-webhook
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx-admission
- roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: ingress-nginx-admission
- subjects:
- - kind: ServiceAccount
- name: ingress-nginx-admission
- namespace: ingress-nginx
- ---
- apiVersion: v1
- data:
- allow-snippet-annotations: "true"
- kind: ConfigMap
- metadata:
- labels:
- app.kubernetes.io/component: controller
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx-controller
- namespace: ingress-nginx
- ---
- apiVersion: v1
- kind: Service
- metadata:
- labels:
- app.kubernetes.io/component: controller
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx-controller
- namespace: ingress-nginx
- spec:
- ports:
- - appProtocol: http
- name: http
- port: 80
- protocol: TCP
- targetPort: http
- - appProtocol: https
- name: https
- port: 443
- protocol: TCP
- targetPort: https
- selector:
- app.kubernetes.io/component: controller
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- type: NodePort
- ---
- apiVersion: v1
- kind: Service
- metadata:
- labels:
- app.kubernetes.io/component: controller
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx-controller-admission
- namespace: ingress-nginx
- spec:
- ports:
- - appProtocol: https
- name: https-webhook
- port: 443
- targetPort: webhook
- selector:
- app.kubernetes.io/component: controller
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- type: ClusterIP
- ---
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- labels:
- app.kubernetes.io/component: controller
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx-controller
- namespace: ingress-nginx
- spec:
- minReadySeconds: 0
- revisionHistoryLimit: 10
- selector:
- matchLabels:
- app.kubernetes.io/component: controller
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- template:
- metadata:
- labels:
- app.kubernetes.io/component: controller
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- spec:
- containers:
- - args:
- - /nginx-ingress-controller
- - --election-id=ingress-controller-leader
- - --controller-class=k8s.io/ingress-nginx
- - --ingress-class=nginx
- - --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
- - --validating-webhook=:8443
- - --validating-webhook-certificate=/usr/local/certificates/cert
- - --validating-webhook-key=/usr/local/certificates/key
- env:
- - name: POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- - name: LD_PRELOAD
- value: /usr/local/lib/libmimalloc.so
- image: registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.1.1
- imagePullPolicy: IfNotPresent
- lifecycle:
- preStop:
- exec:
- command:
- - /wait-shutdown
- livenessProbe:
- failureThreshold: 5
- httpGet:
- path: /healthz
- port: 10254
- scheme: HTTP
- initialDelaySeconds: 10
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
- name: controller
- ports:
- - containerPort: 80
- name: http
- protocol: TCP
- - containerPort: 443
- name: https
- protocol: TCP
- - containerPort: 8443
- name: webhook
- protocol: TCP
- readinessProbe:
- failureThreshold: 3
- httpGet:
- path: /healthz
- port: 10254
- scheme: HTTP
- initialDelaySeconds: 10
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
- resources:
- requests:
- cpu: 100m
- memory: 90Mi
- securityContext:
- allowPrivilegeEscalation: true
- capabilities:
- add:
- - NET_BIND_SERVICE
- drop:
- - ALL
- runAsUser: 101
- volumeMounts:
- - mountPath: /usr/local/certificates/
- name: webhook-cert
- readOnly: true
- dnsPolicy: ClusterFirst
- nodeSelector:
- kubernetes.io/os: linux
- serviceAccountName: ingress-nginx
- terminationGracePeriodSeconds: 300
- volumes:
- - name: webhook-cert
- secret:
- secretName: ingress-nginx-admission
- ---
- apiVersion: batch/v1
- kind: Job
- metadata:
- labels:
- app.kubernetes.io/component: admission-webhook
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx-admission-create
- namespace: ingress-nginx
- spec:
- template:
- metadata:
- labels:
- app.kubernetes.io/component: admission-webhook
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx-admission-create
- spec:
- containers:
- - args:
- - create
- - --host=ingress-nginx-controller-admission,ingress-nginx-controller-admission.$(POD_NAMESPACE).svc
- - --namespace=$(POD_NAMESPACE)
- - --secret-name=ingress-nginx-admission
- env:
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1
- imagePullPolicy: IfNotPresent
- name: create
- securityContext:
- allowPrivilegeEscalation: false
- nodeSelector:
- kubernetes.io/os: linux
- restartPolicy: OnFailure
- securityContext:
- fsGroup: 2000
- runAsNonRoot: true
- runAsUser: 2000
- serviceAccountName: ingress-nginx-admission
- ---
- apiVersion: batch/v1
- kind: Job
- metadata:
- labels:
- app.kubernetes.io/component: admission-webhook
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx-admission-patch
- namespace: ingress-nginx
- spec:
- template:
- metadata:
- labels:
- app.kubernetes.io/component: admission-webhook
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx-admission-patch
- spec:
- containers:
- - args:
- - patch
- - --webhook-name=ingress-nginx-admission
- - --namespace=$(POD_NAMESPACE)
- - --patch-mutating=false
- - --secret-name=ingress-nginx-admission
- - --patch-failure-policy=Fail
- env:
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1
- imagePullPolicy: IfNotPresent
- name: patch
- securityContext:
- allowPrivilegeEscalation: false
- nodeSelector:
- kubernetes.io/os: linux
- restartPolicy: OnFailure
- securityContext:
- fsGroup: 2000
- runAsNonRoot: true
- runAsUser: 2000
- serviceAccountName: ingress-nginx-admission
- ---
- apiVersion: networking.k8s.io/v1
- kind: IngressClass
- metadata:
- labels:
- app.kubernetes.io/component: controller
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: nginx
- spec:
- controller: k8s.io/ingress-nginx
- ---
- apiVersion: admissionregistration.k8s.io/v1
- kind: ValidatingWebhookConfiguration
- metadata:
- labels:
- app.kubernetes.io/component: admission-webhook
- app.kubernetes.io/instance: ingress-nginx
- app.kubernetes.io/name: ingress-nginx
- app.kubernetes.io/part-of: ingress-nginx
- app.kubernetes.io/version: 1.2.0
- name: ingress-nginx-admission
- webhooks:
- - admissionReviewVersions:
- - v1
- clientConfig:
- service:
- name: ingress-nginx-controller-admission
- namespace: ingress-nginx
- path: /networking/v1/ingresses
- failurePolicy: Fail
- matchPolicy: Equivalent
- name: validate.nginx.ingress.kubernetes.io
- rules:
- - apiGroups:
- - networking.k8s.io
- apiVersions:
- - v1
- operations:
- - CREATE
- - UPDATE
- resources:
- - ingresses
- sideEffects: None
查看:kubectl get pods -n ingress-nginx -o wide:
- apiVersion: networking.k8s.io/v1
- kind: Ingress
- metadata:
- name: minimal-ingress
- annotations:
- nginx.ingress.kubernetes.io/rewrite-target: /
- spec:
- ingressClassName: nginx-example
- rules:
- - http:
- paths:
- - path: /testpath
- pathType: Prefix
- backend:
- service:
- name: test
- port:
- number: 80
- apiVersion: v1
- kind: Service
- metadata:
- name: default-http-backend
- namespace: kube-system
- spec:
- selector:
- app: ingress-nginx-controller
- ports:
- - protocol: TCP
- port: 80
- targetPort: 80
- apiVersion: networking.k8s.io/v1
- kind: Ingress
- metadata:
- name: ingress-resource-backend
- spec:
- defaultBackend:
- resource:
- apiGroup: k8s.example.com
- kind: StorageBucket
- name: static-assets
- rules:
- - http:
- paths:
- - path: /icons
- pathType: ImplementationSpecific
- backend:
- resource:
- apiGroup: k8s.example.com
- kind: StorageBucket
- name: icon-assets
-
- Name: ingress-resource-backend
- Namespace: default
- Address:
- Default backend: APIGroup: k8s.example.com, Kind: StorageBucket, Name: static-assets
- Rules:
- Host Path Backends
- ---- ---- --------
- *
- /icons APIGroup: k8s.example.com, Kind: StorageBucket, Name: icon-assets
- Annotations:
- Events:
-
- apiVersion: networking.k8s.io/v1
- kind: Ingress
- metadata:
- name: ingress-wildcard-host
- spec:
- rules:
- - host: "foo.bar.com"
- http:
- paths:
- - pathType: Prefix # 前缀匹配
- path: "/bar"
- backend:
- service:
- name: service1
- port:
- number: 80
- - host: "*.foo.com" # 主机名通配符
- http:
- paths:
- - pathType: Prefix
- path: "/foo"
- backend:
- service:
- name: service2
- port:
- number: 80
-
- apiVersion: networking.k8s.io/v1
- kind: IngressClass
- metadata:
- name: external-lb
- spec:
- controller: example.com/ingress-controller # 要使用的具体参数类型取决于您在 IngressClass 的 .spec.controller 字段中指定的入口控制器
- parameters:
- apiGroup: k8s.example.com
- kind: IngressParameters
- name: external-lb
- apiVersion: networking.k8s.io/v1
- kind: Ingress
- metadata:
- name: test-ingress
- spec:
- defaultBackend:
- service:
- name: test
- port:
- number: 80
- NAME CLASS HOSTS ADDRESS PORTS AGE
- test-ingress external-lb * 203.0.113.123 80 59s
- 其中 203.0.113.123 是 Ingress controller为满足这个 Ingress 而分配的 IP。
- apiVersion: networking.k8s.io/v1
- kind: Ingress
- metadata:
- name: simple-fanout-example
- spec:
- rules:
- - host: foo.bar.com
- http:
- paths:
- - path: /foo
- pathType: Prefix
- backend:
- service:
- name: service1
- port:
- number: 4200
- - path: /bar
- pathType: Prefix
- backend:
- service:
- name: service2
- port:
- number: 8080
- Name: simple-fanout-example
- Namespace: default
- Address: 178.91.123.132
- Default backend: default-http-backend:80 (10.8.2.3:8080)
- Rules:
- Host Path Backends
- ---- ---- --------
- foo.bar.com
- /foo service1:4200 (10.8.0.90:4200)
- /bar service2:8080 (10.8.0.91:8080)
- Events:
- Type Reason Age From Message
- ---- ------ ---- ---- -------
- Normal ADD 22s loadbalancer-controller default/test
- apiVersion: networking.k8s.io/v1
- kind: Ingress
- metadata:
- name: name-virtual-host-ingress
- spec:
- rules:
- - host: foo.bar.com
- http:
- paths:
- - pathType: Prefix
- path: "/"
- backend:
- service:
- name: service1
- port:
- number: 80
- - host: bar.foo.com
- http:
- paths:
- - pathType: Prefix
- path: "/"
- backend:
- service:
- name: service2
- port:
- number: 80
- apiVersion: networking.k8s.io/v1
- kind: Ingress
- metadata:
- name: name-virtual-host-ingress-no-third-host
- spec:
- rules:
- - host: first.bar.com
- http:
- paths:
- - pathType: Prefix
- path: "/"
- backend:
- service:
- name: service1
- port:
- number: 80
- - host: second.bar.com
- http:
- paths:
- - pathType: Prefix
- path: "/"
- backend:
- service:
- name: service2
- port:
- number: 80
- - http:
- paths:
- - pathType: Prefix
- path: "/"
- backend:
- service:
- name: service3
- port:
- number: 80
执行命令生成ssl证书:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=CHINA/O=EDU"
生成secret:
kubectl create secret tls testsecret-tls --key tls.key --cert tls.crt
或者yaml生成:testsecret-tls.yaml:
- apiVersion: v1
- kind: Secret
- metadata:
- name: testsecret-tls
- namespace: default
- data:
- tls.crt: base64 encoded cert # 私钥文件crt值
- tls.key: base64 encoded key # ssl证书文件key值
- type: kubernetes.io/tls
- apiVersion: networking.k8s.io/v1
- kind: Ingress
- metadata:
- name: tls-example-ingress
- spec:
- tls:
- - hosts:
- - https-example.foo.com
- secretName: testsecret-tls
- rules:
- - host: https-example.foo.com
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: service1
- port:
- number: 80
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- name: nginx-deployment
- spec:
- selector:
- matchLabels:
- app: nginx
- replicas: 1
- template:
- metadata:
- labels:
- app: nginx
- spec:
- containers:
- - name: nginx
- image: nginx
- ports:
- - containerPort: 80
- ---
- kind: Service
- apiVersion: v1
- metadata:
- name: nginx-svc
- spec:
- selector:
- app: nginx
- ports:
- - port: 80
- targetPort: 80
- nodePort: 30080
- type: NodePort
- apiVersion: networking.k8s.io/v1
- kind: Ingress
- metadata:
- name: test-ingress
- annotations:
- kubernetes.io/ingress.class: "nginx" # Nginx Ingress Controller 根据该注解自动发现 Ingress
- spec:
- rules:
- - host: www.baidu2.com # 对外访问的域名
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: nginx-svc # 对外暴露的 Service 名称
- port:
- number: 80 # nginx service 监听的端口
-
- apiVersion: networking.k8s.io/v1
- kind: Ingress
- metadata:
- name: test-ingress
- annotations:
- kubernetes.io/ingress.class: "nginx" # Nginx Ingress Controller 根据该注解自动发现 Ingress
- spec:
- rules:
- - host: www.baidu2.com # 对外访问的域名
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: nginx-svc # 对外暴露的 Service 名称
- port:
- number: 80 # nginx service 监听的端口
-
- apiVersion: v1
- kind: Secret
- metadata:
- name: testsecret-tls
- namespace: default
- data:
- tls.crt: base64 encoded cert # 私钥文件crt值
- tls.key: base64 encoded key # ssl证书文件key值
- type: kubernetes.io/tls
- apiVersion: networking.k8s.io/v1
- kind: Ingress
- metadata:
- name: test-ingress
- annotations:
- kubernetes.io/ingress.class: "nginx"
- spec:
- rules:
- - host: www.baidu2.com
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: nginx-svc
- port:
- number: 80
- tls:
- - hosts:
- - www.baidu2.com
- secretName: testsecret-tls
- apiVersion: v1
- kind: Pod
- metadata:
- name: k8s-tomcat
- labels:
- app: k8s
- spec:
- containers:
- - name: k8s-tomcat
- image: tomcat
- ports:
- - containerPort: 8080
- ---
- apiVersion: v1
- kind: Service
- metadata:
- name: k8s-tomcat-svc
- spec:
- selector:
- app: k8s
- type: NodePort
- ports:
- - protocol: TCP
- port: 8080
- targetPort: 8080
执行命令kubectl apply -f k8s_tomcat.yaml部署tomacat。
- apiVersion: networking.k8s.io/v1
- kind: Ingress
- metadata:
- name: test-ingress
- annotations:
- kubernetes.io/ingress.class: "nginx"
- spec:
- rules:
- - host: www.baidu2.com
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: nginx-svc
- port:
- number: 80
- - host: tomact.com
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: k8s-tomcat-svc
- port:
- number: 8080
- tls:
- - hosts:
- - www.baidu2.com
- - tomact.com
- secretName: testsecret-tls