Я создал секрет, выполнив следующие команды
kubectl создать -n секрет по умолчанию tls istio-ingressgateway-certs --key private.pem --cert certificate.crt
Я применил следующее конфигурация
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: nginx-gateway
namespace: default
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
#- port:
#number: 80
#name: http
#protocol: HTTP
- port:
number: 443
name: tls
protocol: TLS
tls:
mode: PASSTHROUGH
#serverCertificate: /var/www/vhosts/sample.com/cert/certificate..crt
#privateKey: /var/www/vhosts/sample.com/cert/private.pem
hosts:
- "sample.com"
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: nginx
namespace: default
spec:
hosts:
- sample.com
gateways:
- nginx-gateway
tls:
- match:
- port: 443
sni_hosts:
- sample.com
route:
- destination:
host: nginx
port:
number: 443
kind: Service
apiVersion: v1
metadata:
name: nginx
namespace: default
labels:
tier: backend
app: nginx
run: nginx
spec:
ports:
- protocol: TCP
port: 443
#targetPort: 443
#nodePort: 32380
selector:
tier: backend
app: nginx
run: nginx
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
namespace: default
labels:
tier: backend
app: nginx
run: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
tier: backend
run: nginx
template:
metadata:
labels:
app: nginx
tier: backend
run: nginx
spec:
volumes:
- name: dir
hostPath:
path: /code
- name: config
configMap:
name: nginx-config
items:
- key: config
path: site.conf
- name: istio-ingressgateway-certs
secret:
secretName: istio-ingressgateway-certs
containers:
- name: nginx
image: nginx
volumeMounts:
- name: dir
mountPath: /code
- name: config
mountPath: /etc/nginx/conf.d
- name: istio-ingressgateway-certs
mountPath: /etc/istio-ingressgateway-certs
readOnly: true
ports:
- containerPort: 443
name: https
protocol: TCP
и всякий раз, когда я выполняю
kubectl exe c -it $ (kubectl get pod -l run = nginx -n по умолчанию -o jsonpath = {. items..metadata.name}) -n knocialapp - c istio-proxy - curl -v -k --resolve sample.com:443:192.168.0.13 https://sample.com
моя учебная ссылка выглядит следующим образом
https://istio.io/docs/tasks/traffic-management/ingress/ingress-sni-passthrough/#configure -an-ingress-gateway
, пример в приведенном выше коде работает нормально. но с моими настройками это не работает. не могли бы вы объяснить, что я делаю неправильно, так как я действительно новичок в Kubernetes и istio. все, что я хочу сделать, это получить доступ к моим приложениям, используя https://192.168.0.13: 443