Tengo un pequeño cluster kubernetes (1.3) (básicamente un nodo) y me gustaría instalar gogs allí. Gogs está "instalado" usando Helm. Tengo las siguientes templates en mi carta de timón:
El material http está configurado correctamente y puedo acceder al contenedor, así como a los repositorys git que contiene http sin ningún problema. Ahora me gustaría usar ssh para las conexiones git también. Probé la configuration de –tcp-services-configmap de nginx-ingress, pero fue en vano. El logging del controller de input indica que el service configurado no tiene ningún punto final activo, lo cual me parece bastante extraño, ya que el material http está funcionando.
ACTUALIZAR
Acabo de hacer un nmap en el DNS y el puerto 2222 no está abierto. Esto parece un problema de configuration. El puerto está abierto en el contenedor (probado al conectarse al cluster ip desde el ndoe).
Supongo que el problema es que el logging del controller de input indica que el service configurado no tiene puntos finales activos.
Mi Servicio onfiguration es:
apiVersion: v1 kind: Service metadata: name: {{ template "fullname" . }} labels: app: {{ template "fullname" . }} spec: ports: - name: http port: 80 targetPort: http protocol: TCP - name: ssh port: 2222 targetPort: ssh protocol: TCP selector: app: {{ template "fullname" . }}
El config-map es:
apiVersion: v1 kind: ConfigMap metadata: name: tcp-configmap-ssh data: 2222: "default/{{ template "fullname" . }}:2222"
Respondiendo mi propia pregunta. Este problema es más bien un problema de configuration y es causado por mi propia culpa.
Básicamente, no publiqué ReplicationController del recurso Nginx-Ingress. A este le faltaba el puerto 2222. Ahora parece:
apiVersion: v1 kind: ReplicationController metadata: name: {{ template "fullname" . }} labels: k8s-app: "{{ .Chart.Name }}" chart: "{{.Chart.Name}}-{{.Chart.Version}}" spec: replicas: 1 selector: k8s-app: "{{ .Chart.Name }}" template: metadata: labels: name: {{ template "fullname" . }} k8s-app: "{{ .Chart.Name }}" chart: "{{.Chart.Name}}-{{.Chart.Version}}" spec: terminationGracePeriodSeconds: 60 containers: - image: gcr.io/google_containers/nginx-ingress-controller:0.8.3 name: "{{ .Chart.Name }}" imagePullPolicy: Always readinessProbe: httpGet: path: /healthz port: 10254 scheme: HTTP livenessProbe: httpGet: path: /healthz port: 10254 scheme: HTTP initialDelaySeconds: 10 timeoutSeconds: 1 env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace ports: - containerPort: 80 hostPort: 80 # we do need to expose 2222 to be able to access this port via # the tcp-services - containerPort: 2222 hostPort: 2222 args: - /nginx-ingress-controller - --default-backend-service=$(POD_NAMESPACE)/default-http-backend - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-configmap-ssh