次の項では、WebLogic Kubernetes Operatorの既知の制限について説明します。 各問題には、回避策または関連する問題番号が含まれている場合があります。
問題: SSLパススルーが有効な--set "controller.extraArgs.enable-ssl-passthrough=true"
を使用してNGINXイングレス・コントローラをインストールすると、その後作成されるイングレス・ルールは、個々のサーバー・サービスへのSSLパススルーを使用して失敗します。
$ kubectl -n nginx get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-operator-ingress-nginx-controller-admission ClusterIP 10.43.234.82 <none> 443/TCP 3m3s
nginx-operator-ingress-nginx-controller LoadBalancer 10.43.193.149 192.168.106.2 80:32315/TCP,443:31710/TCP 3m3s
たとえば、ドメインの作成後、オペレータは各サーバーに対してヘッドレスKubernetesサービスを作成し、クラスタに対してヘッドレス・サービスを作成します。 各サーバーの個々のサービスは、CLUSTER-IP
がNone
であるためヘッドレスです。クラスタ・サービスは、CLUSTER-IP
に有効なIPアドレスがあるため、ヘッドレスになります。
$ kubectl -n sample-domain1-ns get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
sample-domain1-admin-server ClusterIP None <none> 7001/TCP,7002/TCP 23h
sample-domain1-cluster-cluster-1 ClusterIP 10.43.108.163 <none> 8001/TCP,7002/TCP 23h
sample-domain1-managed-server1 ClusterIP None <none> 8001/TCP,7002/TCP 23h
SSLパススルーを使用して管理サーバーにアクセスするためのパススルー・イングレス・ルールを作成する場合、たとえば:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: console-ssl-passthru
namespace: sample-domain1-ns
annotations:
nginx.ingress.kubernetes.io/ssl-passthrough: 'true'
spec:
ingressClassName: nginx
rules:
- http:
paths:
- backend:
service:
name: sample-domain1-admin-server
port:
number: 7002
path: /
pathType: Prefix
host: localk8s.com
管理サーバー上のWebLogicコンソールにイングレス・コントローラを介してアクセスすると、エラーが発生します。
curl -k -v -L https://localk8s.com:31710/console
* Trying 192.168.106.2:31710...
* Connected to localk8s.com (192.168.106.2) port 31710 (#0)
* ALPN: offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
* LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to localk8s.com:31710
* Closing connection 0
curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to localk8s.com:31710
これは現在、https://github.com/kubernetes/ingress-nginx/issues/1718のNGINXバグとして報告されています