使用 kubectl 版本 1.18 + 创建部署
Create deployments with kubectl version 1.18 +
在 Kubernetes: Up and Running, 2nd Edition 的第 67 页,作者使用以下命令创建 Deployment
:
kubectl run alpaca-prod \
--image=gcr.io/kuar-demo/kuard-amd64:blue \
--replicas=2 \
--labels="ver=1,app=alpaca,env=prod"
然而,这个命令在 kubectl 1.19+ 中被弃用,它现在创建一个 pod:
$ kubectl run alpaca-prod \
--image=gcr.io/kuar-demo/kuard-amd64:blue \
--replicas=2 \
--labels="ver=1,app=alpaca,env=prod"
Flag --replicas has been deprecated, has no effect and will be removed in the future.
pod/alpaca-prod created
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.0", GitCommit:"e19964183377d0ec2052d1f1fa930c4d7575bd50", GitTreeState:"clean", BuildDate:"2020-08-26T14:30:33Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.2", GitCommit:"faecb196815e248d3ecfb03c680a4507229c2a56", GitTreeState:"clean", BuildDate:"2021-01-21T01:11:42Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
有没有办法使用 kubectl run
创建具有副本和自定义标签的部署 kubectl
1.19+?
现在首选使用 kubectl create
创建新的 Deployment
,而不是 kubectl run
。
这是您的kubectl run
对应的命令
kubectl create deployment alpaca-prod --image=gcr.io/kuar-demo/kuard-amd64:blue --replicas=2
标签
默认情况下,您将从 kubectl create deployment alpaca-proc
获得标签 app=alpaca
。
获取其他标签,您需要稍后添加它们。使用 kubectl label
将标签添加到 Deployment
,例如
kubectl label deployment alpaca-prod ver=1
注意: 这只会将标签添加到 Deployment
和 not 到 Pod 模板,例如Pods 不会得到标签。要同时将标签添加到 pods,您需要编辑 Deployment-yaml 的 template:
部分。
注意: kubectl version 1.18
情况发生了变化。就像它不再可能使用 kubectl
运行 创建 Jobs
、CronJobs
或 Deployments
,只有 Pods
仍然有效。
所以是的,您不能从 1.18.kubectl run
创建部署。
步骤 1: 从 kubectl create
命令创建 deployment
kubectl create deploy alpaca-prod --image=gcr.io/kuar-demo/kuard-amd64:blue --replicas=2
步骤 2 使用 kubectl label
命令更新标签
kubectl label deploy -l app=alpaca-prod ver=1
kubectl label deploy -l app=alpaca-prod app=alpaca
kubectl label deploy -l app=alpaca-prod env=prod
这是 yaml
文件,它为 'Kubernetes: Up and Running, 2nd Edition' 的 p67 生成预期结果:
apiVersion: apps/v1
kind: Deployment
metadata:
name: alpaca-prod
spec:
selector:
matchLabels:
ver: "1"
app: "alpaca"
env: "prod"
replicas: 2
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
ver: "1"
app: "alpaca"
env: "prod"
spec:
containers:
- name: kuard
image: gcr.io/kuar-demo/kuard-amd64:blue
在 Kubernetes: Up and Running, 2nd Edition 的第 67 页,作者使用以下命令创建 Deployment
:
kubectl run alpaca-prod \
--image=gcr.io/kuar-demo/kuard-amd64:blue \
--replicas=2 \
--labels="ver=1,app=alpaca,env=prod"
然而,这个命令在 kubectl 1.19+ 中被弃用,它现在创建一个 pod:
$ kubectl run alpaca-prod \
--image=gcr.io/kuar-demo/kuard-amd64:blue \
--replicas=2 \
--labels="ver=1,app=alpaca,env=prod"
Flag --replicas has been deprecated, has no effect and will be removed in the future.
pod/alpaca-prod created
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.0", GitCommit:"e19964183377d0ec2052d1f1fa930c4d7575bd50", GitTreeState:"clean", BuildDate:"2020-08-26T14:30:33Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.2", GitCommit:"faecb196815e248d3ecfb03c680a4507229c2a56", GitTreeState:"clean", BuildDate:"2021-01-21T01:11:42Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
有没有办法使用 kubectl run
创建具有副本和自定义标签的部署 kubectl
1.19+?
现在首选使用 kubectl create
创建新的 Deployment
,而不是 kubectl run
。
这是您的kubectl run
kubectl create deployment alpaca-prod --image=gcr.io/kuar-demo/kuard-amd64:blue --replicas=2
标签
默认情况下,您将从 kubectl create deployment alpaca-proc
获得标签 app=alpaca
。
获取其他标签,您需要稍后添加它们。使用 kubectl label
将标签添加到 Deployment
,例如
kubectl label deployment alpaca-prod ver=1
注意: 这只会将标签添加到 Deployment
和 not 到 Pod 模板,例如Pods 不会得到标签。要同时将标签添加到 pods,您需要编辑 Deployment-yaml 的 template:
部分。
注意: kubectl version 1.18
情况发生了变化。就像它不再可能使用 kubectl
运行 创建 Jobs
、CronJobs
或 Deployments
,只有 Pods
仍然有效。
所以是的,您不能从 1.18.kubectl run
创建部署。
步骤 1: 从 kubectl create
命令创建 deployment
kubectl create deploy alpaca-prod --image=gcr.io/kuar-demo/kuard-amd64:blue --replicas=2
步骤 2 使用 kubectl label
命令更新标签
kubectl label deploy -l app=alpaca-prod ver=1
kubectl label deploy -l app=alpaca-prod app=alpaca
kubectl label deploy -l app=alpaca-prod env=prod
这是 yaml
文件,它为 'Kubernetes: Up and Running, 2nd Edition' 的 p67 生成预期结果:
apiVersion: apps/v1
kind: Deployment
metadata:
name: alpaca-prod
spec:
selector:
matchLabels:
ver: "1"
app: "alpaca"
env: "prod"
replicas: 2
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
ver: "1"
app: "alpaca"
env: "prod"
spec:
containers:
- name: kuard
image: gcr.io/kuar-demo/kuard-amd64:blue