【服务发现--ingress】

1、ingress介绍

在这里插入图片描述

  • Ingress 提供从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源所定义的规则来控制。

  • Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。

  • Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管。

2、ingress 的依赖

  • 你必须拥有一个 Ingress 控制器 才能满足 Ingress 的要求。仅创建 Ingress 资源本身没有任何效果。

  • 你可能需要部署一个 Ingress 控制器,例如 ingress-nginx。 你可以从许多 (Ingress 控制器)中进行选择。

  • 理想情况下,所有 Ingress 控制器都应遵从参考规范。 但实际上,各个 Ingress 控制器操作略有不同。

3、ingress-nginx 安装流程

参考链接:https://kubernetes.github.io/ingress-nginx/deploy/

3.1 k8s的包管理器 Helm 安装

  • Helm官网:https://helm.sh/zh/docs/intro/quickstart/
  • 注:安装Helm的时候需要注意k8s的版本
# 下载helm 
[root@k8s-master ~]# wget https://get.helm.sh/helm-v3.10.0-linux-amd64.tar.gz  -O helm-v3.10.0-linux-amd64.tar.gz[root@k8s-master ~]# tar -zxvf helm-v3.10.0-linux-amd64.tar.gz[root@k8s-master ~]# mv linux-amd64/helm /usr/local/bin/
[root@k8s-master ~]# helm version
version.BuildInfo{Version:"v3.10.0", GitCommit:"ce66412a723e4d89555dc67217607c6579ffcb21", GitTreeState:"clean", GoVersion:"go1.18.6"}

3.2 添加helm仓库

[root@k8s-master ~]# helm repo add ingress-nginx  https://kubernetes.github.io/ingress-nginx
"ingress-nginx" has been added to your repositories
[root@k8s-master ~]# helm repo list
NAME         	URL
ingress-nginx	https://kubernetes.github.io/ingress-nginx
[root@k8s-master ~]# helm search repo  ingress-nginx
NAME                       	CHART VERSION	APP VERSION	DESCRIPTION
ingress-nginx/ingress-nginx	4.9.1        	1.9.6      	Ingress controller for Kubernetes using NGINX a...

3.3 通过helm下载ingress-nginx

下载ingress-nginx的时候需要查看版本是否匹配k8s的版本:地址链接查看新版本是否支持,由于我的k8s版本是1.25,所以最新的v1.9.6可以使用。
在这里插入图片描述

[root@k8s-master ~]# helm pull ingress-nginx/ingress-nginx
[root@k8s-master ~]# ll ingress-nginx-4.9.1.tgz
-rw-r--r--. 1 root root 53966 225 14:38 ingress-nginx-4.9.1.tgz
[root@k8s-master ~]# mv ingress-nginx-4.9.1.tgz  /opt/helm/
[root@k8s-master ~]# cd !$
cd /opt/helm[root@k8s-master helm]# ll
总用量 4088
-rw-r--r--. 1 root root 2293749 225 14:40 helm-v3.10.0-linux-amd64.tar.gz
-rw-r--r--. 1 root root   53966 225 14:38 ingress-nginx-4.9.1.tgz[root@k8s-master helm]# tar -xf ingress-nginx-4.9.1.tgz[root@k8s-master helm]# cd ingress-nginx
[root@k8s-master ingress-nginx]# ll 
总用量 128
drwxr-xr-x. 2 root root  4096 225 14:40 changelog
-rw-r--r--. 1 root root   702 127 15:46 Chart.yaml
drwxr-xr-x. 2 root root  4096 225 14:40 ci
-rw-r--r--. 1 root root   213 127 15:46 OWNERS
-rw-r--r--. 1 root root 48217 127 15:46 README.md
-rw-r--r--. 1 root root 11358 127 15:46 README.md.gotmpl
drwxr-xr-x. 3 root root  4096 225 14:40 templates
drwxr-xr-x. 2 root root  4096 225 14:40 tests
-rw-r--r--. 1 root root 44163 127 15:46 values.yaml

3.4 修改values.yaml参数配置

3.4.1 修改ingress的控制器的镜像地址为国内地址

registry: registry.cn-hangzhou.aliyuncs.com
image: google_containers/nginx-ingress-controller

在这里插入图片描述

