Mon*_*naj 16 google-cloud-platform kubernetes google-kubernetes-engine
我是 Kubernetes 新手。我正在阅读一些与 Kubernetes 部署相关的教程。我看到两个不同的命令看起来像是在做类似的事情。
以下命令来自谷歌代码实验室(URL: https: //codelabs.developers.google.com/codelabs/cloud-springboot-kubernetes/index.html ?index=..%2F..index#7 )
$ kubectl create service loadbalancer hello-java --tcp=8080:8080
另一个命令与 Kubernetes 站点一起出现在不同的地方(https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/)
$ kubectl expose deployment hello-world --type=LoadBalancer --name=my-service
我认为同一个任务不会有两个单独的命令。应该有一些我无法理解的差异。
有人可以向我澄清一下吗?
Yar*_*riv 13
在某些情况下,该expose命令是不够的,您唯一实用的选择是使用create service.
总的来说,Kubernetes 服务有 4 种不同类型,对于某些服务来说,使用公开还是创建并不重要,而对于其他服务则非常重要。
Kubernetes 服务的类型有:
例如,在NodePort类型服务的情况下,假设我们想要设置一个值为31888 的节点端口:
示例 1: 在以下命令中,节点端口值没有参数,expose 命令会自动创建它:
kubectl expose deployment demo --name=demo --type=NodePort --port=8080 --target-port=80
设置节点端口值的唯一方法是在创建后使用 edit 命令更新节点端口值:kubectl edit service demo
示例 2: 在此示例中,create service nodeport 专用于创建 NodePort 类型,并具有使我们能够控制节点端口值的参数:
kubectl create service nodeport demo --tcp=8080:80 --node-port=31888
在此示例 2 中,节点端口值是使用命令行设置的,无需像示例 1 那样手动编辑该值。
重要的:
没有create service [service-name]设置服务的选择器的选项,因此该服务不会自动连接到现有的 Pod。
要将选择器标签设置为针对特定 Pod,您需要使用以下create service [service-name]命令set selector:
kubectl set selector service [NAME] [key1]=[value1]
因此,对于上面的案例 2 示例,如果您希望服务能够与带有 pod 标记的部署一起使用,myapp: hello那么这是所需的后续命令:
kubectl set selector service demo myapp=hello
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5341 次 |
| 最近记录: |