Istio Ağ Geçidi HTTPS Üzerinden Bağlanamıyor
Istio ile bir GKE kümesindeki dağıtımlar, üzerinden doğru şekilde çalışıyor HTTP. Ancak aşağıdaki kaynaklarla sertifika yöneticisi ile güvenliğini sağlamaya çalıştığımda HTTPS isteği curl'de olduğu gibi başarısız oluyor
`Immediate connect fail for 64:ff9b::2247:fd8a: Network is unreachable
* connect to 34.71.253.138 port 443 failed: Connection refused`.
HTTPS ile de çalışmasını sağlamak için ne yapmalıyım?
Aşağıdaki yapılandırmaya sahip ClusterIssuer
apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
name: letsencrypt-staging
namespace: istio-system
spec:
acme:
# The ACME server URL
server: https://acme-staging-v02.api.letsencrypt.org/directory
# Email address used for ACME registration
email: [email protected]
# Name of a secret used to store the ACME account private key
privateKeySecretRef:
name: letsencrypt-staging
solvers:
# ACME DNS-01 provider configurations
- dns01:
# Google Cloud DNS
clouddns:
# Secret from the google service account key
serviceAccountSecretRef:
name: cert-manager-credentials
key: gcp-dns-admin.json
# The project in which to update the DNS zone
project: iprocure-server
Hazır: Doğru durumunda bir sertifika oluşturan böyle bir sertifika yapılandırması
apiVersion: cert-manager.io/v1alpha3
kind: Certificate
metadata:
name: letsencrypt-staging
namespace: istio-system
spec:
secretName: letsencrypt-staging
commonName: "*.iprocure.tk"
dnsNames:
- '*.iprocure.tk'
issuerRef:
name: letsencrypt-staging
kind: ClusterIssuer
Ve son olarak bir Geçit
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: iprocure-gateway
namespace: default
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
tls:
httpsRedirect: false
- port:
number: 443
name: https
protocol: HTTPS
hosts:
- "*"
tls:
mode: SIMPLE
credentialName: letsencrypt-staging
Eğer yaparsam, kubectl describe certificate -n istio-system
Name: letsencrypt-staging
Namespace: istio-system
Labels: <none>
Annotations: <none>
API Version: cert-manager.io/v1
Kind: Certificate
Metadata:
Creation Timestamp: 2020-10-13T13:32:37Z
Generation: 1
Resource Version: 28030994
Self Link: /apis/cert-manager.io/v1/namespaces/istio-system/certificates/letsencrypt-staging
UID: ad838d28-5349-4aaa-a618-cc3bfc316e6e
Spec:
Common Name: *.iprocure.tk
Dns Names:
*.iprocure.tk
Issuer Ref:
Kind: ClusterIssuer
Name: letsencrypt-staging-clusterissuer
Secret Name: letsencrypt-staging-cert-secret
Status:
Conditions:
Last Transition Time: 2020-10-13T13:35:05Z
Message: Certificate is up to date and has not expired
Reason: Ready
Status: True
Type: Ready
Not After: 2021-01-11T12:35:05Z
Not Before: 2020-10-13T12:35:05Z
Renewal Time: 2020-12-12T12:35:05Z
Revision: 1
Events: <none>
Koşu kubectl get certificates -o wide -n istio-system, verim
NAME READY SECRET ISSUER STATUS AGE
letsencrypt-staging True letsencrypt-staging-cert-secret letsencrypt-staging-clusterissuer Certificate is up to date and has not expired 17h
Yanıtlar
Konu
Eski sürümlerde istio ile cert-menager kullanmak istiyorsanız etkinleştirilmesi gereken gereksinimler nedeniyle https'nin çalışmadığını varsayıyorum .
Çözüm
@Yunus Einsteinium yorumlarda bahsedildiği gibi
Beni doğru yönde yönlendirdiğiniz için teşekkür ederim. GKE'yi değil, OSS Istio'yu kullanmak gitmenin yoludur! HTTPS'yi çalıştırmayı başardım!
Yani buradaki çözüm , eski istio gke eklentisi yerine istioctl ile kurulan OOS istio'yu kullanmaktı .