在这里插入图片描述

3.4.2 注释ingress的控制器中的哈希校验

在这里插入图片描述

3.4.3 修改dnsPolicy的值为 ClusterFirstWithHostNet

在这里插入图片描述

3.4.4 修改hostNetwork的值为true

在这里插入图片描述

3.4.5 修改kind的值为DaemonSET

在这里插入图片描述

3.4.6 在nodeSelector下添加 ingress: “true”

在这里插入图片描述

3.4.7 修改这里的type的值为ClusterIP

在这里插入图片描述

3.4.8 修改enabled的值为false

在这里插入图片描述

3.4.9 修改kube-webhook处的镜像地址和type

registry: registry.cn-hangzhou.aliyuncs.com
image: google_containers/kube-webhook-certgen

在这里插入图片描述

3.5 创建这个ingress资源

3.5.1 专门为ingress-nginx创建一个namespace

[root@k8s-master ingress-nginx]# kubectl create ns  ingress-nginx
namespace/ingress-nginx created

3.5.2 为需要部署的ingress节点上添加标签

[root@k8s-master ingress-nginx]# kubectl label node k8s-master ingress=true
node/k8s-master labeled[root@k8s-master ingress-nginx]# kubectl get nodes  --show-labels
NAME          STATUS   ROLES           AGE     VERSION   LABELS
k8s-master    Ready    control-plane   5d21h   v1.25.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,ingress=true,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node.kubernetes.io/exclude-from-external-load-balancers=
k8s-node-01   Ready    <none>          5d20h   v1.25.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node-01,kubernetes.io/os=linux,type=microsvc
k8s-node-02   Ready    <none>          3d21h   v1.25.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node-02,kubernetes.io/os=linux,type=microsvc

3.5.3 安装ingress-nginx

[root@k8s-master ingress-nginx]# ll
总用量 128
drwxr-xr-x. 2 root root  4096 225 14:40 changelog
-rw-r--r--. 1 root root   702 127 15:46 Chart.yaml
drwxr-xr-x. 2 root root  4096 225 14:40 ci
-rw-r--r--. 1 root root   213 127 15:46 OWNERS
-rw-r--r--. 1 root root 48217 127 15:46 README.md
-rw-r--r--. 1 root root 11358 127 15:46 README.md.gotmpl
drwxr-xr-x. 3 root root  4096 225 14:40 templates
drwxr-xr-x. 2 root root  4096 225 14:40 tests
-rw-r--r--. 1 root root 44366 225 16:55 values.yaml
[root@k8s-master ingress-nginx]# helm install ingress-nginx  -n ingress-nginx .
NAME: ingress-nginx
LAST DEPLOYED: Sun Feb 25 19:35:55 2024
NAMESPACE: ingress-nginx
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The ingress-nginx controller has been installed.
Get the application URL by running these commands:export POD_NAME="$(kubectl get pods --namespace ingress-nginx --selector app.kubernetes.io/name=ingress-nginx,app.kubernetes.io/instance=ingress-nginx,app.kubernetes.io/component=controller --output jsonpath="{.items[0].metadata.name}")"kubectl port-forward --namespace ingress-nginx "${POD_NAME}" 8080:80echo "Visit http://127.0.0.1:8080 to access your application."An example Ingress that makes use of the controller:apiVersion: networking.k8s.io/v1kind: Ingressmetadata:name: examplenamespace: foospec:ingressClassName: nginxrules:- host: www.example.comhttp:paths:- pathType: Prefixbackend:service:name: exampleServiceport:number: 80path: /# This section is only required if TLS is to be enabled for the Ingresstls:- hosts:- www.example.comsecretName: example-tlsIf TLS is enabled for the Ingress, a Secret containing the certificate and key must also be provided:apiVersion: v1kind: Secretmetadata:name: example-tlsnamespace: foodata:tls.crt: <base64 encoded cert>tls.key: <base64 encoded key>type: kubernetes.io/tls

3.5.4 在node1上添加一个标签

由于master有个污点的问题,所以ingress-nginx暂时无法创建上,这个问题后续在写,现在在node1上添加一个ingress=true的标签。在来查看下。

