小さな kubernetes (1.3) クラスター (基本的には 1 つのノード) があり、そこに gogs をインストールしたいと考えています。Gogs は、Helm を使用して「インストール」されます。Helm チャートに次のテンプレートがあります。
- デプロイ (イメージ gogs:0.9.97 を使用、containerPort 3000 (http) と 2222 (ssh) を持つ)
- Ingress (ポート 80 のみ)
- サービス (ポート 80 (http) および 2222 (ssh))
http-stuff は正しく構成されており、コンテナーと含まれている git-repositories に http 経由で問題なくアクセスできます。ここで、git 接続にも ssh を使用したいと思います。nginx-ingress の --tcp-services-configmap 構成を試しましたが、役に立ちませんでした。Ingress Controller のログには、構成されたサービスにアクティブなエンドポイントがないことが示されています。これは、http が機能しているため、かなり奇妙に感じます。
アップデート
DNS で nmap を実行したところ、ポート 2222 が開いていません。これは設定の問題のようです。コンテナーでポートが開いている (ndoe からクラスター IP に接続してテスト済み)。
問題は、設定されたサービスにアクティブなエンドポイントがないことが Ingress Controller のログに記録されていることだと思います。
私のサービス構成は次のとおりです。
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"