2016-09-30 51 views
1

我有一個小型kubernetes(1.3)集羣(基本上是一個節點),並且希望在那裏安裝gogs。 Gogs是使用Helm「安裝」的。我有以下模板在我執掌圖表:通過HTTP訪問Kubernetes Git Container以及SSH和SSH

  • 部署(使用圖像視護目鏡:0.9.97,有containerPort 3000(HTTP)和2222(SSH)
  • 入口(這只是針對端口80)
  • 服務(端口80(HTTP)以及2222(SSH))

HTTP的東西被正確配置,我可以通過http訪問容器以及所包含的GIT中的資料庫,而不任何麻煩現在我想使用ssh作爲git-connections。我嘗試了--tcp-services-configmap confi對nginx-ingress的看法,但無濟於事。入口控制器的日誌表明,配置的服務沒有任何活動端點,我發現這很奇怪,因爲http的東西正在工作。

UPDATE

我只是做了對DNS和端口2222的NMAP不開。這看起來像一個konfiguration問題。端口在容器上打開(通過從ndoe連接到集羣ip進行測試)。

猜測問題是入口控制器的日誌表明配置的服務沒有任何活動端點。

我的服務onfiguration是:

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" . }} 

的配置地圖是:

apiVersion: v1 
kind: ConfigMap 
metadata: 
    name: tcp-configmap-ssh 
data: 
    2222: "default/{{ template "fullname" . }}:2222" 
+0

你試過生成你的SSH密鑰,並上傳到GIT回購?當你使用ssh作爲git時會得到什麼錯誤? – prabodhprakash

+0

我想通過「常用」方式訪問git-repository(git clone ssh://[email protected]:2222/username/test-master.git),並且我已經將我的密鑰添加到gogs 。不工作。 – triplem

回答

1

回答我的問題。這個問題是一個配置問題,是由我自己的錯誤造成的。

基本上我沒有發佈Nginx-Ingress Resource的ReplicationController。這一個是缺少端口2222.所以現在它看起來像:

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