root@k8s-master ingress-nginx]# kubectl label nodes  k8s-node-01   ingress=true
node/k8s-node-01 labeled
[root@k8s-master ingress-nginx]# kubectl get -n ingress-nginx  po
NAME                             READY   STATUS              RESTARTS   AGE
ingress-nginx-controller-jn65t   0/1     ContainerCreating   0          12s[root@k8s-master ingress-nginx]# kubectl describe   -n ingress-nginx  po  ingress-nginx-controller-jn65t
Name:             ingress-nginx-controller-jn65t
Namespace:        ingress-nginx
Priority:         0
Service Account:  ingress-nginx
Node:             k8s-node-01/10.10.10.177
Start Time:       Sun, 25 Feb 2024 19:42:49 +0800
Labels:           app.kubernetes.io/component=controllerapp.kubernetes.io/instance=ingress-nginxapp.kubernetes.io/managed-by=Helmapp.kubernetes.io/name=ingress-nginxapp.kubernetes.io/part-of=ingress-nginxapp.kubernetes.io/version=1.9.6controller-revision-hash=78d8f9c87chelm.sh/chart=ingress-nginx-4.9.1pod-template-generation=1
Annotations:      <none>
Status:           Running
IP:               10.10.10.177
IPs:IP:           10.10.10.177
Controlled By:  DaemonSet/ingress-nginx-controller
Containers:controller:Container ID:  docker://5a25f4de88555d15c0a335afda6dcbe02fed2bcf992c30a06c02b05397c50649Image:         registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.9.6Image ID:      docker-pullable://registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller@sha256:195a471f4765b6c752919003bf5b9a029b250531f9f48caf0beae64495daa4c2Ports:         80/TCP, 443/TCPHost Ports:    80/TCP, 443/TCPArgs:/nginx-ingress-controller--publish-service=$(POD_NAMESPACE)/ingress-nginx-controller--election-id=ingress-nginx-leader--controller-class=k8s.io/ingress-nginx--ingress-class=nginx--configmap=$(POD_NAMESPACE)/ingress-nginx-controllerState:          RunningStarted:      Sun, 25 Feb 2024 19:43:12 +0800Ready:          TrueRestart Count:  0Requests:cpu:      100mmemory:   90MiLiveness:   http-get http://:10254/healthz delay=10s timeout=1s period=10s #success=1 #failure=5Readiness:  http-get http://:10254/healthz delay=10s timeout=1s period=10s #success=1 #failure=3Environment:POD_NAME:       ingress-nginx-controller-jn65t (v1:metadata.name)POD_NAMESPACE:  ingress-nginx (v1:metadata.namespace)LD_PRELOAD:     /usr/local/lib/libmimalloc.soMounts:/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-dklj9 (ro)
Conditions:Type              StatusInitialized       TrueReady             TrueContainersReady   TruePodScheduled      True
Volumes:kube-api-access-dklj9:Type:                    Projected (a volume that contains injected data from multiple sources)TokenExpirationSeconds:  3607ConfigMapName:           kube-root-ca.crtConfigMapOptional:       <nil>DownwardAPI:             true
QoS Class:                   Burstable
Node-Selectors:              ingress=truekubernetes.io/os=linux
Tolerations:                 node.kubernetes.io/disk-pressure:NoSchedule op=Existsnode.kubernetes.io/memory-pressure:NoSchedule op=Existsnode.kubernetes.io/network-unavailable:NoSchedule op=Existsnode.kubernetes.io/not-ready:NoExecute op=Existsnode.kubernetes.io/pid-pressure:NoSchedule op=Existsnode.kubernetes.io/unreachable:NoExecute op=Existsnode.kubernetes.io/unschedulable:NoSchedule op=Exists
Events:Type    Reason     Age   From                      Message----    ------     ----  ----                      -------Normal  Scheduled  45s   default-scheduler         Successfully assigned ingress-nginx/ingress-nginx-controller-jn65t to k8s-node-01Normal  Pulling    44s   kubelet                   Pulling image "registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.9.6"Normal  Pulled     23s   kubelet                   Successfully pulled image "registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.9.6" in 20.899701523sNormal  Created    23s   kubelet                   Created container controllerNormal  Started    22s   kubelet                   Started container controllerNormal  RELOAD     20s   nginx-ingress-controller  NGINX reload triggered due to a change in configuration[root@k8s-master ingress-nginx]# kubectl get -n ingress-nginx  po  -owide
NAME                             READY   STATUS    RESTARTS   AGE   IP             NODE          NOMINATED NODE   READINESS GATES
ingress-nginx-controller-jn65t   1/1     Running   0          2m    10.10.10.177   k8s-node-01   <none>           <none>

