太多的挣扎,我需要分享。
需要:GET
上POST
上的https://ip_cluster_/apis/v1/xxx
/ dev_appserver
(用于本地测试)
错误:Invalid and/or missing SSL certificate for URL
原因:k8s集群端点使用自动签名证书
尝试:
PYTHONHTTPSVERIFY: 0
中与main.app
全局,在validate_certificate=None
中与url_fetch
本地,以及与{{1} }。失败,因为AppEngine中不允许与自动签名证书进行不安全的SSL连接。 PR:https://github.com/GoogleCloudPlatform/python-compat-runtime/pull/124 verify=False
获取证书/密钥,解码base64,写入文件,并将它们与requests
中的https://container.googleapis.com/v1beta1/projects/<my-gcp-project>/locations/<location>/clusters/<my-cluster>
一起使用。失败,因为在AppEngine中禁用了本地证书支持。配合使用curl效果很好。显然。cert=('cluster_k8s.cert', 'cluster_k8s.key')
。由于生活艰难而失败。requests
由于生活更加艰难而失败。答案 0 :(得分:0)
解决方案:使用kubectl proxy --port=8001
之类的kubectl代理
从http://localhost:8001
的http中知道可以访问k8s服务
在AppEngine中用以下代码切换端点:
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/'):
# Production
else:
# Local development server