当前位置: 首页 > 知识库问答 >
问题:

kubernetes-kubectl运行vs创建和应用

曾奇略
2023-03-14

我刚刚开始使用kubernetes,并使用kops在AWS上建立集群。在我阅读(并尝试)的许多例子中,会有这样的命令:

kubectl run my-app --image=mycompany/myapp:latest --replicas=1 --port=8080

kubectl expose deployment my=app --port=80 --type=LoadBalancer

这似乎在幕后做了几件事,我可以查看使用kubectl编辑部署创建的清单文件,等等。然而,我看到许多例子,人们手工创建清单文件,并使用像kubectl create-fkubectl Application-f这样的命令

我假设两种方法都实现了相同的目标,但通过自己创建清单文件,您可以更好地控制,这对吗?

然后我必须自己创建服务、复制控制器和Pod规范吗?

最后,如果您自己创建清单文件,人们通常如何组织他们的项目来存储这些文件?他们只是在部署的项目旁边的目录中吗?

共有1个答案

孟意致
2023-03-14

基本问题是如何将所有K8s对象应用到K8s集群中。有几种方法可以完成这项工作。

  • 使用生成器(运行、暴露)

以上所有方法都有不同的目的和简单性。例如,如果您想快速检查容器是否按预期工作,那么可以使用生成器。

如果你想对k8s对象进行版本控制,那么最好使用声明性的方式来帮助我们确定k8s对象中数据的准确性。

部署、复制集和POD是解决不同问题的不同层。所有这些概念都为k8s提供了灵活性。

  • 吊舱:它确保相关容器在一起并提供效率
  • ReplicaSet:它确保k8s集群具有理想的POD副本
  • 部署:它确保您可以拥有不同版本的POD,并提供回滚到以前版本的功能

最后,这取决于你想如何使用这些概念或方法的用例。这不是哪个好哪个坏的问题。

 类似资料:
  • null 我的问题是 为什么在一个集群中有三个操作来执行相同的任务? 这些操作的用例是什么? 他们在引擎盖下有什么不同?

  • 我用使用下面的yaml,我看不出有任何区别,使用这两个命令创建一个pod。K8S文档提到了命令式和声明式命令。但是,create和apply的行为方式仍然相同。 有什么区别?另外,declarative和命令是如何实现的?它们都会获取一个或多个包含对象详细信息的yaml文件。

  • 目的是从命令行执行gatling perf测试。等效docker命令是 现在,为了映射上面使用kubectl在库伯内特斯运行的docker,我创建了一个pod,下面是gradlewcommand.yaml文件 现在,使用以下命令创建容器:- 现在是我的实际要求或问题,我如何运行或触发kubectl run命令,以便在上面创建的pod中运行容器?,请注意,您的 pod 名称是 gradlecomma

  • 我正在尝试运行,但它似乎没有按应有的方式工作。我正在尝试以下命令: 创建react应用程序我的应用程序 cd我的应用程序 npm启动 如果您可以帮助此处输入图像描述,那么在尝试运行时会出现以下错误

  • 我的http://localhost:8080/上有一个jenkins,我创建了一个项目,该项目将运行kubectl命令,使用(minikube)连接到kubernetes集群 我正在尝试运行windows命令C:\Program Files(x86)\Jenkins\workspace\test2 这是Kubernetes主机正在运行的minikube群集信息https://192.168.99

  • 在Ember.js中,所有对象都是从Ember.Object派生的。 面向对象的分析和设计技术称为object modeling 。 Ember.Object通过使用类系统支持mixins和构造函数方法等功能。 Ember使用Ember.Enumerable接口来扩展JavaScript Array原型,以便为数组提供观察更改,还使用formatting and localization方法来扩展