3.5.5 配置文件

[root@k8s-master ingress-nginx]# grep -Ev  '^#|^  #|^    #|^      #|^        #|^$'  values.yaml
namespaceOverride: ""
commonLabels: {}
controller:name: controllerenableAnnotationValidations: falseimage:chroot: falseregistry: registry.cn-hangzhou.aliyuncs.comimage: google_containers/nginx-ingress-controllertag: "v1.9.6"pullPolicy: IfNotPresentrunAsNonRoot: truerunAsUser: 101allowPrivilegeEscalation: falseseccompProfile:type: RuntimeDefaultreadOnlyRootFilesystem: falseexistingPsp: ""containerName: controllercontainerPort:http: 80https: 443config: {}configAnnotations: {}proxySetHeaders: {}addHeaders: {}dnsConfig: {}hostAliases: []hostname: {}dnsPolicy: ClusterFirstWithHostNetreportNodeInternalIp: falsewatchIngressWithoutClass: falseingressClassByName: falseenableTopologyAwareRouting: falseallowSnippetAnnotations: falsehostNetwork: truehostPort:enabled: falseports:http: 80https: 443networkPolicy:enabled: falseelectionID: ""ingressClassResource:name: nginxenabled: truedefault: falsecontrollerValue: "k8s.io/ingress-nginx"parameters: {}ingressClass: nginxpodLabels: {}podSecurityContext: {}sysctls: {}containerSecurityContext: {}publishService:enabled: truepathOverride: ""scope:enabled: falsenamespace: ""namespaceSelector: ""configMapNamespace: ""tcp:configMapNamespace: ""annotations: {}udp:configMapNamespace: ""annotations: {}maxmindLicenseKey: ""extraArgs: {}extraEnvs: []kind: DaemonSetannotations: {}labels: {}updateStrategy: {}minReadySeconds: 0tolerations: []affinity: {}topologySpreadConstraints: []terminationGracePeriodSeconds: 300nodeSelector:kubernetes.io/os: linuxingress: "true"livenessProbe:httpGet:path: "/healthz"port: 10254scheme: HTTPinitialDelaySeconds: 10periodSeconds: 10timeoutSeconds: 1successThreshold: 1failureThreshold: 5readinessProbe:httpGet:path: "/healthz"port: 10254scheme: HTTPinitialDelaySeconds: 10periodSeconds: 10timeoutSeconds: 1successThreshold: 1failureThreshold: 3healthCheckPath: "/healthz"healthCheckHost: ""podAnnotations: {}replicaCount: 1minAvailable: 1resources:requests:cpu: 100mmemory: 90Miautoscaling:enabled: falseannotations: {}minReplicas: 1maxReplicas: 11targetCPUUtilizationPercentage: 50targetMemoryUtilizationPercentage: 50behavior: {}autoscalingTemplate: []keda:apiVersion: "keda.sh/v1alpha1"enabled: falseminReplicas: 1maxReplicas: 11pollingInterval: 30cooldownPeriod: 300restoreToOriginalReplicaCount: falsescaledObject:annotations: {}triggers: []behavior: {}enableMimalloc: truecustomTemplate:configMapName: ""configMapKey: ""service:enabled: trueexternal:enabled: trueannotations: {}labels: {}type: ClusterIPclusterIP: ""externalIPs: []loadBalancerIP: ""loadBalancerSourceRanges: []loadBalancerClass: ""externalTrafficPolicy: ""sessionAffinity: ""ipFamilyPolicy: SingleStackipFamilies:- IPv4enableHttp: trueenableHttps: trueports:http: 80https: 443targetPorts:http: httphttps: httpsappProtocol: truenodePorts:http: ""https: ""tcp: {}udp: {}internal:enabled: falseannotations: {}type: ""clusterIP: ""externalIPs: []loadBalancerIP: ""loadBalancerSourceRanges: []loadBalancerClass: ""externalTrafficPolicy: ""sessionAffinity: ""ipFamilyPolicy: SingleStackipFamilies:- IPv4ports: {}targetPorts: {}appProtocol: truenodePorts:http: ""https: ""tcp: {}udp: {}shareProcessNamespace: falseextraContainers: []extraVolumeMounts: []extraVolumes: []extraInitContainers: []extraModules: []opentelemetry:enabled: falsename: opentelemetryimage:registry: registry.k8s.ioimage: ingress-nginx/opentelemetrytag: "v20230721-3e2062ee5"digest: sha256:13bee3f5223883d3ca62fee7309ad02d22ec00ff0d7033e3e9aca7a9f60fd472distroless: truecontainerSecurityContext:runAsNonRoot: truerunAsUser: 65532allowPrivilegeEscalation: falseseccompProfile:type: RuntimeDefaultcapabilities:drop:- ALLreadOnlyRootFilesystem: trueresources: {}admissionWebhooks:name: admissionannotations: {}enabled: falseextraEnvs: []failurePolicy: Failport: 8443certificate: "/usr/local/certificates/cert"key: "/usr/local/certificates/key"namespaceSelector: {}objectSelector: {}labels: {}existingPsp: ""service:annotations: {}externalIPs: []loadBalancerSourceRanges: []servicePort: 443type: ClusterIPcreateSecretJob:name: createsecurityContext:runAsNonRoot: truerunAsUser: 65532allowPrivilegeEscalation: falseseccompProfile:type: RuntimeDefaultcapabilities:drop:- ALLreadOnlyRootFilesystem: trueresources: {}patchWebhookJob:name: patchsecurityContext:runAsNonRoot: truerunAsUser: 65532allowPrivilegeEscalation: falseseccompProfile:type: RuntimeDefaultcapabilities:drop:- ALLreadOnlyRootFilesystem: trueresources: {}patch:enabled: trueimage:registry: registry.cn-hangzhou.aliyuncs.comimage: google_containers/kube-webhook-certgentag: v20231226-1a7112e06priorityClassName: ""podAnnotations: {}networkPolicy:enabled: falsenodeSelector:kubernetes.io/os: linuxtolerations: []labels: {}securityContext: {}certManager:enabled: falserootCert:duration: ""admissionCert:duration: ""metrics:port: 10254portName: metricsenabled: falseservice:annotations: {}labels: {}externalIPs: []loadBalancerSourceRanges: []servicePort: 10254type: ClusterIPserviceMonitor:enabled: falseadditionalLabels: {}annotations: {}namespace: ""namespaceSelector: {}scrapeInterval: 30stargetLabels: []relabelings: []metricRelabelings: []prometheusRule:enabled: falseadditionalLabels: {}rules: []lifecycle:preStop:exec:command:- /wait-shutdownpriorityClassName: ""
revisionHistoryLimit: 10
defaultBackend:enabled: falsename: defaultbackendimage:registry: registry.k8s.ioimage: defaultbackend-amd64tag: "1.5"pullPolicy: IfNotPresentrunAsNonRoot: truerunAsUser: 65534allowPrivilegeEscalation: falseseccompProfile:type: RuntimeDefaultreadOnlyRootFilesystem: trueexistingPsp: ""extraArgs: {}serviceAccount:create: truename: ""automountServiceAccountToken: trueextraEnvs: []port: 8080livenessProbe:failureThreshold: 3initialDelaySeconds: 30periodSeconds: 10successThreshold: 1timeoutSeconds: 5readinessProbe:failureThreshold: 6initialDelaySeconds: 0periodSeconds: 5successThreshold: 1timeoutSeconds: 5updateStrategy: {}minReadySeconds: 0tolerations: []affinity: {}podSecurityContext: {}containerSecurityContext: {}podLabels: {}nodeSelector:kubernetes.io/os: linuxpodAnnotations: {}replicaCount: 1minAvailable: 1resources: {}extraVolumeMounts: []extraVolumes: []extraConfigMaps: []autoscaling:annotations: {}enabled: falseminReplicas: 1maxReplicas: 2targetCPUUtilizationPercentage: 50targetMemoryUtilizationPercentage: 50networkPolicy:enabled: falseservice:annotations: {}externalIPs: []loadBalancerSourceRanges: []servicePort: 80type: ClusterIPpriorityClassName: ""labels: {}
rbac:create: truescope: false
podSecurityPolicy:enabled: false
serviceAccount:create: truename: ""automountServiceAccountToken: trueannotations: {}
imagePullSecrets: []
tcp: {}
udp: {}
portNamePrefix: ""
dhParam: ""

