首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过HTTPS访问istio/k8s服务

通过HTTPS访问istio/k8s服务
EN

Stack Overflow用户
提问于 2019-12-05 17:13:17
回答 1查看 122关注 0票数 0

我对Kubernetes和istio有点陌生。我正在尝试创建一个服务并通过HTTPS访问它。

  • 在HTTP上一切看起来都很棒
  • 我使用了证书管理器和让我们加密生成证书
  • 证书已成功生成。
  • 我使用以下命令生成了这个秘密
代码语言:javascript
复制
kubectl create secret generic clouddns --namespace=cert-manager --from-literal=GCP_PROJECT=<PROJECT> --from-file=/etc/keys/<KEY>.json

这些是网关、虚拟服务、集群发布器和证书的配置文件。

网关

代码语言:javascript
复制
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: messaging-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "<HOST>"
  - port:
      number: 443
      name: https
      protocol: HTTPS
    hosts:
    - "<HOST>"
    tls:
      credentialName: messaging-certificate
      mode: SIMPLE
      privateKey: sds
      serverCertificate: sds

虚拟服务

代码语言:javascript
复制
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: messaging
spec:
  hosts:
  - "<HOST>"
  gateways:
  - messaging-gateway
  http:
  - match:
    - uri:
        prefix: /
    route:
    - destination:
        host: messaging
        port:
          number: 8082

集群发布器

代码语言:javascript
复制
apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
  name: messaging-cluster-issuer
spec:
  acme:
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    email: <EMAIL>
    privateKeySecretRef:
      name: messaging-letsencrypt
    solvers:
    - dns01:
        clouddns:
          serviceAccountSecretRef:
            name: clouddns
            key: <KEY>.json
          project: <PROJECT>

证书

代码语言:javascript
复制
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
  name: messaging-certificate
spec:
  secretName: messaging-certificate
  duration: 2160h # 90d
  renewBefore: 360h # 15d
  organization:
  - RELE.AI
  commonName: <HOST>
  isCA: false
  keySize: 2048
  keyAlgorithm: rsa
  keyEncoding: pkcs1
  usages:
    - server auth
    - client auth
  dnsNames:
  - <HOST>
  issuerRef:
    name: messaging-cluster-issuer
    kind: ClusterIssuer

当我运行kubectl get secrets messaging-certificate -o yaml时,我可以看到tls.crt和tls.key内容。

你知道为什么我不能访问HTTPS吗?

-编辑

完整的istio清单 -我已经使用istioctl manifest generate生成了清单。希望这是正确的方法

EN

回答 1

Stack Overflow用户

发布于 2019-12-26 13:33:50

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59200185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档