kubernetes - 创建部署与运行部署

标签 kubernetes

关于 Kubernetes 的 Google 类(class)建议:

$ kubectl run kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080  
  kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. 
  Use kubectl run --generator=run-pod/v1 or kubectl create instead.

现在我正在尝试使用新语法:

$ kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1  
$ kubectl expose deployment/kubernetes-bootcamp --port=8080 type=NodePort

我确定它们不一样。谁能帮帮我?

不重复:我问的是两个命令的等价性

最佳答案

您可以通过执行试运行并检查生成的 list 来了解这些命令的作用:

kubectl run kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080 \
  --dry-run -o yaml > kubectl-run.yaml

kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 \
  --dry-run -o yaml >kubectl-create.yaml

两个 list 之间唯一的实质区别是没有 ports kubectl-create.yaml 中的字段.

kubectl create deployment命令没有用于指定容器的任何公开端口的选项,因此可能没有简单的方法来实现与 kubectl run 完全相同的输出。用kubectl create命令。

kubectl expose您正在使用的命令只会创建服务资源,不会修改部署资源。

一般来说,kubectl create <resource>命令相当有限。它们主要用于创建仅具有默认设置的资源,或为带有 --dry-run -o yaml 的 list 创建基础然后您可以自定义。

关于kubernetes - 创建部署与运行部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58092620/

相关文章:

kubernetes 作业 init 容器

reactjs - 在不同的路线上运行 SPA

docker - 在 Linux 机器中启动 minikube 需要使用 Google Container Registry 进行身份验证,为什么?

kubernetes - Kubespray Kubernetes安装失败-dockerd [8296]:无法使用文件/etc/docker/daemon.json配置Docker守护程序

ubuntu - 如何从外部访问规范的 kubernetes 仪表板?

Kubernetes Helm : How to set env variable of child chart in parent chart

java - 将 SSL 证书加载到容器的 JVM

kubernetes - 如何更新在用户群集中运行的应用程序?

kubernetes - kube-router IPVS-最少连接算法,是否在同一节点或不同节点的 Pod 之间进行负载平衡?

shell - k8s:创建部署时使用参数化的镜像标记