kubernetes部署deployment報錯----env子屬性含數字異常
阿新 • • 發佈:2021-07-18
前言:
今天在給微服務專案部署對應的資料庫(mysql)(通過k8s進行容器管理)。在建立好Service、PV、PVC之後,即將進行最後一步的部署
Pod控制器(Deployment),在我通過下面程式碼進行建立的時候
kubectl create -f mysql-deployment.yaml
報出了下面的ERROR:
Error from server (BadRequest): error when creating "mysql-deployment.yaml": Deployment in version "v1"
cannot be handled as a Deployment: v1.Deployment.Spec: v1.DeploymentSpec.Template: v1.PodTemplateSpec.Sp
ec: v1.PodSpec.Containers: []v1.Container: v1.Container.Env: []v1.EnvVar: v1.EnvVar.Value: ReadString: e
xpects " or n, but found 1, error found in #10 byte of ...|,"value":123456}],"i|..., bigger context ...|
":[{"env":[{"name":"MYSQL_ROOT_PASSWORD","value":123456}],"image":"mysql:5.6","name":"mysql","ports"|...
由於個人英語並不是很好,便去翻譯軟體進行了一番深入的研究探討。最終得出一個結論(毛都看不懂)
隨後對YAML檔案重新進行了一遍審查, 也沒有發現有格式或命名上的錯誤
(下附程式碼)
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
namespace: kerry
spec:
selector:
matchLabels:
app: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: mysql
spec:
containers:
- image: mysql:5.6
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: 123456
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-storage
mountPath: /root/zookeeper/kerryData
volumes:
- name: mysql-storage
persistentVolumeClaim:
claimName: mysql-pv-claim
解決:
最後經過查閱資料,發現這個錯誤犯得還算有意義。問題就出在了env中。如果Deplo
yment
中
使用了env
,並且 env 中有一些值是數字,就會丟擲這個錯誤,解決辦法就是將數字新增引號
類似下面截圖中內容:
所有文章均為原創,轉載請註明出處。