3.6 ingress的使用

3.6.1 编写 ingress 服务的配置

apiVersion: networking.k8s.io/v1  
kind: Ingress  # ingress类型
metadata:  name: ingress-nginx-example  # ingress的名字annotations:  nginx.ingress.kubernetes.io/rewrite-target: /  
spec:  ingressClassName: nginx  rules:  - host: k8s.test.cn   # 访问域名,可是使用通配符http:   paths:  # 相当于nginx的location配置,可以配置多个- path: /   # 等价与nginx中的location 路径匹配 # 路径类型,按照路径类型进行匹配 ImplementationSpecific  需要指定IngressClass,具体匹配规则以IngressClass中的规则为准。# Exact 精确匹配,URL需要与path完全匹配上,且区分大小写 # Prefix 前缀匹配,以/作为分隔符,来进行前缀匹配pathType: Prefix  # 匹配模式backend:  service:  name: nginx-svc   # ingress转发给service,service的名字port:  number: 80     # service的端口# 如果有TLS配置,可以添加tls字段  #tls:  #- hosts:  #  - example.com  #  secretName: my-tls-secret

3.6.2 创建这个ingress资源

[root@k8s-master ~]# kubectl create -f ingress-nginx-example.yaml
ingress.networking.k8s.io/ingress-nginx-example created

