Gop*_*jee 0 deployment yaml kubernetes minikube sql-server-2019
我正在使用本文作为指南在 minkube 上学习 SQL Server BDC 。我尝试通过运行代码来部署以下 yaml 文件:kubectl apply -f deployment.yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: mssql-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: mssql
spec:
terminationGracePeriodSeconds: 10
containers:
- name: mssql
image: microsoft/mssql-server-linux
ports:
- containerPort: 1433
securityContext:
privileged: true
env:
- name: ACCEPT_EULA
value: "Y"
- name: SA_PASSWORD
valueFrom:
secretKeyRef:
name: mssql
key: SA_PASSWORD
volumeMounts:
- name: mssqldb
mountPath: /var/opt/mssql
volumes:
- name: mssqldb
persistentVolumeClaim:
claimName: pvc0001
Run Code Online (Sandbox Code Playgroud)
由于 v1beta1 APIVersion 而出错。我通过运行转换了这个 yaml 文件:kubectl convert -f deployment.yaml
并得到以下脚本:
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
name: mssql-deployment
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector: null
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
app: mssql
spec:
containers:
- env:
- name: ACCEPT_EULA
value: "Y"
- name: SA_PASSWORD
valueFrom:
secretKeyRef:
key: SA_PASSWORD
name: mssql
image: microsoft/mssql-server-linux
imagePullPolicy: Always
name: mssql
ports:
- containerPort: 1433
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 10
status: {}
Run Code Online (Sandbox Code Playgroud)
但是当我部署上述脚本时,我得到:
验证“deployment.yaml”时出错:验证数据时出错:ValidationError(Deployment.spec):io.k8s.api.apps.v1.DeploymentSpec 中缺少必填字段“selector”;如果您选择忽略这些错误,请使用 --validate=false 关闭验证
它与匹配标签/匹配表达式有关,但我无法解决它。有人可以指出我正确的方向吗?
您需要selector
在部署的规范部分添加一个。这是一个必填.spec.selector
字段。该字段定义了 Deployment 如何找到要管理的 Pod。在这种情况下,您只需选择在 Pod 模板(应用程序:mssql)中定义的标签。然而,更复杂的选择规则是可能的,只要 Pod 模板本身满足规则。
apiVersion: apps/v1
kindapiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
name: mssql-deployment
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: mssql
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
app: mssql
spec:
containers:
- env:
- name: ACCEPT_EULA
value: "Y"
- name: SA_PASSWORD
valueFrom:
secretKeyRef:
key: SA_PASSWORD
name: mssql
image: microsoft/mssql-server-linux
imagePullPolicy: Always
name: mssql
ports:
- containerPort: 1433
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 10
status: {}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1561 次 |
最近记录: |