Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 如何从AppEngine开发服务器访问k8s服务_Google App Engine_Kubernetes_Ssl Certificate_Google Kubernetes Engine - Fatal编程技术网

Google app engine 如何从AppEngine开发服务器访问k8s服务

Google app engine 如何从AppEngine开发服务器访问k8s服务,google-app-engine,kubernetes,ssl-certificate,google-kubernetes-engine,Google App Engine,Kubernetes,Ssl Certificate,Google Kubernetes Engine,太多的挣扎,我需要分享 需要:GET/POSTonhttps://ip_cluster_/apis/v1/xxx来自开发应用服务器(用于本地测试) 错误:URL的SSL证书无效和/或缺失 原因:k8s群集终结点使用自动签名证书 尝试: 使用带有入口的Let's Encrypt证书。失败,因为让我们加密需要DNS 请求AppEngine执行不安全连接:在main.app中全局使用PYTHONHTTPSVERIFY:0,在本地使用validate\u certificate=None使用url\u

太多的挣扎,我需要分享

需要:
GET
/
POST
on
https://ip_cluster_/apis/v1/xxx
来自
开发应用服务器
(用于本地测试)

错误:
URL的SSL证书无效和/或缺失

原因:k8s群集终结点使用自动签名证书

尝试:

  • 使用带有入口的Let's Encrypt证书。失败,因为让我们加密需要DNS
  • 请求AppEngine执行不安全连接:在
    main.app
    中全局使用
    PYTHONHTTPSVERIFY:0
    ,在本地使用
    validate\u certificate=None
    使用
    url\u fetch
    使用
    请求验证=False
    。失败,因为AppEngine中不允许使用自动签名证书的不安全SSL连接。公共关系:
  • https://container.googleapis.com/v1beta1/projects//locations//clusters/
    ,解码base64,写入文件,将它们与
    cert=('cluster\u k8s.cert','cluster\u k8s.key')一起使用
    请求中的
    。失败,因为AppEngine中禁用了本地证书支持。将它们与curl一起使用效果很好。很明显
  • 获取上述证书/密钥并将其作为自定义证书添加到google cloud sdk中:
    gcloud config set core/custom\u ca\u certs\u file=my\u cert.pem
    。失败是因为生活艰难
  • 获取上述证书/密钥并将其附加到google cloud sdk one:
    
    cd/usr/lib/googlecloudsdk/platform/google\u appengine/lib/cacerts/
    cat my_cert>>urlfetch_cacerts.txt
    
    失败是因为生活更加艰难

解决方案:像使用kubectl代理一样使用kubectl代理--port=8001

k8s服务在http中可从
http://localhost:8001

在AppEngine中切换端点,代码如下:


如果os.getenv('SERVER_SOFTWARE','').startswith('googleappengine/'):
#生产
其他:
#本地开发服务器