From d2c66d5909046436681cf4cf8b7ed1d6b4b04511 Mon Sep 17 00:00:00 2001 From: "Christopher J. Ruwe" Date: Tue, 4 Apr 2017 14:49:55 +0200 Subject: [PATCH] issue_43986: fix docu with non-functional proxy The documentation defines a couple of replication-controller and service to provision a docker-registry somewhere on the cluster and have it available by the name viz. A record of kube-registry.default.svc.. On each node, http-proxies are placed as daemon-set with the kube-registry DNS name set as upstream, so that the registry is available on each host under endpoint localhost:5000 Because in the documentation, selector-identifiers are the same for "upstream" registry and proxies, the proxies themselves register under the service intended for the upstream and now have themselves as upstream under a different port, where connection attempts result in "connection refused". Adapting selectors to be unique as in this patch fixes the problem. modified: cluster/addons/registry/README.md modified: cluster/addons/registry/registry-rc.yaml modified: cluster/addons/registry/registry-svc.yaml --- cluster/addons/registry/README.md | 20 +++++++++++++------- cluster/addons/registry/registry-rc.yaml | 6 +++--- cluster/addons/registry/registry-svc.yaml | 4 ++-- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/cluster/addons/registry/README.md b/cluster/addons/registry/README.md index 155487c3350..1fb4b361233 100644 --- a/cluster/addons/registry/README.md +++ b/cluster/addons/registry/README.md @@ -105,18 +105,18 @@ metadata: name: kube-registry-v0 namespace: kube-system labels: - k8s-app: kube-registry + k8s-app: kube-registry-upstream version: v0 kubernetes.io/cluster-service: "true" spec: replicas: 1 selector: - k8s-app: kube-registry + k8s-app: kube-registry-upstream version: v0 template: metadata: labels: - k8s-app: kube-registry + k8s-app: kube-registry-upstream version: v0 kubernetes.io/cluster-service: "true" spec: @@ -158,12 +158,12 @@ metadata: name: kube-registry namespace: kube-system labels: - k8s-app: kube-registry + k8s-app: kube-registry-upstream kubernetes.io/cluster-service: "true" kubernetes.io/name: "KubeRegistry" spec: selector: - k8s-app: kube-registry + k8s-app: kube-registry-upstream ports: - name: registry port: 5000 @@ -185,14 +185,14 @@ metadata: name: kube-registry-proxy namespace: kube-system labels: - k8s-app: kube-registry + k8s-app: kube-registry-proxy kubernetes.io/cluster-service: "true" version: v0.4 spec: template: metadata: labels: - k8s-app: kube-registry + k8s-app: kube-registry-proxy kubernetes.io/name: "kube-registry-proxy" kubernetes.io/cluster-service: "true" version: v0.4 @@ -216,6 +216,12 @@ spec: ``` +When modifying replication-controller, service and daemon-set defintions, take +care to ensure _unique_ identifiers for the rc-svc couple and the daemon-set. +Failing to do so will have register the localhost proxy daemon-sets to the +upstream service. As a result they will then try to proxy themselves, which +will, for obvious reasons, not work. + This ensures that port 5000 on each node is directed to the registry `Service`. You should be able to verify that it is running by hitting port 5000 with a web browser and getting a 404 error: diff --git a/cluster/addons/registry/registry-rc.yaml b/cluster/addons/registry/registry-rc.yaml index ab0afd27609..a6648c7851a 100644 --- a/cluster/addons/registry/registry-rc.yaml +++ b/cluster/addons/registry/registry-rc.yaml @@ -4,19 +4,19 @@ metadata: name: kube-registry-v0 namespace: kube-system labels: - k8s-app: kube-registry + k8s-app: kube-registry-upstream version: v0 kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile spec: replicas: 1 selector: - k8s-app: kube-registry + k8s-app: kube-registry-upstream version: v0 template: metadata: labels: - k8s-app: kube-registry + k8s-app: kube-registry-upstream version: v0 kubernetes.io/cluster-service: "true" spec: diff --git a/cluster/addons/registry/registry-svc.yaml b/cluster/addons/registry/registry-svc.yaml index db71c91ef78..186e7559c63 100644 --- a/cluster/addons/registry/registry-svc.yaml +++ b/cluster/addons/registry/registry-svc.yaml @@ -4,13 +4,13 @@ metadata: name: kube-registry namespace: kube-system labels: - k8s-app: kube-registry + k8s-app: kube-registry-upstream kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile kubernetes.io/name: "KubeRegistry" spec: selector: - k8s-app: kube-registry + k8s-app: kube-registry-upstream ports: - name: registry port: 5000