2016-09-30 11 views
1

私は小さなkubernetes(1.3)クラスター(基本的に1つのノード)を持っていて、そこでゴッグをインストールしたいと思います。ゴッグはヘルムを使って "インストール"されます。私は私のヘルムチャートに次のテンプレートを持っている:画像gogsを使用してKubernetes Git Containerへのアクセスは、HTTP経由でもSSHでも可能です。

  • 展開(:0.9.97、containerPort 3000(HTTP)を有するだけでなく、2222(SSH)
  • イングレス(これが唯一のポートです80)
  • サービス(ポート80(HTTP)だけでなく、2222(SSH))

のhttp-ものが正しく設定されていると私はせずに、HTTP経由でコンテナと同様に含まれるのgit-リポジトリにアクセスすることができます私はgit-connectionにsshを使いたいと思っています。--tcp-services-configmap confiを試しました。 nginx-ingressのギャップですが、無駄です。 Ingress Controllerのログには、設定されたサービスにはアクティブなエンドポイントがないことが記載されています。

UPDATE

私はDNSのnmapのポート2222がオープンされていませんでした。これは構成の問題のようです。ポートはコンテナにオープンされています(ndoeからクラスタIPに接続してテスト済み)。

Ingressコントローラのログに、設定されたサービスにアクティブなエンドポイントがないことが問題であると推測されます。

マイサービスonfigurationは次のとおりです。自分の質問に答える

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

sshキーを生成してgit repoにアップロードしようとしましたか? gitのためにsshを使用したときに得られるエラーは何ですか? – prabodhprakash

+0

私はgit-repositoryに「普通の」方法でアクセスしようとしています(git clone ssh://[email protected]:2222/username/test-master.git)。 。働いていない。 – triplem

答えて

1

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

設定マップです。この問題はむしろ構成上の問題であり、私自身の過失によるものです。

基本的に私はNginx-Ingressリソースの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 
関連する問題