{"id":33224,"date":"2022-12-06T06:18:36","date_gmt":"2023-07-07T07:35:05","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kubernetes%e7%9a%84%e5%ae%b9%e5%99%a8%e5%bc%95%e6%93%8e%ef%bc%88oke%ef%bc%89%e6%9d%a5%e9%85%8d%e7%bd%aeingress%e3%80%82\/"},"modified":"2024-04-29T03:56:51","modified_gmt":"2024-04-28T19:56:51","slug":"%e4%bd%bf%e7%94%a8kubernetes%e7%9a%84%e5%ae%b9%e5%99%a8%e5%bc%95%e6%93%8e%ef%bc%88oke%ef%bc%89%e6%9d%a5%e9%85%8d%e7%bd%aeingress%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kubernetes%e7%9a%84%e5%ae%b9%e5%99%a8%e5%bc%95%e6%93%8e%ef%bc%88oke%ef%bc%89%e6%9d%a5%e9%85%8d%e7%bd%aeingress%e3%80%82\/","title":{"rendered":"\u4f7f\u7528Kubernetes\u7684\u5bb9\u5668\u5f15\u64ce\uff08OKE\uff09\u6765\u914d\u7f6eIngress"},"content":{"rendered":"<h1>\u9996\u5148<\/h1>\n<p>\u6211\u60f3\u786e\u8ba4\u4e00\u4e0b\u5728\u4f7f\u7528Ingress\u65f6\u7684OKE\u8bbe\u7f6e\u65b9\u6cd5\u3002\u867d\u7136\u624b\u518c\u4e0a\u6709\u8bf4\u660e\uff0c\u4f46\u6309\u7167\u624b\u518c\u4e0a\u7684\u65b9\u6cd5\u65e0\u6cd5\u5b9e\u73b0\uff0c\u6240\u4ee5\u6211\u53c2\u8003\u4e86\u4e00\u4e0b\u8fdb\u884c\u786e\u8ba4\u3002<\/p>\n<p>Kubernetes\u96c6\u7fa4\u5df2\u7ecf\u5efa\u7acb\u5b8c\u6210\u3002<\/p>\n<pre class=\"post-pre\"><code>$ kubectl get node\r\nNAME          STATUS   ROLES   AGE     VERSION\r\n10.0.10.152   Ready    node    5d17h   v1.21.5\r\n10.0.10.187   Ready    node    5d17h   v1.21.5\r\n10.0.10.253   Ready    node    5d17h   v1.21.5\r\n<\/code><\/pre>\n<h1>\u8bbe\u7f6eIngress\u63a7\u5236\u5668<\/h1>\n<h2>ClusterRoleBindings \u7684\u914d\u7f6e<\/h2>\n<p>\u5982\u679c\u4f7f\u7528OCI\u7684\u7528\u6237\u4e0d\u662f\u79df\u6237\u7ba1\u7406\u5458\uff0c\u5219\u4e3a\u7528\u6237\u5206\u914dcluster-admin\u7684clusterrole\u6743\u9650\u3002<\/p>\n<h3>\u786e\u8ba4OCID<\/h3>\n<p>\u786e\u8ba4\u7528\u6237\u7684OCID\u3002<br \/>\n\u4eceOCI\u63a7\u5236\u53f0\u7684&#8221;\u7528\u6237\u8be6\u7ec6\u4fe1\u606f&#8221;\u4e2d\u590d\u5236OCID\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d160237434c4406bffede\/10-0.png\" alt=\"image.png\" \/><\/div>\n<h3>\u521b\u5efaClusterRoleBindings<\/h3>\n<p>\u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u5c06ClusterRoleBindings\u7684\u540d\u79f0\u8bbe\u7f6e\u4e3a&#8221;ingress-adm&#8221;\u3002<\/p>\n<pre class=\"post-pre\"><code>$ kubectl create clusterrolebinding ingress-adm --clusterrole=cluster-admin --user=ocid1.user.oc1..aaaaaaaa\u30fb\u30fb\u30fbpgasfa\r\nclusterrolebinding.rbac.authorization.k8s.io\/ingress-adm created\r\n$ kubectl describe clusterrolebindings ingress-adm\r\nName:         ingress-adm\r\nLabels:       &lt;none&gt;\r\nAnnotations:  &lt;none&gt;\r\nRole:\r\n  Kind:  ClusterRole\r\n  Name:  cluster-admin\r\nSubjects:\r\n  Kind  Name                                                    Namespace\r\n  ----  ----                                                    ---------\r\n  User  ocid1.user.oc1..aaaaaaaa4\u30fb\u30fb\u30fbasfa  \r\n<\/code><\/pre>\n<h2>\u90e8\u7f72Ingress\u63a7\u5236\u5668<\/h2>\n<p>\u4f7f\u7528GitHub\u5b58\u50a8\u5e93\u4e2d\u516c\u5f00\u7684\u6e05\u5355\u8fdb\u884c\u90e8\u7f72\u3002\u6700\u65b0\u7248\u672c\u5728\u6b64\u3002<br \/>\n\u7136\u800c\uff0c\u7531\u4e8e\u90e8\u7f72\u7684\u8d1f\u8f7d\u5747\u8861\u5668\u5065\u5eb7\u68c0\u67e5\u51fa\u73b0\u9519\u8bef\uff0c\u56e0\u6b64\u4e0d\u76f4\u63a5\u4f7f\u7528kubectl apply\u547d\u4ee4\u90e8\u7f72\uff0c\u800c\u662f\u5728\u4e0b\u8f7d\u540e\u8fdb\u884c\u90e8\u5206\u7f16\u8f91\u540e\u518d\u8fdb\u884capply\u3002<\/p>\n<pre class=\"post-pre\"><code>$ wget https:\/\/raw.githubusercontent.com\/kubernetes\/ingress-nginx\/controller-v1.1.0\/deploy\/static\/provider\/cloud\/deploy.yaml\r\n--2022-01-05 07:06:33--  https:\/\/raw.githubusercontent.com\/kubernetes\/ingress-nginx\/controller-v1.1.0\/deploy\/static\/provider\/cloud\/deploy.yaml\r\nResolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.111.133, 185.199.108.133, ...\r\nConnecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.\r\nHTTP request sent, awaiting response... 200 OK\r\nLength: 19299 (19K) [text\/plain]\r\nSaving to: \u2018deploy.yaml\u2019\r\n\r\n100%[===============================================================================================================================================================================================&gt;] 19,299      --.-K\/s   in 0s      \r\n\r\n2022-01-05 07:06:33 (74.0 MB\/s) - \u2018deploy.yaml\u2019 saved [19299\/19299]\r\n$ vim deploy.yaml\r\n<\/code><\/pre>\n<p>\u6211\u628a\u7f16\u8f91\u7684\u5ba3\u8a00\u8282\u9009\u5982\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"s\">\u30fb\u30fb\u30fb<\/span>\r\n<span class=\"nn\">---<\/span>\r\n<span class=\"c1\"># Source: ingress-nginx\/templates\/controller-service.yaml<\/span>\r\n<span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Service<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">annotations<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"c1\">### \u30d5\u30ec\u30ad\u30b7\u30d6\u30eb\u30fb\u30b7\u30a7\u30a4\u30d7\u3092\u4f7f\u7528\u3059\u308b\u305f\u3081\u306b\u8ffd\u8a18\uff08\u4efb\u610f\uff09 ###<\/span>\r\n    <span class=\"s\">service.beta.kubernetes.io\/oci-load-balancer-shape<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">flexible\"<\/span>\r\n    <span class=\"s\">service.beta.kubernetes.io\/oci-load-balancer-shape-flex-min<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">10\"<\/span>\r\n    <span class=\"s\">service.beta.kubernetes.io\/oci-load-balancer-shape-flex-max<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">50\"<\/span>\r\n<span class=\"c1\">### \u3053\u3053\u307e\u3067 ###<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">helm.sh\/chart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ingress-nginx-4.0.10<\/span>\r\n    <span class=\"s\">app.kubernetes.io\/name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ingress-nginx<\/span>\r\n    <span class=\"s\">app.kubernetes.io\/instance<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ingress-nginx<\/span>\r\n    <span class=\"s\">app.kubernetes.io\/version<\/span><span class=\"pi\">:<\/span> <span class=\"s\">1.1.0<\/span>\r\n    <span class=\"s\">app.kubernetes.io\/managed-by<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Helm<\/span>\r\n    <span class=\"s\">app.kubernetes.io\/component<\/span><span class=\"pi\">:<\/span> <span class=\"s\">controller<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ingress-nginx-controller<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ingress-nginx<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">type<\/span><span class=\"pi\">:<\/span> <span class=\"s\">LoadBalancer<\/span>\r\n<span class=\"c1\">### \u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8 ###<\/span>\r\n<span class=\"c1\">#  externalTrafficPolicy: Local<\/span>\r\n<span class=\"c1\">### \u3053\u3053\u307e\u3067 ###<\/span>\r\n  <span class=\"na\">ipFamilyPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">SingleStack<\/span>\r\n  <span class=\"na\">ipFamilies<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">IPv4<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">http<\/span>\r\n      <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">80<\/span>\r\n      <span class=\"na\">protocol<\/span><span class=\"pi\">:<\/span> <span class=\"s\">TCP<\/span>\r\n      <span class=\"na\">targetPort<\/span><span class=\"pi\">:<\/span> <span class=\"s\">http<\/span>\r\n      <span class=\"na\">appProtocol<\/span><span class=\"pi\">:<\/span> <span class=\"s\">http<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">https<\/span>\r\n      <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">443<\/span>\r\n      <span class=\"na\">protocol<\/span><span class=\"pi\">:<\/span> <span class=\"s\">TCP<\/span>\r\n      <span class=\"na\">targetPort<\/span><span class=\"pi\">:<\/span> <span class=\"s\">https<\/span>\r\n      <span class=\"na\">appProtocol<\/span><span class=\"pi\">:<\/span> <span class=\"s\">https<\/span>\r\n  <span class=\"na\">selector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">app.kubernetes.io\/name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ingress-nginx<\/span>\r\n    <span class=\"s\">app.kubernetes.io\/instance<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ingress-nginx<\/span>\r\n    <span class=\"s\">app.kubernetes.io\/component<\/span><span class=\"pi\">:<\/span> <span class=\"s\">controller<\/span>\r\n<span class=\"nn\">---<\/span>\r\n<span class=\"s\">\u30fb\u30fb\u30fb<\/span>\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u4f7f\u7528\u7075\u6d3b\u7684\u5f62\u72b6\uff0c\u6211\u6dfb\u52a0\u4e863\u884c\u5185\u5bb9\uff0c\u4f46\u8fd9\u53ea\u662f\u53ef\u9009\u7684\u3002<br \/>\n\u6211\u5df2\u7ecf\u6ce8\u91ca\u6389\uff08\u6216\u5220\u9664\u6389\uff09\u4e86&#8221;externalTrafficPolicy: Local&#8221;\u3002<\/p>\n<p>\u5728Ingress\u63a7\u5236\u5668\u7684GitHub\u5b58\u50a8\u5e93\u4e2d\u6709\u4ee5\u4e0b\u8bf4\u660e\u3002\u901a\u8fc7\u5c06\u5176\u8bbe\u7f6e\u4e3a\u672c\u5730(Local)\uff0c\u53ef\u4ee5\u8282\u7701\u8df3\u8f6c\u5f00\u9500\uff0c\u4f46OCI\u8d1f\u8f7d\u5747\u8861\u5668\u662f\u5426\u652f\u6301\u5462\uff1f\u5982\u679c\u4ee5\u672c\u5730(Local)\u65b9\u5f0f\u90e8\u7f72\uff0c\u8d1f\u8f7d\u5747\u8861\u5668\u7684\u5065\u5eb7\u68c0\u67e5\u5c06\u51fa\u73b0\u9519\u8bef\u3002<\/p>\n<blockquote><p>\u5982\u679c\u4f60\u7684\u4e91\u63d0\u4f9b\u5546\u7684\u8d1f\u8f7d\u5747\u8861\u5668\u5bf9\u5176\u540e\u7aef\u8fdb\u884c\u4e3b\u52a8\u5065\u5eb7\u68c0\u67e5\uff08\u5927\u591a\u6570\u63d0\u4f9b\u5546\u90fd\u4f1a\u8fd9\u6837\uff09\uff0c\u4f60\u53ef\u4ee5\u5c06\u5165\u53e3\u63a7\u5236\u5668\u670d\u52a1\u7684externalTrafficPolicy\u66f4\u6539\u4e3aLocal\uff08\u800c\u4e0d\u662f\u9ed8\u8ba4\u7684Cluster\uff09\uff0c\u4ee5\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\u8282\u7701\u4e00\u6b21\u989d\u5916\u7684\u8df3\u8f6c\u3002\u5982\u679c\u4f60\u4f7f\u7528Helm\u8fdb\u884c\u5b89\u88c5\uff0c\u53ef\u4ee5\u901a\u8fc7\u5728helm install\u6216helm upgrade\u547d\u4ee4\u4e2d\u6dfb\u52a0&#8211;set controller.service.externalTrafficPolicy=Local\u6765\u5b8c\u6210\u8fd9\u4e2a\u64cd\u4f5c\u3002<\/p><\/blockquote>\n<p>\u6211\u5c06\u5e94\u7528\u5df2\u7f16\u8f91\u7684\u5ba3\u8a00\u4e66\u3002<\/p>\n<pre class=\"post-pre\"><code>$ kubectl apply -f deploy.yaml \r\nnamespace\/ingress-nginx created\r\nserviceaccount\/ingress-nginx created\r\nconfigmap\/ingress-nginx-controller created\r\nclusterrole.rbac.authorization.k8s.io\/ingress-nginx created\r\nclusterrolebinding.rbac.authorization.k8s.io\/ingress-nginx created\r\nrole.rbac.authorization.k8s.io\/ingress-nginx created\r\nrolebinding.rbac.authorization.k8s.io\/ingress-nginx created\r\nservice\/ingress-nginx-controller-admission created\r\nservice\/ingress-nginx-controller created\r\ndeployment.apps\/ingress-nginx-controller created\r\ningressclass.networking.k8s.io\/nginx created\r\nvalidatingwebhookconfiguration.admissionregistration.k8s.io\/ingress-nginx-admission created\r\nserviceaccount\/ingress-nginx-admission created\r\nclusterrole.rbac.authorization.k8s.io\/ingress-nginx-admission created\r\nclusterrolebinding.rbac.authorization.k8s.io\/ingress-nginx-admission created\r\nrole.rbac.authorization.k8s.io\/ingress-nginx-admission created\r\nrolebinding.rbac.authorization.k8s.io\/ingress-nginx-admission created\r\njob.batch\/ingress-nginx-admission-create created\r\njob.batch\/ingress-nginx-admission-patch created\r\n<\/code><\/pre>\n<p>\u6211\u4f1a\u786e\u8ba4\u3002<\/p>\n<pre class=\"post-pre\"><code>$ kubectl get all -n ingress-nginx\r\nNAME                                          READY   STATUS      RESTARTS   AGE\r\npod\/ingress-nginx-admission-create-j2sdk      0\/1     Completed   0          7m12s\r\npod\/ingress-nginx-admission-patch-sbp8d       0\/1     Completed   0          7m12s\r\npod\/ingress-nginx-controller-54bfb9bb-7w8wm   1\/1     Running     0          7m12s\r\n\r\nNAME                                         TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                      AGE\r\nservice\/ingress-nginx-controller             LoadBalancer   10.96.202.169   129.159.68.246   80:32178\/TCP,443:32206\/TCP   7m12s\r\nservice\/ingress-nginx-controller-admission   ClusterIP      10.96.205.154   &lt;none&gt;           443\/TCP                      7m12s\r\n\r\nNAME                                       READY   UP-TO-DATE   AVAILABLE   AGE\r\ndeployment.apps\/ingress-nginx-controller   1\/1     1            1           7m12s\r\n\r\nNAME                                                DESIRED   CURRENT   READY   AGE\r\nreplicaset.apps\/ingress-nginx-controller-54bfb9bb   1         1         1       7m12s\r\n\r\nNAME                                       COMPLETIONS   DURATION   AGE\r\njob.batch\/ingress-nginx-admission-create   1\/1           1s         7m12s\r\njob.batch\/ingress-nginx-admission-patch    1\/1           2s         7m12s\r\n<\/code><\/pre>\n<p>\u5728OCI\u63a7\u5236\u53f0\u4e0a\uff0c\u60a8\u53ef\u4ee5\u786e\u8ba4\u8d1f\u8f7d\u5747\u8861\u5668\u5df2\u7ecf\u90e8\u7f72\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d160237434c4406bffede\/27-0.png\" alt=\"image.png\" \/><\/div>\n<h1>\u540e\u7aef\u914d\u7f6e<\/h1>\n<p>\u4e3a\u4e86\u786e\u8ba4Ingress\u7684\u64cd\u4f5c\uff0c\u6211\u4eec\u5c06\u90e8\u7f72\u793a\u4f8b\u7684Deployment\u548cService\u3002<\/p>\n<h2>Pod\u7684\u90e8\u7f72<\/h2>\n<p>\u4e3a\u4e86\u786e\u8ba4L7\u8d1f\u8f7d\u5747\u8861\uff0c\u5c06\u90e8\u7f72\u4e09\u4e2aDeployment\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">apps\/v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Deployment<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx0<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">replicas<\/span><span class=\"pi\">:<\/span> <span class=\"m\">2<\/span>\r\n  <span class=\"na\">selector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">matchLabels<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx-dep0<\/span>\r\n  <span class=\"na\">template<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx-dep0<\/span>\r\n    <span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">containers<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx<\/span>\r\n          <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx:latest<\/span>\r\n          <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"pi\">-<\/span> <span class=\"na\">containerPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">80<\/span>\r\n<span class=\"nn\">---<\/span>\r\n<span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">apps\/v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Deployment<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx1<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">replicas<\/span><span class=\"pi\">:<\/span> <span class=\"m\">2<\/span>\r\n  <span class=\"na\">selector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">matchLabels<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx-dep1<\/span>\r\n  <span class=\"na\">template<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx-dep1<\/span>\r\n    <span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">containers<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx<\/span>\r\n          <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx:latest<\/span>\r\n          <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"pi\">-<\/span> <span class=\"na\">containerPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">80<\/span>\r\n<span class=\"nn\">---<\/span>\r\n<span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">apps\/v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Deployment<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx2<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">replicas<\/span><span class=\"pi\">:<\/span> <span class=\"m\">2<\/span>\r\n  <span class=\"na\">selector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">matchLabels<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx-dep2<\/span>\r\n  <span class=\"na\">template<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx-dep2<\/span>\r\n    <span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">containers<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx<\/span>\r\n          <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx:latest<\/span>\r\n          <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"pi\">-<\/span> <span class=\"na\">containerPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">80<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>$ kubectl apply -f deployment.yaml \r\ndeployment.apps\/nginx0 created\r\ndeployment.apps\/nginx1 created\r\ndeployment.apps\/nginx2 created\r\n$ kubectl get pod -o wide -L app\r\nNAME                      READY   STATUS    RESTARTS   AGE    IP             NODE          NOMINATED NODE   READINESS GATES   APP\r\nnginx0-7f59f499f8-gwjzt   1\/1     Running   0          8m6s   10.244.0.168   10.0.10.187   &lt;none&gt;           &lt;none&gt;            nginx-dep0\r\nnginx0-7f59f499f8-xq6zh   1\/1     Running   0          8m6s   10.244.0.32    10.0.10.253   &lt;none&gt;           &lt;none&gt;            nginx-dep0\r\nnginx1-76fccb476f-hn7lg   1\/1     Running   0          8m6s   10.244.0.169   10.0.10.187   &lt;none&gt;           &lt;none&gt;            nginx-dep1\r\nnginx1-76fccb476f-tj4s6   1\/1     Running   0          8m6s   10.244.1.20    10.0.10.152   &lt;none&gt;           &lt;none&gt;            nginx-dep1\r\nnginx2-f7cf4975b-988s5    1\/1     Running   0          8m6s   10.244.0.170   10.0.10.187   &lt;none&gt;           &lt;none&gt;            nginx-dep2\r\nnginx2-f7cf4975b-rzsnj    1\/1     Running   0          8m6s   10.244.0.33    10.0.10.253   &lt;none&gt;           &lt;none&gt;            nginx-dep2\r\n<\/code><\/pre>\n<h2>\u90e8\u7f72ClusterIP<\/h2>\n<p>\u90e8\u7f72Ingress\u7684\u540e\u7aefClusterIP\u3002\u4e3a\u6bcf\u4e2aDeployment\u521b\u5efa\u4e09\u4e2aClusterIP\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Service<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">clusterip0<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">type<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ClusterIP<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">clusterip<\/span>\r\n      <span class=\"na\">protocol<\/span><span class=\"pi\">:<\/span> <span class=\"s\">TCP<\/span>\r\n      <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">8080<\/span>\r\n      <span class=\"na\">targetPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">80<\/span>\r\n  <span class=\"na\">selector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx-dep0<\/span>\r\n<span class=\"nn\">---<\/span>\r\n<span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Service<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">clusterip1<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">type<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ClusterIP<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">clusterip<\/span>\r\n      <span class=\"na\">protocol<\/span><span class=\"pi\">:<\/span> <span class=\"s\">TCP<\/span>\r\n      <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">8080<\/span>\r\n      <span class=\"na\">targetPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">80<\/span>\r\n  <span class=\"na\">selector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx-dep1<\/span>\r\n<span class=\"nn\">---<\/span>\r\n<span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Service<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">clusterip2<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">type<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ClusterIP<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">clusterip<\/span>\r\n      <span class=\"na\">protocol<\/span><span class=\"pi\">:<\/span> <span class=\"s\">TCP<\/span>\r\n      <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">8080<\/span>\r\n      <span class=\"na\">targetPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">80<\/span>\r\n  <span class=\"na\">selector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx-dep2<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>$ kubectl apply -f ClusterIP.yaml \r\nservice\/clusterip0 created\r\nservice\/clusterip1 created\r\nservice\/clusterip2 created\r\n$ kubectl get svc\r\nNAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE\r\nclusterip0   ClusterIP   10.96.48.239    &lt;none&gt;        8080\/TCP   12s\r\nclusterip1   ClusterIP   10.96.118.101   &lt;none&gt;        8080\/TCP   12s\r\nclusterip2   ClusterIP   10.96.111.0     &lt;none&gt;        8080\/TCP   12s\r\nkubernetes   ClusterIP   10.96.0.1       &lt;none&gt;        443\/TCP    5d18h\r\n<\/code><\/pre>\n<p>\u6211\u4eec\u9700\u8981\u5728\u6bcf\u4e2aClusterIP\u7684&#8221;Endpoints&#8221;\u4e2d\u786e\u8ba4\u662f\u5426\u663e\u793a\u4e86\u4e0e\u9009\u62e9\u5668\u76f8\u5339\u914d\u7684Pod\u7684IP\u5730\u5740\u3002<\/p>\n<pre class=\"post-pre\"><code>$ kubectl describe svc clusterip0\r\nName:              clusterip0\r\nNamespace:         default\r\nLabels:            &lt;none&gt;\r\nAnnotations:       &lt;none&gt;\r\nSelector:          app=nginx-dep0\r\nType:              ClusterIP\r\nIP Family Policy:  SingleStack\r\nIP Families:       IPv4\r\nIP:                10.96.48.239\r\nIPs:               10.96.48.239\r\nPort:              clusterip  8080\/TCP\r\nTargetPort:        80\/TCP\r\nEndpoints:         10.244.0.168:80,10.244.0.32:80\r\nSession Affinity:  None\r\nEvents:            &lt;none&gt;\r\n$ kubectl describe svc clusterip1\r\n\u30fb\u30fb\u30fb\u7701\u7565\u30fb\u30fb\u30fb\r\n$ kubectl describe svc clusterip2\r\n\u30fb\u30fb\u30fb\u7701\u7565\u30fb\u30fb\u30fb\r\n<\/code><\/pre>\n<h1>\u5728Ingress\u4e2d\u7684\u8bbe\u7f6e<\/h1>\n<h2>\u521b\u5efaTLS\u52a0\u5bc6\u5bc6\u94a5\u7684\u8fc7\u7a0b\u3002<\/h2>\n<p>\u5982\u679c\u5728Ingress\u4e2d\u4f7f\u7528HTTPS\uff0c\u5219\u9700\u8981\u4e8b\u5148\u521b\u5efa\u8bc1\u4e66\u4f5c\u4e3a\u5bc6\u94a5\u3002\u672c\u6b21\u5c06\u4f7f\u7528\u81ea\u7b7e\u540d\u8bc1\u4e66\u3002<\/p>\n<pre class=\"post-pre\"><code>$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj \"\/CN=nginxsvc\/O=nginxsvc\"\r\nGenerating a 2048 bit RSA private key\r\n*********************************************************************************************************+++++\r\n************************************************************************+++++\r\nwriting new private key to 'tls.key'\r\n-----\r\n$ kubectl create secret tls tls-secret --key tls.key --cert tls.crt\r\nsecret\/tls-secret created\r\n<\/code><\/pre>\n<h2>\u90e8\u7f72Ingress<\/h2>\n<p>\u5982\u679c\u6307\u5b9a\u4e86 &#8220;\/path1&#8243;\uff0c\u5c06\u8def\u7531\u5230 &#8220;clusterip1&#8243;\uff1b\u5982\u679c\u6307\u5b9a\u4e86 &#8220;\/path2&#8243;\uff0c\u5c06\u8def\u7531\u5230 &#8220;clusterip2&#8243;\uff1b\u5426\u5219\u5c06\u8def\u7531\u5230 &#8220;clusterip0&#8243;\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">networking.k8s.io\/v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Ingress<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sample-ingress<\/span>\r\n  <span class=\"na\">annotations<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">kubernetes.io\/ingress.class<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">nginx\"<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">rules<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">http<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">paths<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"na\">path<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/path1<\/span>\r\n        <span class=\"na\">pathType<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Prefix<\/span>\r\n        <span class=\"na\">backend<\/span><span class=\"pi\">:<\/span>\r\n          <span class=\"na\">service<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">clusterip1<\/span>\r\n            <span class=\"na\">port<\/span><span class=\"pi\">:<\/span>\r\n             <span class=\"na\">number<\/span><span class=\"pi\">:<\/span> <span class=\"m\">8080<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"na\">path<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/path2<\/span>\r\n        <span class=\"na\">pathType<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Prefix<\/span>\r\n        <span class=\"na\">backend<\/span><span class=\"pi\">:<\/span>\r\n          <span class=\"na\">service<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">clusterip2<\/span>\r\n            <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> \r\n             <span class=\"na\">number<\/span><span class=\"pi\">:<\/span> <span class=\"m\">8080<\/span>\r\n  <span class=\"na\">defaultBackend<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">service<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">clusterip0<\/span>\r\n      <span class=\"na\">port<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">number<\/span><span class=\"pi\">:<\/span> <span class=\"m\">8080<\/span>\r\n  <span class=\"na\">tls<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">secretName<\/span><span class=\"pi\">:<\/span> <span class=\"s\">tls-secret<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>$ kubectl apply -f sampleIngress-ga.yaml \r\ningress.networking.k8s.io\/sample-ingress created\r\n$ kubectl get ingress\r\nNAME             CLASS    HOSTS   ADDRESS   PORTS     AGE\r\nsample-ingress   &lt;none&gt;   *                 80, 443   8s\r\n<\/code><\/pre>\n<p>\u90e8\u7f72\u540e\u7684\u521d\u59cb\u9636\u6bb5\uff0c\u201cADDRESS\u201d\u5b57\u6bb5\u4f1a\u4e3a\u7a7a\u767d\uff0c\u4f46\u7b49\u5f85\u51e0\u5206\u949f\u540e\uff0c\u4f1a\u663e\u793aLoadBalancer\u7684IP\u5730\u5740\u3002<\/p>\n<pre class=\"post-pre\"><code>$ kubectl get ingress\r\nNAME             CLASS    HOSTS   ADDRESS          PORTS     AGE\r\nsample-ingress   &lt;none&gt;   *       129.159.68.246   80, 443   42s\r\n<\/code><\/pre>\n<p>\u6211\u4e5f\u4f1a\u786e\u8ba4\u8be6\u7ec6\u60c5\u51b5\u3002<\/p>\n<pre class=\"post-pre\"><code>$ kubectl describe ingress sample-ingress\r\nName:             sample-ingress\r\nNamespace:        default\r\nAddress:          129.159.68.246\r\nDefault backend:  clusterip0:8080 (10.244.0.168:80,10.244.0.32:80)\r\nTLS:\r\n  tls-secret terminates \r\nRules:\r\n  Host        Path  Backends\r\n  ----        ----  --------\r\n  *           \r\n              \/path1   clusterip1:8080 (10.244.0.169:80,10.244.1.20:80)\r\n              \/path2   clusterip2:8080 (10.244.0.170:80,10.244.0.33:80)\r\nAnnotations:  kubernetes.io\/ingress.class: nginx\r\nEvents:\r\n  Type    Reason  Age                From                      Message\r\n  ----    ------  ----               ----                      -------\r\n  Normal  Sync    10m (x2 over 10m)  nginx-ingress-controller  Scheduled for sync\r\n<\/code><\/pre>\n<h1>\u786e\u8ba4\u884c\u52a8<\/h1>\n<h2>\u51c6\u5907index.html\u6587\u4ef6\u3002<\/h2>\n<p>\u901a\u8fc7 Ingress \u53d1\u9001\u8bf7\u6c42\u5e76\u786e\u8ba4\u54cd\u5e94\u3002\u7136\u800c\uff0c\u73b0\u5728\u6211\u4eec\u4e0d\u77e5\u9053\u8bf7\u6c42\u88ab\u8d1f\u8f7d\u5747\u8861\u5230\u54ea\u4e2a Pod\uff0c\u6240\u4ee5\u6211\u4eec\u4f1a\u5728\u6bcf\u4e2a Pod \u7684 index.html \u6587\u4ef6\u4e2d\u5199\u5165\u4e3b\u673a\u540d\u3002<br \/>\n\u53e6\u5916\uff0cnginx1 \u548c nginx2 \u5206\u522b\u5728\u201cpath1\u201d\u548c\u201cpath2\u201d\u4e0b\u51c6\u5907 index.html \u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>$ kubectl exec -it nginx0-7f59f499f8-gwjzt -- \/bin\/bash\r\nroot@nginx0-7f59f499f8-gwjzt:\/# echo `hostname` &gt; \/usr\/share\/nginx\/html\/index.html \r\nroot@nginx0-7f59f499f8-gwjzt:\/# exit\r\nexit\r\n\r\n$ kubectl exec -it nginx1-76fccb476f-tj4s6 -- \/bin\/bash\r\nroot@nginx1-76fccb476f-tj4s6:\/# mkdir \/usr\/share\/nginx\/html\/path1\r\nroot@nginx1-76fccb476f-tj4s6:\/# echo `hostname` &gt; \/usr\/share\/nginx\/html\/path1\/index.html\r\nroot@nginx1-76fccb476f-tj4s6:\/# exit\r\nexit\r\n\r\n\u30fb\u30fb\u30fb\u305d\u306e\u307b\u304b\u306f\u7701\u7565\u30fb\u30fb\u30fb\r\n<\/code><\/pre>\n<h2>\u786e\u8ba4\u64cd\u4f5c<\/h2>\n<p>\u901a\u8fc7Ingress\u53d1\u90015\u4e2aHTTP\u8bf7\u6c42\uff0c\u4ee5\u786e\u8ba4\u5176\u529f\u80fd\u3002<\/p>\n<pre class=\"post-pre\"><code>$ for i in 1 2 3 4 5; do curl http:\/\/129.159.68.246\/ ; done\r\nnginx0-7f59f499f8-xq6zh\r\nnginx0-7f59f499f8-gwjzt\r\nnginx0-7f59f499f8-gwjzt\r\nnginx0-7f59f499f8-xq6zh\r\nnginx0-7f59f499f8-xq6zh\r\n$ for i in 1 2 3 4 5; do curl http:\/\/129.159.68.246\/path1\/ ; done\r\nnginx1-76fccb476f-tj4s6\r\nnginx1-76fccb476f-hn7lg\r\nnginx1-76fccb476f-tj4s6\r\nnginx1-76fccb476f-hn7lg\r\nnginx1-76fccb476f-tj4s6\r\n$ for i in 1 2 3 4 5; do curl http:\/\/129.159.68.246\/path2\/ ; done\r\nnginx2-f7cf4975b-988s5\r\nnginx2-f7cf4975b-rzsnj\r\nnginx2-f7cf4975b-rzsnj\r\nnginx2-f7cf4975b-988s5\r\nnginx2-f7cf4975b-988s5\r\n<\/code><\/pre>\n<p>\u6211\u4f1a\u901a\u8fc7HTTPS\u8fdb\u884c\u786e\u8ba4\u3002<\/p>\n<pre class=\"post-pre\"><code>$ for i in 1 2 3 4 5; do curl -k https:\/\/129.159.68.246\/ ; done\r\nnginx0-7f59f499f8-gwjzt\r\nnginx0-7f59f499f8-xq6zh\r\nnginx0-7f59f499f8-xq6zh\r\nnginx0-7f59f499f8-gwjzt\r\nnginx0-7f59f499f8-xq6zh\r\n$ for i in 1 2 3 4 5; do curl -k https:\/\/129.159.68.246\/path1\/ ; done\r\nnginx1-76fccb476f-hn7lg\r\nnginx1-76fccb476f-tj4s6\r\nnginx1-76fccb476f-hn7lg\r\nnginx1-76fccb476f-tj4s6\r\nnginx1-76fccb476f-tj4s6\r\n$ for i in 1 2 3 4 5; do curl -k https:\/\/129.159.68.246\/path2\/ ; done\r\nnginx2-f7cf4975b-rzsnj\r\nnginx2-f7cf4975b-rzsnj\r\nnginx2-f7cf4975b-988s5\r\nnginx2-f7cf4975b-rzsnj\r\nnginx2-f7cf4975b-988s5\r\n<\/code><\/pre>\n<p>\u6211\u4eec\u53ef\u4ee5\u786e\u8ba4\u5b83\u4eec\u5404\u81ea\u6309\u7167\u9884\u671f\u8fdb\u884c\u64cd\u4f5c\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9996\u5148 \u6211\u60f3\u786e\u8ba4\u4e00\u4e0b\u5728\u4f7f\u7528Ingress\u65f6\u7684OKE\u8bbe\u7f6e\u65b9\u6cd5\u3002\u867d\u7136\u624b\u518c\u4e0a\u6709\u8bf4\u660e\uff0c\u4f46\u6309\u7167\u624b\u518c\u4e0a\u7684\u65b9\u6cd5\u65e0\u6cd5\u5b9e\u73b0\uff0c\u6240\u4ee5\u6211 [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-33224","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>\u4f7f\u7528Kubernetes\u7684\u5bb9\u5668\u5f15\u64ce\uff08OKE\uff09\u6765\u914d\u7f6eIngress - 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\/\u4f7f\u7528kubernetes\u7684\u5bb9\u5668\u5f15\u64ce\uff08oke\uff09\u6765\u914d\u7f6eingress\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4f7f\u7528Kubernetes\u7684\u5bb9\u5668\u5f15\u64ce\uff08OKE\uff09\u6765\u914d\u7f6eIngress\" \/>\n<meta property=\"og:description\" content=\"\u9996\u5148 \u6211\u60f3\u786e\u8ba4\u4e00\u4e0b\u5728\u4f7f\u7528Ingress\u65f6\u7684OKE\u8bbe\u7f6e\u65b9\u6cd5\u3002\u867d\u7136\u624b\u518c\u4e0a\u6709\u8bf4\u660e\uff0c\u4f46\u6309\u7167\u624b\u518c\u4e0a\u7684\u65b9\u6cd5\u65e0\u6cd5\u5b9e\u73b0\uff0c\u6240\u4ee5\u6211 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528kubernetes\u7684\u5bb9\u5668\u5f15\u64ce\uff08oke\uff09\u6765\u914d\u7f6eingress\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-07T07:35:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-28T19:56:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d160237434c4406bffede\/10-0.png\" \/>\n<meta name=\"author\" content=\"\u5b87, \u534e\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u5b87, \u534e\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 \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\/%e4%bd%bf%e7%94%a8kubernetes%e7%9a%84%e5%ae%b9%e5%99%a8%e5%bc%95%e6%93%8e%ef%bc%88oke%ef%bc%89%e6%9d%a5%e9%85%8d%e7%bd%aeingress%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kubernetes%e7%9a%84%e5%ae%b9%e5%99%a8%e5%bc%95%e6%93%8e%ef%bc%88oke%ef%bc%89%e6%9d%a5%e9%85%8d%e7%bd%aeingress%e3%80%82\/\",\"name\":\"\u4f7f\u7528Kubernetes\u7684\u5bb9\u5668\u5f15\u64ce\uff08OKE\uff09\u6765\u914d\u7f6eIngress - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-07-07T07:35:05+00:00\",\"dateModified\":\"2024-04-28T19:56:51+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/513018e4e121d3add1b7c5de8be21458\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kubernetes%e7%9a%84%e5%ae%b9%e5%99%a8%e5%bc%95%e6%93%8e%ef%bc%88oke%ef%bc%89%e6%9d%a5%e9%85%8d%e7%bd%aeingress%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kubernetes%e7%9a%84%e5%ae%b9%e5%99%a8%e5%bc%95%e6%93%8e%ef%bc%88oke%ef%bc%89%e6%9d%a5%e9%85%8d%e7%bd%aeingress%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kubernetes%e7%9a%84%e5%ae%b9%e5%99%a8%e5%bc%95%e6%93%8e%ef%bc%88oke%ef%bc%89%e6%9d%a5%e9%85%8d%e7%bd%aeingress%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4f7f\u7528Kubernetes\u7684\u5bb9\u5668\u5f15\u64ce\uff08OKE\uff09\u6765\u914d\u7f6eIngress\"}]},{\"@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\/513018e4e121d3add1b7c5de8be21458\",\"name\":\"\u5b87, \u534e\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/63cd45cbc05a35fc4ff7637a163c83c4962ef58d27472726c3a3e0c9c5194f0f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/63cd45cbc05a35fc4ff7637a163c83c4962ef58d27472726c3a3e0c9c5194f0f?s=96&d=mm&r=g\",\"caption\":\"\u5b87, \u534e\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yuhua\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kubernetes%e7%9a%84%e5%ae%b9%e5%99%a8%e5%bc%95%e6%93%8e%ef%bc%88oke%ef%bc%89%e6%9d%a5%e9%85%8d%e7%bd%aeingress%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4f7f\u7528Kubernetes\u7684\u5bb9\u5668\u5f15\u64ce\uff08OKE\uff09\u6765\u914d\u7f6eIngress - 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\/\u4f7f\u7528kubernetes\u7684\u5bb9\u5668\u5f15\u64ce\uff08oke\uff09\u6765\u914d\u7f6eingress\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u4f7f\u7528Kubernetes\u7684\u5bb9\u5668\u5f15\u64ce\uff08OKE\uff09\u6765\u914d\u7f6eIngress","og_description":"\u9996\u5148 \u6211\u60f3\u786e\u8ba4\u4e00\u4e0b\u5728\u4f7f\u7528Ingress\u65f6\u7684OKE\u8bbe\u7f6e\u65b9\u6cd5\u3002\u867d\u7136\u624b\u518c\u4e0a\u6709\u8bf4\u660e\uff0c\u4f46\u6309\u7167\u624b\u518c\u4e0a\u7684\u65b9\u6cd5\u65e0\u6cd5\u5b9e\u73b0\uff0c\u6240\u4ee5\u6211 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528kubernetes\u7684\u5bb9\u5668\u5f15\u64ce\uff08oke\uff09\u6765\u914d\u7f6eingress\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-07-07T07:35:05+00:00","article_modified_time":"2024-04-28T19:56:51+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d160237434c4406bffede\/10-0.png"}],"author":"\u5b87, \u534e","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u5b87, \u534e","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"7 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kubernetes%e7%9a%84%e5%ae%b9%e5%99%a8%e5%bc%95%e6%93%8e%ef%bc%88oke%ef%bc%89%e6%9d%a5%e9%85%8d%e7%bd%aeingress%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kubernetes%e7%9a%84%e5%ae%b9%e5%99%a8%e5%bc%95%e6%93%8e%ef%bc%88oke%ef%bc%89%e6%9d%a5%e9%85%8d%e7%bd%aeingress%e3%80%82\/","name":"\u4f7f\u7528Kubernetes\u7684\u5bb9\u5668\u5f15\u64ce\uff08OKE\uff09\u6765\u914d\u7f6eIngress - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-07-07T07:35:05+00:00","dateModified":"2024-04-28T19:56:51+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/513018e4e121d3add1b7c5de8be21458"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kubernetes%e7%9a%84%e5%ae%b9%e5%99%a8%e5%bc%95%e6%93%8e%ef%bc%88oke%ef%bc%89%e6%9d%a5%e9%85%8d%e7%bd%aeingress%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kubernetes%e7%9a%84%e5%ae%b9%e5%99%a8%e5%bc%95%e6%93%8e%ef%bc%88oke%ef%bc%89%e6%9d%a5%e9%85%8d%e7%bd%aeingress%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kubernetes%e7%9a%84%e5%ae%b9%e5%99%a8%e5%bc%95%e6%93%8e%ef%bc%88oke%ef%bc%89%e6%9d%a5%e9%85%8d%e7%bd%aeingress%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4f7f\u7528Kubernetes\u7684\u5bb9\u5668\u5f15\u64ce\uff08OKE\uff09\u6765\u914d\u7f6eIngress"}]},{"@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\/513018e4e121d3add1b7c5de8be21458","name":"\u5b87, \u534e","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/63cd45cbc05a35fc4ff7637a163c83c4962ef58d27472726c3a3e0c9c5194f0f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/63cd45cbc05a35fc4ff7637a163c83c4962ef58d27472726c3a3e0c9c5194f0f?s=96&d=mm&r=g","caption":"\u5b87, \u534e"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yuhua\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kubernetes%e7%9a%84%e5%ae%b9%e5%99%a8%e5%bc%95%e6%93%8e%ef%bc%88oke%ef%bc%89%e6%9d%a5%e9%85%8d%e7%bd%aeingress%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/33224","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\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=33224"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/33224\/revisions"}],"predecessor-version":[{"id":80040,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/33224\/revisions\/80040"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=33224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=33224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=33224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}