{"id":6780,"date":"2022-10-25T13:22:36","date_gmt":"2022-10-25T04:22:36","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=6780"},"modified":"2022-12-31T19:43:23","modified_gmt":"2022-12-31T10:43:23","slug":"kubernetes-ingress-nginx-%ec%84%a4%ec%b9%98","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=6780","title":{"rendered":"Kubernetes &#8211; ingress-nginx \uc124\uce58"},"content":{"rendered":"<h1>Kubernetes &#8211; ingress-nginx \uc124\uce58<\/h1>\n<p>service \uc678\ubd80 \ub178\ucd9c\uc744 \uc704\ud55c ingress-nginx \ub97c \uc124\uce58\ud569\ub2c8\ub2e4.<\/p>\n<h2>ingress \uc124\uce58<\/h2>\n<pre><code class=\"language-bash\">git clone https:\/\/github.com\/kubernetes\/ingress-nginx.git\ncd .\/ingress-nginx\/deploy\/static\/provider\/baremetal\n# kubectl apply -f .\nkubectl apply -k .\/\nkubectl get deploy -n ingress-nginx\nkubectl get svc -n ingress-nginx\n\n# \uc0ac\uc124\uc778\uc99d\uc11c\ub97c \uc0ac\uc6a9\ud560 \uacbd\uc6b0 \uc544\ub798 \uba85\ub839 \uc2e4\ud589\nkubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission<\/code><\/pre>\n<p>node \ub2f9 3\uac1c\uc758 controller \ub97c \uc2e4\ud589\ud558\ub3c4\ub85d \uc218\uc815\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">kubectl edit deployment\/ingress-nginx-controller -n ingress-nginx\n\n......\nspec:\n  replicas: 3\n......<\/code><\/pre>\n<pre><code class=\"language-bash\">kubectl edit svc\/ingress-nginx-controller -n ingress-nginx\n\n......\n  ports:\n  - appProtocol: http\n    name: http\n    nodePort: 32080\n    port: 80\n    protocol: TCP\n    targetPort: http\n  - appProtocol: https\n    name: https\n    nodePort: 32443\n    port: 443\n    protocol: TCP\n    targetPort: https\n  selector:\n    app.kubernetes.io\/component: controller\n    app.kubernetes.io\/instance: ingress-nginx\n    app.kubernetes.io\/name: ingress-nginx\n  sessionAffinity: None\n  type: NodePort\n......<\/code><\/pre>\n<h2>\uc11c\ube44\uc2a4 \uc5f0\ub3d9 \uc0d8\ud50c<\/h2>\n<p><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=6777\">jenkins \uc124\uce58<\/a><\/p>\n<p>jenkins \ub97c ingress \ub85c \uc5f0\ub3d9\ud569\ub2c8\ub2e4.<\/p>\n<p>nodePort \ub294 \uc81c\uac70\ud558\uace0, \uc11c\ube44\uc2a4 \ud3ec\ud2b8\ub97c 80 \uc73c\ub85c \ubcc0\uacbd\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vi jenkins.yaml\n---------------------------\napiVersion: v1\nkind: Service\nmetadata:\n  name: jenkins\n  namespace: jenkins\nspec:\n  type: ClusterIP            # \uc774\uac70\n  ports:\n  - name: http-port          # \uc774\uac70\n    port: 80\n    protocol: TCP\n    targetPort: 8080\n  - name: jnlp-port\n    port: 50000\n    protocol: TCP\n    targetPort: 50000\n  selector:\n    app: jenkins\n---------------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">kubectl apply -f jenkins.yaml<\/code><\/pre>\n<pre><code class=\"language-bash\">vi jenkins-ingress.yaml\n---------------------------\napiVersion: networking.k8s.io\/v1\nkind: Ingress\nmetadata:\n  name: ingress-jenkins\n  namespace: jenkins\n  annotations:\n    kubernetes.io\/ingress.class: &quot;nginx&quot;\nspec:\n  rules:\n  - host: &quot;k8s-jenkins.skyer9.pe.kr&quot;\n    http:\n      paths:\n      - pathType: Prefix\n        path: &quot;\/&quot;\n        backend:\n          service:\n            name: jenkins\n            port:\n              number: 80\n---------------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">kubectl apply -f jenkins-ingress.yaml<\/code><\/pre>\n<p>\ud074\ub7ec\uc2a4\ud130 \uc678\ubd80\uc5d0\uc11c\ub294 ingress-nginx \ud3ec\ud2b8\ub97c \uc774\uc6a9\ud574\uc11c \uc811\uc18d\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">kubectl get svc -n ingress-nginx\nNAME                                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE\ningress-nginx-controller             NodePort    10.106.157.74   &lt;none&gt;        80:32080\/TCP,443:32443\/TCP   164m\ningress-nginx-controller-admission   ClusterIP   10.105.6.182    &lt;none&gt;        443\/TCP                      164m<\/code><\/pre>\n<p><a href=\"http:\/\/k8s-jenkins.local:32080\/\">http:\/\/k8s-jenkins.local:32080\/<\/a> \ub85c \uc811\uc18d\ud558\uba74 \uc820\ud0a8\uc2a4\uac00 \uc811\uc18d\ub429\ub2c8\ub2e4.<\/p>\n<p>\ud074\ub7ec\uc2a4\ud130 \ub0b4\ubd80\uc5d0\uc11c\ub294 \ud638\uc2a4\ud2b8 \ud30c\uc77c\uc5d0 \ub3c4\uba54\uc778 \ub4f1\ub85d \ud6c4(10.106.157.74) \uc811\uc18d\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">sudo vi \/etc\/hosts\n---------------------------\n10.106.157.74 k8s-jenkins.skyer9.pe.kr\n---------------------------<\/code><\/pre>\n<h2>https \uc801\uc6a9\ud558\uae30<\/h2>\n<p><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7193\">\uc5ec\uae30<\/a> \ub97c \ucc38\uc870\ud558\uc5ec jenkins \uc6a9 \uc0ac\uc124\uc778\uc99d\uc11c\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc544\ub798 \uba85\ub839\uc73c\ub85c secret \uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">kubectl create secret tls jenkins-jenkins-svc-cluster-local --key jenkins\/jenkins.key --cert jenkins\/jenkins.crt -n jenkins<\/code><\/pre>\n<pre><code class=\"language-bash\">vi jenkins-ingress.yaml\n---------------------------\napiVersion: networking.k8s.io\/v1\nkind: Ingress\nmetadata:\n  name: ingress-jenkins\n  namespace: jenkins\n  annotations:\n    kubernetes.io\/ingress.class: &quot;nginx&quot;\nspec:\n  tls:\n  - hosts:\n    - jenkins.jenkins.svc.cluster.local\n    secretName: jenkins-jenkins-svc-cluster-local\n  rules:\n  - host: &quot;jenkins.jenkins.svc.cluster.local&quot;\n    http:\n      paths:\n      - pathType: Prefix\n        path: &quot;\/&quot;\n        backend:\n          service:\n            name: jenkins\n            port:\n              number: 80\n---------------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">kubectl apply -f jenkins-ingress.yaml<\/code><\/pre>\n<p>rootCA.crt \uc778\uc99d\uc11c\ub97c PC \ub610\ub294 \ube0c\ub77c\uc6b0\uc800\uc5d0 \ub4f1\ub85d \ud6c4,<br \/>\n\ud638\uc2a4\ud2b8 \ud30c\uc77c\uc5d0 \uc544\ub798 \ub0b4\uc6a9\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">218.111.222.333    jenkins.jenkins.svc.cluster.local<\/code><\/pre>\n<p>\uc544\ub798 \uc8fc\uc18c\ub85c \uc811\uadfc\uc2dc https \uac00 \uc815\uc0c1\uc801\uc73c\ub85c \uc801\uc6a9\ub418\ub294 \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><a href=\"https:\/\/jenkins.jenkins.svc.cluster.local:32443\/\">https:\/\/jenkins.jenkins.svc.cluster.local:32443\/<\/a><\/p>\n<p><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2022\/10\/2022-12-11-01.png\"><img decoding=\"async\" src=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2022\/10\/2022-12-11-01.png\" alt=\"\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kubernetes &#8211; ingress-nginx \uc124\uce58 service \uc678\ubd80 \ub178\ucd9c\uc744 \uc704\ud55c ingress-nginx \ub97c \uc124\uce58\ud569\ub2c8\ub2e4. ingress \uc124\uce58 git clone https:\/\/github.com\/kubernetes\/ingress-nginx.git cd .\/ingress-nginx\/deploy\/static\/provider\/baremetal # kubectl apply -f . kubectl apply -k .\/ kubectl get deploy -n ingress-nginx kubectl get svc -n ingress-nginx # \uc0ac\uc124\uc778\uc99d\uc11c\ub97c \uc0ac\uc6a9\ud560 \uacbd\uc6b0 \uc544\ub798 \uba85\ub839 \uc2e4\ud589 kubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission node \ub2f9 3\uac1c\uc758 controller \ub97c \uc2e4\ud589\ud558\ub3c4\ub85d\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=6780\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-6780","post","type-post","status-publish","format-standard","hentry","category-devops"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/6780","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6780"}],"version-history":[{"count":12,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/6780\/revisions"}],"predecessor-version":[{"id":7371,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/6780\/revisions\/7371"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6780"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6780"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6780"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}