{"id":33524,"date":"2023-07-16T01:40:01","date_gmt":"2022-12-15T18:21:50","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%9c%a8openshift%e4%b8%8a%e6%b7%bb%e5%8a%a0nginx-ingress-controller\/"},"modified":"2024-04-30T13:47:31","modified_gmt":"2024-04-30T05:47:31","slug":"%e5%b0%9d%e8%af%95%e5%9c%a8openshift%e4%b8%8a%e6%b7%bb%e5%8a%a0nginx-ingress-controller","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%9c%a8openshift%e4%b8%8a%e6%b7%bb%e5%8a%a0nginx-ingress-controller\/","title":{"rendered":"\u5c1d\u8bd5\u5728Openshift\u4e0a\u6dfb\u52a0NGINX Ingress Controller"},"content":{"rendered":"<h2>\u4e3a\u4e86\u4ec0\u4e48<\/h2>\n<p>\u9664\u4e86OpenShift\u63d0\u4f9b\u7684\u9ed8\u8ba4\u8def\u7531\u5668\u4e4b\u5916\uff0c\u6211\u8fd8\u60f3\u4f7f\u7528NGINX Ingress Controller\u3002<\/p>\n<h2>\u73af\u5883<\/h2>\n<p>OpenShift 4.6\uff1a\u5f00\u653e\u53d8\u97694.6\u7248<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Openshift\u81ea\u4f53\u306fInternet \u63a5\u7d9a\u306a\u3057<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">bastion node\u306e\u307fInternet\u63a5\u7d9a\u53ef\u80fd<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">IBM Cloud\u306eVirtual Private Cloud\u3092\u5229\u7528<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u30b3\u30f3\u30c6\u30caImage\u3092\u7ba1\u7406\u3059\u308b\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u30ec\u30b8\u30b9\u30c8\u30ea\u306bIBM Cloud Container Registry\u3092\u5229\u7528<\/ul>\n<h2>\u53c2\u8003\u8d44\u6599<\/h2>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">IBM Cloud &gt; Virtual Private Cloud \u306b\u3064\u3044\u3066<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">NGINX Ingress Controller<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">OpenShift &gt; Configuring Ingress Controller sharding by using route labels<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">DNS \u30b5\u30d6\u30c9\u30e1\u30a4\u30f3\u3078\u306e VPC \u30ed\u30fc\u30c9\u30fb\u30d0\u30e9\u30f3\u30b5\u30fc\u306e\u30db\u30b9\u30c8\u540d\u306e\u767b\u9332<\/ul>\n<h2>\u5c06NGINX Ingress Controller\u90e8\u7f72\u5230Openshift<\/h2>\n<p>\u4f7f\u7528Helm v3\u5c06NGINX Ingress Controller\u90e8\u7f72\u5230Openshift\u4e2d\u3002<\/p>\n<h3>\u51c6\u5907\u4e00\u4e2a\u7528\u4e8ehelm\u547d\u4ee4\u7684bastion\u8282\u70b9\u3002<\/h3>\n<pre class=\"post-pre\"><code>[user01@bastion-node ~]$ curl -o helm.tar.gz -k https:\/\/get.helm.sh\/helm-v3.4.2-linux-amd64.tar.gz\r\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\r\n                                 Dload  Upload   Total   Spent    Left  Speed\r\n100 12.7M  100 12.7M    0     0  7776k      0  0:00:01  0:00:01 --:--:-- 7778k\r\n[user01@bastion-node ~]$ tar xf helm.tar.gz\r\n[user01@bastion-node ~]$ mv linux-amd64\/helm ~\/.local\/bin\/.\r\n[user01@bastion-node ~]$ PATH=$PATH:~\/.local\/bin\r\n[user01@bastion-node ~]$ helm version\r\nversion.BuildInfo{Version:\"v3.4.2\", GitCommit:\"23dd3af5e19a02d4f4baa5b2f242645a1a3af629\", GitTreeState:\"clean\", GoVersion:\"go1.14.13\"}\r\n[user01@bastion-node ~]$\r\n<\/code><\/pre>\n<h3>\u4e0b\u8f7d ingress-nginx chart<\/h3>\n<pre class=\"post-pre\"><code>[user01@bastion-node ~]$ helm repo add ingress-nginx https:\/\/kubernetes.github.io\/ingress-nginx\r\n\"ingress-nginx\" has been added to your repositories\r\n[user01@bastion-node ~]$ helm repo update\r\nHang tight while we grab the latest from your chart repositories...\r\n...Successfully got an update from the \"ingress-nginx\" chart repository\r\n...Successfully got an update from the \"ibm-helm\" chart repository\r\nUpdate Complete. \u2388Happy Helming!\u2388\r\n[user01@bastion-node ~]$\r\n[user01@bastion-node ~]$ helm repo list\r\nNAME            URL\r\nibm-helm        https:\/\/raw.githubusercontent.com\/IBM\/charts\/master\/repo\/ibm-helm\r\ningress-nginx   https:\/\/kubernetes.github.io\/ingress-nginx\r\n[user01@bastion-node ~]$\r\n[user01@bastion-node ~]$ helm search repo ingress-nginx\/ingress-nginx\r\nWARNING: Repo \"ibm-helm\" is corrupt or missing. Try 'helm repo update'.\r\nNAME                            CHART VERSION   APP VERSION     DESCRIPTION\r\ningress-nginx\/ingress-nginx     3.15.2          0.41.2          Ingress controller for Kubernetes using NGINX a...\r\n[user01@bastion-node ~]$\r\n[user01@bastion-node ~]$ mkdir ~\/work\/ingress-nginx\r\n[user01@bastion-node ~]$ cd ~\/work\/ingress-nginx\r\n[user01@bastion-node ingress-nginx]$ helm pull ingress-nginx\/ingress-nginx\r\n[user01@bastion-node ingress-nginx]$ tar xf ingress-nginx-3.15.2.tgz\r\n[user01@bastion-node ingress-nginx]$ ls\r\ningress-nginx  ingress-nginx-3.15.2.tgz\r\n[user01@bastion-node ingress-nginx]$ \r\n<\/code><\/pre>\n<h3>3. \u5728\u79c1\u6709\u4ed3\u5e93\u4e2d\u51c6\u5907\u5fc5\u8981\u7684\u955c\u50cf<\/h3>\n<ul class=\"post-ul\">helm\u30c1\u30e3\u30fc\u30c8\u5185\u306e\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u30c7\u30d7\u30ed\u30a4\u306b\u4f7f\u3046image\u3092\u78ba\u8a8d\u3002<\/ul>\n<pre class=\"post-pre\"><code>[user01@bastion-node ingress-nginx]$ grep image: ingress-nginx\/values.yaml -A2\r\n  image:\r\n    repository: k8s.gcr.io\/ingress-nginx\/controller\r\n    tag: \"v0.41.2\"\r\n--\r\n  #    image: nginx:latest\r\n  #  - name: lemonldap-ng-controller\r\n  #    image: lemonldapng\/lemonldap-ng-controller:0.2.0\r\n  #    args:\r\n  #      - \/lemonldap-ng-controller\r\n--\r\n  #   image: busybox\r\n  #   command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']\r\n\r\n--\r\n      image:\r\n        repository: docker.io\/jettech\/kube-webhook-certgen\r\n        tag: v1.5.0\r\n--\r\n  image:\r\n    repository: k8s.gcr.io\/defaultbackend-amd64\r\n    tag: \"1.5\"\r\n[user01@bastion-node ingress-nginx]$\r\n<\/code><\/pre>\n<p>\u4ee5\u4e0b\u662f\u76ee\u6807\u955c\u50cf\uff1a<br \/>\n&#8211; k8s.gcr.io\/ingress-nginx\/controller:v0.41.2<br \/>\n&#8211; docker.io\/jettech\/kube-webhook-certgen:v1.5.0<br \/>\n&#8211; k8s.gcr.io\/defaultbackend-amd64:1.5<\/p>\n<ul class=\"post-ul\">bastion node\u3067image\u3092pull\u3057\u3066\u3001tag\u3092\u4ed8\u4e0e\u3057\u3001\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u30ec\u30b8\u30b9\u30c8\u30ea\u306bpush<\/ul>\n<pre class=\"post-pre\"><code>docker pull k8s.gcr.io\/defaultbackend-amd64:1.5\r\ndocker tag k8s.gcr.io\/defaultbackend-amd64:1.5 jp.icr.io\/test\/defaultbackend-amd64:1.5\r\ndocker push jp.icr.io\/test\/defaultbackend-amd64:1.5\r\n<\/code><\/pre>\n<p>\u7167\u7740\u4e0a\u8ff0\u7684\u6b65\u9aa4\uff0c\u5c06\u5176\u4ed6\u56fe\u7247\u63a8\u9001\u5230\u79c1\u6709\u955c\u50cf\u4ed3\u5e93\u4e2d\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30af\u30e9\u30b9\u30bf\u30fc\u304c\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u30ec\u30b8\u30b9\u30c8\u30ea\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3088\u3046\u306bPull\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u3092Openshift\u306b\u8ffd\u52a0<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u203bpull secret\u306e\u4e2d\u8eab\uff08user id, password\uff09\u3092\u7528\u610f\u3059\u308b\u624b\u9806\u306f\u7701\u7565<\/ul>\n<pre class=\"post-pre\"><code>[user01@bastion-node ingress-nginx]$ oc -n user01-test create secret docker-registry containerregistry-test --docker-server=jp.icr.io --docker-username=iamapikey --docker-password=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --docker-email=e34559@jp.ibm.com\r\nsecret\/containerregistry-test created\r\n[user01@bastion-node ingress-nginx]$\r\n<\/code><\/pre>\n<h3>\u66f4\u65b0helm chart\u6587\u4ef6\u3002<\/h3>\n<p>\u56e0\u4e3a\u6ca1\u6709\u4e92\u8054\u7f51\u8fde\u63a5\uff0c\u6240\u4ee5\u9700\u8981\u66f4\u6539\u90e8\u5206\u56fe\u7247\u7b49\u5185\u5bb9\u3002<\/p>\n<h4>ingress-nginx\/values.yaml \u7684\u91ca\u4e49<\/h4>\n<p>\u4ee5\u4e0b\u662f\u5bf9\u6ce8\u91ca\u90e8\u5206\u8fdb\u884c\u7684\u672c\u5730\u5316\u6c49\u8bed\u89e3\u91ca\uff0c\u4ec5\u9700\u4e00\u4e2a\u9009\u9879\uff1a<br \/>\n\u8fd9\u4e9b\u8bf4\u660e\u662f\u4e3a\u4e86\u5728IBM Cloud\u4e0a\u521b\u5efaNGINX Ingress Controller\u524d\u7aef\u8d1f\u8f7d\u5747\u8861\u5668\u3002<\/p>\n<pre class=\"post-pre\"><code>[user01@bastion-node ingress-nginx]$ cp ingress-nginx\/values.yaml ingress-nginx\/values.yaml.org\r\n[user01@bastion-node ingress-nginx]$ vi ingress-nginx\/values.yaml\r\n[user01@bastion-node ingress-nginx]$ diff ingress-nginx\/values.yaml ingress-nginx\/values.yaml.org\r\n13c13\r\n&lt;     repository: jp.icr.io\/test\/ingress-nginx\/controller\r\n---\r\n&gt;     repository: k8s.gcr.io\/ingress-nginx\/controller\r\n15c15\r\n&lt;     #digest: sha256:1f4f402b9c14f3ae92b11ada1dfe9893a88f0faeb0b2f4b903e2c67a0c3bf0de\r\n---\r\n&gt;     digest: sha256:1f4f402b9c14f3ae92b11ada1dfe9893a88f0faeb0b2f4b903e2c67a0c3bf0de\r\n269a270\r\n&gt;\r\n352,353c353\r\n&lt;     annotations:\r\n&lt;       service.kubernetes.io\/ibm-load-balancer-cloud-provider-ip-type: private\r\n---\r\n&gt;     annotations: {}\r\n481c481\r\n&lt;         repository: jp.icr.io\/test\/jettech\/kube-webhook-certgen\r\n---\r\n&gt;         repository: docker.io\/jettech\/kube-webhook-certgen\r\n490,491c490\r\n&lt;       #runAsUser: 2000\r\n&lt;       runAsUser: 1000622000\r\n---\r\n&gt;       runAsUser: 2000\r\n597c596\r\n&lt;     repository: jp.icr.io\/test\/defaultbackend-amd64\r\n---\r\n&gt;     repository: k8s.gcr.io\/defaultbackend-amd64\r\n714,715c713\r\n&lt; imagePullSecrets:\r\n&lt; - name: containerregistry-test\r\n---\r\n&gt; imagePullSecrets: []\r\n[user01@bastion-node ingress-nginx]$\r\n<\/code><\/pre>\n<h4>ingress-nginx\/templates\/controller-role.yaml &#8211;&gt; \u7b56\u5212\u63a7\u5236\u5668\u89d2\u8272.yaml<\/h4>\n<p>\u4ee5\u4e0b\u7ee7\u7eed\u8865\u5145\u4fe1\u606f\u3002<\/p>\n<pre class=\"post-pre\"><code>[user01@bastion-node ingress-nginx]$ vi ingress-nginx\/templates\/controller-role.yaml\r\n[user01@bastion-node ingress-nginx]$ tail -n 10 ingress-nginx\/templates\/controller-role.yaml\r\n{{- end }}\r\n  - apiGroups:\r\n    - security.openshift.io\r\n    resourceNames:\r\n    - privileged\r\n    resources:\r\n    - securitycontextconstraints\r\n    verbs:\r\n    - use\r\n\r\n[user01@bastion-node ingress-nginx]$\r\n<\/code><\/pre>\n<p>\u8bf7\u52ff\u5c06\u539f\u6587\u4ef6\u590d\u5236\u5e76\u653e\u7f6e\u5728\u540c\u4e00\u76ee\u5f55\u4e2d\uff0c\u56e0\u4e3a\u6240\u6709\u4ee5\u4e0b\u6a21\u677f\u7684\u6587\u4ef6\u5c06\u4f1a\u88ab\u52a0\u8f7d\u3002<\/p>\n<h3>5. \u6267\u884c NGINX Ingress Controller \u7684\u90e8\u7f72<\/h3>\n<ul class=\"post-ul\">oc\u30b3\u30de\u30f3\u30c9\u3067openshift\u306b\u30ed\u30b0\u30a4\u30f3\u3057\u3001NGINX Ingress Controller\u3092\u5c0e\u5165\u3059\u308bproject(namespace)\u306b\u5207\u308a\u66ff\u3048\u308b<\/ul>\n<pre class=\"post-pre\"><code>oc login -u user01\r\noc project user01-test\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\u30c7\u30d7\u30ed\u30a4\u5b9f\u884c<\/ul>\n<pre class=\"post-pre\"><code>[user01@bastion-node ingress-nginx]$ helm install ingress-nginx-test .\/ingress-nginx\r\nNAME: ingress-nginx-test\r\nLAST DEPLOYED: Mon Dec 21 16:53:25 2020\r\nNAMESPACE: user01-test\r\nSTATUS: deployed\r\nREVISION: 1\r\nTEST SUITE: None\r\nNOTES:\r\nThe ingress-nginx controller has been installed.\r\nIt may take a few minutes for the LoadBalancer IP to be available.\r\nYou can watch the status by running 'kubectl --namespace user01-test get services -o wide -w ingress-nginx-test-controller'\r\n\r\nAn example Ingress that makes use of the controller:\r\n\r\n  apiVersion: networking.k8s.io\/v1beta1\r\n  kind: Ingress\r\n  metadata:\r\n    annotations:\r\n      kubernetes.io\/ingress.class: nginx\r\n    name: example\r\n    namespace: foo\r\n  spec:\r\n    rules:\r\n      - host: www.example.com\r\n        http:\r\n          paths:\r\n            - backend:\r\n                serviceName: exampleService\r\n                servicePort: 80\r\n              path: \/\r\n    # This section is only required if TLS is to be enabled for the Ingress\r\n    tls:\r\n        - hosts:\r\n            - www.example.com\r\n          secretName: example-tls\r\n\r\nIf TLS is enabled for the Ingress, a Secret containing the certificate and key must also be provided:\r\n\r\n  apiVersion: v1\r\n  kind: Secret\r\n  metadata:\r\n    name: example-tls\r\n    namespace: foo\r\n  data:\r\n    tls.crt: &lt;base64 encoded cert&gt;\r\n    tls.key: &lt;base64 encoded key&gt;\r\n  type: kubernetes.io\/tls\r\n[user01@bastion-node ingress-nginx]$\r\n[user01@bastion-node ingress-nginx]$ oc get all\r\nNAME                                                READY   STATUS    RESTARTS   AGE\r\npod\/ingress-nginx-test-controller-cfc699764-lpm5t   1\/1     Running   0          19m\r\n\r\nNAME                                              TYPE           CLUSTER-IP      EXTERNAL-IP                          PORT(S)                      AGE\r\nservice\/ingress-nginx-test-controller             LoadBalancer   172.21.22.87    d1b930bf-jp-tok.lb.appdomain.cloud   80:31140\/TCP,443:32343\/TCP   19m\r\nservice\/ingress-nginx-test-controller-admission   ClusterIP      172.21.199.70   &lt;none&gt;                               443\/TCP                      19m\r\n\r\nNAME                                            READY   UP-TO-DATE   AVAILABLE   AGE\r\ndeployment.apps\/ingress-nginx-test-controller   1\/1     1            1           19m\r\n\r\nNAME                                                      DESIRED   CURRENT   READY   AGE\r\nreplicaset.apps\/ingress-nginx-test-controller-cfc699764   1         1         1       19m\r\n[user01@bastion-node ingress-nginx]$\r\n<\/code><\/pre>\n<h2>\u6ce8\u518cVPC\u8d1f\u8f7d\u5747\u8861\u5668\u4e3b\u673a\u540d\u5230DNS\u5b50\u57df\u540d<\/h2>\n<pre class=\"post-pre\"><code>[user01@bastion-node ~]$ ibmcloud ks nlb-dns create vpc-gen2 --cluster tmpcluster --lb-host d1b930bf-jp-tok.lb.appdomain.cloud --type private\r\nCreating NLB DNS...\r\nOK\r\nNLB hostname was created as test-cluster-xx1.jp-tok.containers.appdomain.cloud\r\n[user01@bastion-node ~]$\r\n[user01@bastion-node ~]$ ibmcloud ks nlb-dns ls --cluster tmpcluster\r\nOK\r\nSubdomain                                                                            Load Balancer Hostname               SSL Cert Status   SSL Cert Secret Name                               Secret Namespace\r\ntest-cluster-xx0.jp-tok.containers.appdomain.cloud   818aee49-jp-tok.lb.appdomain.cloud   created           test-cluster-xx0   openshift-ingress\r\ntest-cluster-xx1.jp-tok.containers.appdomain.cloud   d1b930bf-jp-tok.lb.appdomain.cloud   created           test-cluster-xx1   default\r\n[user01@bastion-node ~]$\r\n<\/code><\/pre>\n<h2>\u8bbe\u7f6e\u5206\u7247<\/h2>\n<p>\u5982\u679c\u7ee7\u7eed\u8fd9\u6837\u64cd\u4f5c\uff0c\u4f7f\u7528NGINX Ingress Controller\u6765\u516c\u5f00\u670d\u52a1\u65f6\uff0c\u5c06\u4f1a\u5bf9\u9ed8\u8ba4\u7684\u8def\u7531\u5668\u8fdb\u884c\u66f4\u6539\u3002\uff08\u867d\u7136\u95ee\u9898\u4e0d\u592a\u5927\u3002\uff09\u4e3a\u4e86\u4e0d\u5bf9\u9ed8\u8ba4\u7684\u8def\u7531\u5668\u8fdb\u884c\u66f4\u6539\uff0c\u9700\u8981\u8fdb\u884c\u9644\u52a0\u8bbe\u7f6e\u3002<\/p>\n<ul class=\"post-ul\">ingress controller\u306b\u8a2d\u5b9a\u3092\u8ffd\u52a0<\/ul>\n<pre class=\"post-pre\"><code>oc patch -n openshift-ingress-operator ingresscontroller\/default --patch '{\"spec\":{\"routeSelector\":{\"matchExpressions\":[{\"key\":\"nginxingress\", \"operator\":\"DoesNotExist\"}]}}}' --type=merge\r\n<\/code><\/pre>\n<h2>\u6d4b\u8bd5 NGINX Ingress \u63a7\u5236\u5668<\/h2>\n<ul class=\"post-ul\">\u30c6\u30b9\u30c8\u7528\u30a4\u30e1\u30fc\u30b8\u7528\u610f<\/ul>\n<pre class=\"post-pre\"><code>docker pull openshift\/hello-openshift:latest\r\ndocker tag openshift\/hello-openshift:latest jp.icr.io\/test\/test\/openshift\/hello-openshift:latest\r\ndocker push jp.icr.io\/test\/test\/openshift\/hello-openshift:latest\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\u30c6\u30b9\u30c8\u7528pod\u3092\u30c7\u30d7\u30ed\u30a4<\/ul>\n<pre class=\"post-pre\"><code>oc new-app --docker-image=jp.icr.io\/test\/test\/openshift\/hello-openshift:latest --name user01-test -o yaml &gt; test_deploy.yaml\r\nvi test_deploy.yaml\r\n# \u4ee5\u4e0b\u306e\u69d8\u306bpull secret\u3084 env\u3092\u8ffd\u8a18\r\n---\r\n      spec:\r\n        imagePullSecrets:\r\n        - name: containerregistry-test\r\n        containers:\r\n        - image: ' '\r\n          name: user01-test\r\n          ports:\r\n          - containerPort: 8080\r\n            protocol: TCP\r\n          - containerPort: 8888\r\n            protocol: TCP\r\n          resources: {}\r\n          env:\r\n          - name: RESPONSE\r\n            value: Hello World!\r\n~~\r\n---\r\n\r\noc create -f test_deploy.yaml\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\u30b5\u30fc\u30d3\u30b9\u3092ingress\u3067\u516c\u958b<\/ul>\n<pre class=\"post-pre\"><code>[user01@bastion-node ingress-nginx]$ cat test_ingress.yaml\r\napiVersion: networking.k8s.io\/v1beta1\r\nkind: Ingress\r\nmetadata:\r\n  name: ingress-myservicea\r\n  annotations:\r\n    kubernetes.io\/ingress.class: \"nginx\"\r\nspec:\r\n  rules:\r\n  - host: user01-test.test-cluster-xx1.jp-tok.containers.appdomain.cloud\r\n    http:\r\n      paths:\r\n      - path: \/\r\n        backend:\r\n          serviceName: user01-test\r\n          servicePort: 8080\r\n[user01@bastion-node ingress-nginx]$\r\n[user01@bastion-node ingress-nginx]$ oc create -f test_ingress.yaml\r\ningress.networking.k8s.io\/ingress-user01-test created\r\n[user01@bastion-node ingress-nginx]$\r\n[user01@bastion-node ingress-nginx]$ oc get ingress\r\nNAME                  CLASS    HOSTS                                                                                                        ADDRESS                              PORTS   AGE\r\ningress-user01-test   &lt;none&gt;   user01-test.test-cluster-xx1.jp-tok.containers.appdomain.cloud   d1b930bf-jp-tok.lb.appdomain.cloud   80      46s\r\n[user01@bastion-node ingress-nginx]$\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\u63a5\u7d9a\u78ba\u8a8d<\/ul>\n<pre class=\"post-pre\"><code>[user01@bastion-node ingress-nginx]$ curl http:\/\/user01-test.test-cluster-xx1.jp-tok.containers.appdomain.cloud\r\nHello World!\r\n[user01@bastion-node ingress-nginx]$\r\n<\/code><\/pre>\n<p>\u4ee5\u4e0a<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e3a\u4e86\u4ec0\u4e48 \u9664\u4e86OpenShift\u63d0\u4f9b\u7684\u9ed8\u8ba4\u8def\u7531\u5668\u4e4b\u5916\uff0c\u6211\u8fd8\u60f3\u4f7f\u7528NGINX Ingress Controlle [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-33524","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5c1d\u8bd5\u5728Openshift\u4e0a\u6dfb\u52a0NGINX Ingress Controller - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5c1d\u8bd5\u5728openshift\u4e0a\u6dfb\u52a0nginx-ingress-controller\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5c1d\u8bd5\u5728Openshift\u4e0a\u6dfb\u52a0NGINX Ingress Controller\" \/>\n<meta property=\"og:description\" content=\"\u4e3a\u4e86\u4ec0\u4e48 \u9664\u4e86OpenShift\u63d0\u4f9b\u7684\u9ed8\u8ba4\u8def\u7531\u5668\u4e4b\u5916\uff0c\u6211\u8fd8\u60f3\u4f7f\u7528NGINX Ingress Controlle [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5c1d\u8bd5\u5728openshift\u4e0a\u6dfb\u52a0nginx-ingress-controller\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-15T18:21:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-30T05:47:31+00:00\" \/>\n<meta name=\"author\" content=\"\u6587, \u7fd4\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6587, \u7fd4\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%9c%a8openshift%e4%b8%8a%e6%b7%bb%e5%8a%a0nginx-ingress-controller\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%9c%a8openshift%e4%b8%8a%e6%b7%bb%e5%8a%a0nginx-ingress-controller\/\",\"name\":\"\u5c1d\u8bd5\u5728Openshift\u4e0a\u6dfb\u52a0NGINX Ingress Controller - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2022-12-15T18:21:50+00:00\",\"dateModified\":\"2024-04-30T05:47:31+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%9c%a8openshift%e4%b8%8a%e6%b7%bb%e5%8a%a0nginx-ingress-controller\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%9c%a8openshift%e4%b8%8a%e6%b7%bb%e5%8a%a0nginx-ingress-controller\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%9c%a8openshift%e4%b8%8a%e6%b7%bb%e5%8a%a0nginx-ingress-controller\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5c1d\u8bd5\u5728Openshift\u4e0a\u6dfb\u52a0NGINX Ingress Controller\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\",\"name\":\"\u6587, \u7fd4\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"caption\":\"\u6587, \u7fd4\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%9c%a8openshift%e4%b8%8a%e6%b7%bb%e5%8a%a0nginx-ingress-controller\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5c1d\u8bd5\u5728Openshift\u4e0a\u6dfb\u52a0NGINX Ingress Controller - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u5c1d\u8bd5\u5728openshift\u4e0a\u6dfb\u52a0nginx-ingress-controller\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5c1d\u8bd5\u5728Openshift\u4e0a\u6dfb\u52a0NGINX Ingress Controller","og_description":"\u4e3a\u4e86\u4ec0\u4e48 \u9664\u4e86OpenShift\u63d0\u4f9b\u7684\u9ed8\u8ba4\u8def\u7531\u5668\u4e4b\u5916\uff0c\u6211\u8fd8\u60f3\u4f7f\u7528NGINX Ingress Controlle [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5c1d\u8bd5\u5728openshift\u4e0a\u6dfb\u52a0nginx-ingress-controller\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2022-12-15T18:21:50+00:00","article_modified_time":"2024-04-30T05:47:31+00:00","author":"\u6587, \u7fd4","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6587, \u7fd4","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"6 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%9c%a8openshift%e4%b8%8a%e6%b7%bb%e5%8a%a0nginx-ingress-controller\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%9c%a8openshift%e4%b8%8a%e6%b7%bb%e5%8a%a0nginx-ingress-controller\/","name":"\u5c1d\u8bd5\u5728Openshift\u4e0a\u6dfb\u52a0NGINX Ingress Controller - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2022-12-15T18:21:50+00:00","dateModified":"2024-04-30T05:47:31+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%9c%a8openshift%e4%b8%8a%e6%b7%bb%e5%8a%a0nginx-ingress-controller\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%9c%a8openshift%e4%b8%8a%e6%b7%bb%e5%8a%a0nginx-ingress-controller\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%9c%a8openshift%e4%b8%8a%e6%b7%bb%e5%8a%a0nginx-ingress-controller\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5c1d\u8bd5\u5728Openshift\u4e0a\u6dfb\u52a0NGINX Ingress Controller"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c","name":"\u6587, \u7fd4","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","caption":"\u6587, \u7fd4"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%9c%a8openshift%e4%b8%8a%e6%b7%bb%e5%8a%a0nginx-ingress-controller\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/33524","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=33524"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/33524\/revisions"}],"predecessor-version":[{"id":92272,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/33524\/revisions\/92272"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=33524"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=33524"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=33524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}