3.6.3 查看这个ingress资源信息

[root@k8s-master ~]# kubectl get ingress ingress-nginx-example  -o wide
NAME                    CLASS   HOSTS         ADDRESS        PORTS   AGE
ingress-nginx-example   nginx   k8s.test.cn   10.1.119.138   80      50s[root@k8s-master ~]# kubectl get -n ingress-nginx    pod  -o wide
NAME                             READY   STATUS    RESTARTS   AGE   IP             NODE          NOMINATED NODE   READINESS GATES
ingress-nginx-controller-jn65t   1/1     Running   0          62m   10.10.10.177   k8s-node-01   <none>           <none>

3.6.4 测试使用域名访问

[root@k8s-master ~]# echo "10.10.10.177 k8s.test.cn " >> /etc/hosts
[root@k8s-master ~]# curl k8s.test.cn
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>body {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>

3.6.5 查询访问日志

[root@k8s-master ~]# kubectl logs  -f -n ingress-nginx   ingress-nginx-controller-jn65t
-------------------------------------------------------------------------------
NGINX Ingress controllerRelease:       v1.9.6Build:         6a73aa3b05040a97ef8213675a16142a9c95952aRepository:    https://github.com/kubernetes/ingress-nginxnginx version: nginx/1.21.6-------------------------------------------------------------------------------W0225 11:43:12.164749       7 client_config.go:618] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
I0225 11:43:12.165295       7 main.go:205] "Creating API client" host="https://10.1.0.1:443"
I0225 11:43:12.177840       7 main.go:249] "Running in Kubernetes cluster" major="1" minor="25" git="v1.25.0" state="clean" commit="a866cbe2e5bbaa01cfd5e969aa3e033f3282a8a2" platform="linux/amd64"
I0225 11:43:12.436449       7 main.go:101] "SSL fake certificate created" file="/etc/ingress-controller/ssl/default-fake-certificate.pem"
I0225 11:43:12.565821       7 nginx.go:260] "Starting NGINX Ingress controller"
I0225 11:43:12.627098       7 event.go:298] Event(v1.ObjectReference{Kind:"ConfigMap", Namespace:"ingress-nginx", Name:"ingress-nginx-controller", UID:"ffe00f65-b957-4108-ac62-9f88e3b3887f", APIVersion:"v1", ResourceVersion:"482046", FieldPath:""}): type: 'Normal' reason: 'CREATE' ConfigMap ingress-nginx/ingress-nginx-controller
I0225 11:43:13.773928       7 nginx.go:303] "Starting NGINX process"
I0225 11:43:13.774090       7 leaderelection.go:245] attempting to acquire leader lease ingress-nginx/ingress-nginx-leader...
I0225 11:43:13.777086       7 controller.go:190] "Configuration changes detected, backend reload required"
I0225 11:43:13.793435       7 leaderelection.go:255] successfully acquired lease ingress-nginx/ingress-nginx-leader
I0225 11:43:13.795060       7 status.go:84] "New leader elected" identity="ingress-nginx-controller-jn65t"
I0225 11:43:14.211765       7 controller.go:210] "Backend successfully reloaded"
I0225 11:43:14.211878       7 controller.go:221] "Initial sync, sleeping for 1 second"
I0225 11:43:14.211918       7 event.go:298] Event(v1.ObjectReference{Kind:"Pod", Namespace:"ingress-nginx", Name:"ingress-nginx-controller-jn65t", UID:"aa348af4-9773-4ca2-b2fc-45eb2c842c83", APIVersion:"v1", ResourceVersion:"482645", FieldPath:""}): type: 'Normal' reason: 'RELOAD' NGINX reload triggered due to a change in configuration
I0225 12:43:04.755446       7 store.go:440] "Found valid IngressClass" ingress="default/ingress-nginx-example" ingressclass="nginx"
I0225 12:43:04.756941       7 event.go:298] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"default", Name:"ingress-nginx-example", UID:"cf861f68-6f06-4279-acda-9884e7fd3557", APIVersion:"networking.k8s.io/v1", ResourceVersion:"488205", FieldPath:""}): type: 'Normal' reason: 'Sync' Scheduled for sync
I0225 12:43:04.757794       7 controller.go:190] "Configuration changes detected, backend reload required"
I0225 12:43:04.989965       7 controller.go:210] "Backend successfully reloaded"
I0225 12:43:04.990671       7 event.go:298] Event(v1.ObjectReference{Kind:"Pod", Namespace:"ingress-nginx", Name:"ingress-nginx-controller-jn65t", UID:"aa348af4-9773-4ca2-b2fc-45eb2c842c83", APIVersion:"v1", ResourceVersion:"482645", FieldPath:""}): type: 'Normal' reason: 'RELOAD' NGINX reload triggered due to a change in configuration
I0225 12:43:13.804201       7 status.go:304] "updating Ingress status" namespace="default" ingress="ingress-nginx-example" currentValue=null newValue=[{"ip":"10.1.119.138"}]
I0225 12:43:13.813972       7 event.go:298] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"default", Name:"ingress-nginx-example", UID:"cf861f68-6f06-4279-acda-9884e7fd3557", APIVersion:"networking.k8s.io/v1", ResourceVersion:"488223", FieldPath:""}): type: 'Normal' reason: 'Sync' Scheduled for sync
10.10.10.100 - - [25/Feb/2024:12:46:25 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" 75 0.008 [default-nginx-svc-80] [] 10.2.1.55:80 612 0.008 200 e2b058939e017bdfa86c953e312ea057

3.6.6 ingress配置多域名

配置多域名和单域名很相通,如下一个例子

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: ingress-nginx-exampleannotations:nginx.ingress.kubernetes.io/rewrite-target: /
spec:ingressClassName: nginxrules:# 配置第一个域名- host: k8s.test.cnhttp:paths:- path: /pathType: Prefixbackend:service:name: nginx-svcport:number: 80# 配置第二个域名            - host: k8s.test.comhttp:paths:# 配置第一个路径- path: /pathType: Prefixbackend:service:name: nginx-svcport:number: 80# 配置第二个路径       - path: /htmlpathType: Prefixbackend:service:name: nginx-svcport:number: 80

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/496592.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【飞桨EasyDL】飞桨EasyDL发布的模型转换onnx(附工程代码)

一个愿意伫立在巨人肩膀上的农民...... 一、paddle转onnx转rknn环境搭建 paddle转onnx和onnx转rknn两个环境可以分开搭建&#xff0c;也可以搭建在一起。这里选择分开搭建&#xff0c;先搭建paddle转onnx。 1.1、创建环境 选择python3.8.13包进行创建环境 conda create --nam…

基于 LVGL 使用 SquareLine Studio 快速设计 UI 界面

目录 简介注册与软件获取工程配置设计 UI导出源码板级验证更多内容 简介 SquareLine Studio 是一款专业的 UI 设计软件&#xff0c;它与 LVGL&#xff08;Light and Versatile Graphics Library&#xff0c;轻量级通用图形库&#xff09;紧密集成。LVGL 是一个轻量化的、开源的…

Android和Linux的开发差异

最近开始投入Android的怀抱。说来惭愧&#xff0c;08年就听说这东西&#xff0c;当时也有同事投入去看&#xff0c;因为恶心Java&#xff0c;始终对这玩意无感&#xff0c;没想到现在不会这个嵌入式都快要没法搞了。为了不中年失业&#xff0c;所以只能回过头又来学。 首先还是…

瑞吉外卖项目详细分析笔记及所有功能补充代码

目录 项目刨析简介技术栈项目介绍项目源码 一.架构搭建1.初始化项目结构2.数据库表结构设计3.项目基本配置信息添加公共字段的自动填充全局异常处理类返回结果封装的实体类 二.管理端业务开发1.员工管理相关业务1.1员工登录1.2员工退出1.3过滤器拦截1.4员工信息修改1.5员工信息…

Java基础八股

基础概念与常识 Java 语言有哪些特点? 简单易学&#xff1b;面向对象&#xff08;封装&#xff0c;继承&#xff0c;多态&#xff09;&#xff1b;平台无关性&#xff08; Java 虚拟机实现平台无关性&#xff09;&#xff1b;支持多线程&#xff08; C 语言没有内置的多线程…

Python入门到精通(九)——Python数据可视化

Python数据可视化 一、JSON数据格式 1、定义 2、python数据和JSON数据转换 二、pyecharts 三、折线图 四、地图 五、动态柱状图 一、JSON数据格式 1、定义 JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据JSON本质上是一个带有特定格式的字符…

Python学习系列 -初探标准库之logging库

系列文章目录 第一章 初始 Python 第二章 认识 Python 变量、类型、运算符 第三章 认识 条件分支、循环结构 第四章 认识 Python的五种数据结构 第五章 认识 Python 函数、模块 第六章 认识面向对象三大特性 第七章 初探标准库之os库 第八章 初探标准库之pathlib库 第九章 初探…

卷积神经网络介绍

卷积神经网络(Convolutional Neural Networks&#xff0c;CNN) 网络的组件&#xff1a;卷积层&#xff0c;池化层&#xff0c;激活层和全连接层。 CNN主要由以下层构造而成&#xff1a; 卷积层&#xff1a;Convolutional layer&#xff08;CONV&#xff09;池化层&#xff1a…

如何在windows系统部署Lychee网站,并结合内网穿透打造个人云图床

文章目录 1.前言2. Lychee网站搭建2.1. Lychee下载和安装2.2 Lychee网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 图床作为图片集中存放的服务网站&#xff0c;可以看做是云存储的一部分&#xff0c;既可…

批量自动加好友,轻松拓展微信人脉圈子

在当今社交化的时代&#xff0c;拓展社交圈子已经成为许多人努力追求的目标。而微信作为中国人群中最主流的社交工具之一&#xff0c;更是成为人们拓展社交圈子的重要场所。在这样的背景下&#xff0c;有没有一种简单而高效的方式来扩大微信人脉圈子呢&#xff1f;答案是肯定的…

【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)

目录 1、锁的策略 1.1、乐观锁和悲观锁 1.2、轻量级锁和重量级锁 1.3、自旋锁和挂起等待锁 1.4、普通互斥锁和读写锁 1.5、公平锁和非公平锁 1.6、可重入锁和不可重入锁 2、synchronized 内部的升级与优化过程 2.1、锁的升级/膨胀 2.1.1、偏向锁阶段 2.1.2、轻量级锁…

RunnerGo UI自动化测试脚本如何配置

RunnerGo提供从API管理到API性能再到可视化的API自动化、UI自动化测试功能模块&#xff0c;覆盖了整个产品测试周期。 RunnerGo UI自动化基于Selenium浏览器自动化方案构建&#xff0c;内嵌高度可复用的测试脚本&#xff0c;测试团队无需复杂的代码编写即可开展低代码的自动化…