我試圖在GCE hostes命名node-js-deployment
Kubernetes集羣我部署一個創建新的服務Kubernetes客戶蟒蛇創建服務錯誤
我跟着文檔,create_namespaced_service
這是業務數據:
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "node-js-service"
},
"spec": {
"selector": {
"app": "node-js"
},
"ports": [
{
"protocol": "TCP",
"port": 80,
"targetPort": 8000
}
]
}
}
這是Python函數來創建服務
api_instance = kubernetes.client.CoreV1Api()
namespace = 'default'
body = kubernetes.client.V1Service() # V1Serice
# Creating Meta Data
metadata = kubernetes.client.V1ObjectMeta()
metadata.name = "node-js-service"
# Creating spec
spec = kubernetes.client.V1ServiceSpec()
# Creating Port object
ports = kubernetes.client.V1ServicePort()
ports.protocol = 'TCP'
ports.target_port = 8000
ports.port = 80
spec.ports = ports
spec.selector = {"app": "node-js"}
body.spec = spec
try:
api_response = api_instance.create_namespaced_service(namespace, body, pretty=pretty)
pprint(api_response)
except ApiException as e:
print("Exception when calling CoreV1Api->create_namespaced_service: %s\n" % e)
錯誤:
Reason: Bad Request
HTTP response headers: HTTPHeaderDict({'Content-Type': 'application/json', 'Date': 'Tue, 21 Feb 2017 03:54:55 GMT', 'Content-Length': '227'})
HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"Service in version \"v1\" cannot be handled as a Service: only encoded map or array can be decoded into a struct","reason":"BadRequest","code":400}
但是,如果我傳遞JSON正在創建的服務。不知道我做錯了什麼。
任何幫助非常感謝,謝謝。
從未使用過的客戶蟒蛇,因此無法幫助100%。但我猜你至少忘了將元數據對象分配給body.metadata。另外,端口應該是1個元素的數組。 –
我錯過了在問題中包含元數據。在我的代碼中,我確實做到了。可能是因爲我試圖附加端口。但最終最終使用字典進行部署和服務。這很簡單,容易。 – kt14