{"id":1296,"date":"2019-07-16T14:04:33","date_gmt":"2019-07-16T11:04:33","guid":{"rendered":"https:\/\/artem.services\/?p=1296"},"modified":"2019-07-16T14:15:05","modified_gmt":"2019-07-16T11:15:05","slug":"gke-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-nginx-ingress-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d1%83%d1%8f-helm","status":"publish","type":"post","link":"https:\/\/artem.services\/?p=1296","title":{"rendered":"GKE &#8212; \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Nginx Ingress \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f HELM"},"content":{"rendered":"<p><img loading=\"lazy\" class=\"size-full wp-image-347 aligncenter\" src=\"https:\/\/artem.services\/wp-content\/uploads\/2018\/12\/GCP-Logo.png\" alt=\"\" width=\"955\" height=\"312\" srcset=\"https:\/\/artem.services\/wp-content\/uploads\/2018\/12\/GCP-Logo.png 955w, https:\/\/artem.services\/wp-content\/uploads\/2018\/12\/GCP-Logo-300x98.png 300w, https:\/\/artem.services\/wp-content\/uploads\/2018\/12\/GCP-Logo-768x251.png 768w, https:\/\/artem.services\/wp-content\/uploads\/2018\/12\/GCP-Logo-954x312.png 954w\" sizes=\"(max-width: 955px) 100vw, 955px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <a href=\"https:\/\/cloud.google.com\/community\/tutorials\/nginx-ingress-gke\" target=\"_blank\" rel=\"noopener noreferrer\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c <strong>HELM<\/strong> \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ncurl -o get_helm.sh https:\/\/raw.githubusercontent.com\/kubernetes\/helm\/master\/scripts\/get\r\nchmod +x get_helm.sh\r\n.\/get_helm.sh\r\n\r\nhelm init\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c <strong>Tiller<\/strong> \u0441 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c <strong>RBAC<\/strong><\/p>\n<blockquote><p>\u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 Kubernetes v1.8+, <strong>RBAC<\/strong> \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nkubectl create serviceaccount --namespace kube-system tiller\r\nkubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller\r\nhelm init --service-account tiller\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nkubectl get deployments -n kube-system | grep tiller\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c <strong>Nginx Ingress Controller<\/strong>:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nhelm install --name nginx-ingress stable\/nginx-ingress --set rbac.create=true --set controller.publishService.enabled=true\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0442\u0430\u043a\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430:<\/p>\n<pre>Error: release nginx-ingress failed: namespaces \"default\" is forbidden: User \"system:serviceaccount:kube-system:default\" cannot get resource \"namespaces\" in API group \"\" in the namespace \"default\"<\/pre>\n<p>&nbsp;<\/p>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nhelm init --service-account tiller --upgrade\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 <strong>IP<\/strong> \u0430\u0434\u0440\u0435\u0441 <strong>Ingress<\/strong>&#39;\u0430:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nkubectl --namespace default get services -o wide -w nginx-ingress-controller\r\n<\/pre>\n<p>&nbsp;<\/p>\n<blockquote><p>\u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0442\u0443\u0442. &nbsp; \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c HELM \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e: &nbsp; \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Tiller \u0441 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c RBAC \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 Kubernetes v1.8+, RBAC \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. &nbsp; &nbsp; \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c: &nbsp; \u0421\u043e\u0437\u0434\u0430\u0435\u043c Nginx Ingress Controller: &nbsp; \u0415\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0442\u0430\u043a\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430: Error: release nginx-ingress failed: namespaces &quot;default&quot; is forbidden: User &quot;system:serviceaccount:kube-system:default&quot; cannot get resource &quot;namespaces&quot; in API group &hellip; <a href=\"https:\/\/artem.services\/?p=1296\" class=\"more-link\">\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0447\u0438\u0442\u0430\u0442\u044c<span class=\"screen-reader-text\"> &quot;GKE &#8212; \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Nginx Ingress \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f HELM&quot;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[87],"tags":[69,937,109,52,55,18,17],"_links":{"self":[{"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/posts\/1296"}],"collection":[{"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/artem.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1296"}],"version-history":[{"count":3,"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/posts\/1296\/revisions"}],"predecessor-version":[{"id":1303,"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/posts\/1296\/revisions\/1303"}],"wp:attachment":[{"href":"https:\/\/artem.services\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1296"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/artem.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1296"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/artem.services\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}