Skip to content
Menu
(◍ ´꒳` ◍)

  • Blog
  • Front Page
(◍ ´꒳` ◍)

k8s-k8s-up&Running19

By erhu on 2023年4月17日2023年4月17日

服务对象

Kubernetes  中真正的服务发现始于一个服务对象。服务对象是一种创建命名标签选择器的方法。正如我们将要看到的,服务对象也为我们做了一些其他的好事。正如  kubectl r un  命令是创建  Kubernetes  部署的简单方法一样,我们可以使用  kubectl  expose  创建服务。让我们创建一些部署和服务,以便我们了解它们是如何工作的:

$kubectl run alpaca-prod \

–image=gcr.io/kuar-demo/kuard-amd64:blue \

–replicas=3 \

–port=8080 \

–labels=”ver=1,app=alpaca,env=prod”

  1. 这是一个kubectl命令,用于在Kubernetes集群中创建一个名为alpaca-prod的Deployment。
  2. 它的作用是使用指定的镜像创建一个新的Pod,并设置Pod的副本数为3,同时将容器的端口暴露在8080端口上。
  3. 该命令使用Kubernetes Deployment API创建一个Deployment对象,并在该对象下创建3个Pod副本。该Deployment将使用指定的镜像创建一个新的Pod,并在每个Pod中运行该镜像。同时,该命令将Pod的8080端口暴露出来,以便其他Pod或外部应用程序可以通过该端口访问该Pod。
  4. 举个例子,如果我们希望在Kubernetes集群中运行一个名为”myapp”的容器应用程序,并将其副本数设置为5,可以使用以下命令:kubectl run myapp --image=myapp:latest --replicas=5 这将在Kubernetes集群中创建一个名为myapp的Deployment,使用指定的镜像创建5个Pod副本,并将Pod的默认端口暴露出来。
  5. 通俗来说,该命令可以让我们轻松在Kubernetes集群中部署一个容器应用程序,指定所需的副本数和端口,从而使应用程序可以在集群中运行并接收流量。

$ kubectl expose deployment alpaca-prod

  1. kubectl expose deployment alpaca-prod 是一个 Kubernetes 命令,用于将 Deployment 对象创建的 Pod 暴露为一个 Service 对象,从而使其可以在集群内部或外部进行访问。
  2. 它的作用是创建一个新的 Service 对象,该对象将自动地为该 Deployment 对象中的所有 Pod 创建一个稳定的 DNS 名称和 IP 地址,使得其它的 Kubernetes 资源可以通过该 Service 对象与该 Deployment 中的 Pod 进行交互。通过 expose 命令创建的 Service 对象,可以是 ClusterIP、NodePort、LoadBalancer、ExternalName 等类型。
  3. 进一步拓展,kubectl expose 还支持指定许多选项,例如选择暴露 Deployment 的哪个端口,使用哪种协议(TCP 或 UDP),设置标签选择器以便只暴露特定标签的 Pod,为 Service 配置负载均衡等。
  4. 例如,以下命令将创建一个名为 nginx-service 的 Service 对象,用于暴露 nginx-deployment 中运行的 Pod:kubectl expose deployment nginx-deployment --type=NodePort --port=80 --target-port=80 --name=nginx-service
  5. 通俗描述就是,使用 kubectl expose 命令可以为 Kubernetes Deployment 中的 Pod 创建一个 Service 对象,使得这些 Pod 可以被其它资源访问。这个 Service 对象有一个固定的 DNS 名称和 IP 地址,可以通过这个地址来访问这些 Pod。通过 kubectl expose 命令可以选择不同的选项来配置这个 Service 对象。

$ kubectl run bandicoot-prod \

–image=gcr.io/kuar-demo/kuard-amd64:green \

–replicas=2 \

–port=8080 \

–labels=”ver=2,app=bandicoot,env=prod”

这是一个 kubectl 命令,用于在 Kubernetes 集群上创建一个名为 bandicoot-prod 的 Deployment,它会使用指定的容器镜像和配置启动一个或多个 Pod。命令中的各个参数含义如下:

  • –image:指定容器镜像地址;
  • –replicas:指定需要创建的 Pod 数量;
  • –port:指定容器监听的端口号;
  • –labels:为 Deployment 添加标签,以便后续可以通过标签来对 Pod 进行选择。

该命令的作用是创建一个 Deployment,确保在 Kubernetes 集群中始终有指定数量的 Pod 在运行,并且这些 Pod 的镜像和配置都是相同的,以保证应用的可靠性和一致性。在这个例子中,Deployment 的名称为 bandicoot-prod,它的 Pod 会使用名为 kuard-amd64:green 的容器镜像,并监听 8080 端口,同时指定了三个标签:ver=2, app=bandicoot 和 env=prod。

拓展一下,Deployment 是 Kubernetes 中的一种资源对象,用于描述如何运行一个或多个 Pod。通过 Deployment,可以指定需要运行的 Pod 的数量、Pod 使用的镜像、容器的资源限制等等,Kubernetes 会根据这些配置创建或更新 Pod。Deployment 的主要作用是确保应用程序始终有指定数量的 Pod 在运行,同时允许对应用程序进行滚动更新、回滚等操作,以及对 Pod 进行扩容和缩容。

举个例子,如果你想要在 Kubernetes 集群中启动一个 Web 应用程序,并确保该应用始终有三个实例在运行,你可以使用类似于上述命令的 Deployment 配置,指定容器镜像、Pod 数量和标签等信息。这样,Kubernetes 就会自动创建三个 Pod,确保这三个 Pod 始终在运行,并对它们进行自动扩容和缩容,以保证应用程序的可用性和性能。

$ kubectl expose deployment bandicoot-prod

  1. kubectl expose deployment 是 Kubernetes 命令行工具 kubectl 中的一个子命令,用于创建一个服务,将一个 Deployment 中的 Pod 暴露到集群内部或外部的网络中。
  2. kubectl expose deployment 的作用是创建一个 Kubernetes 服务,将一个或多个 Pod 暴露给其他容器或外部服务,并为这些 Pod 分配唯一的 IP 地址和 DNS 名称。这样,其他容器或服务可以通过这个 IP 地址或 DNS 名称访问到这些 Pod。
  3. kubectl expose deployment 还支持一些参数选项,如 --type 用于指定服务类型,--target-port 用于指定容器内部服务的端口,--name 用于指定服务名称等。除了使用 kubectl expose deployment 命令之外,还可以使用 Kubernetes 中的 YAML 文件定义服务。
  4. 举个例子,假设我们已经创建了一个名为 myapp 的 Deployment,并在其中运行了三个 Pod。现在,我们可以使用以下命令创建一个名为 myapp-service 的服务,并将 Deployment 中的所有 Pod 暴露出去:kubectl expose deployment myapp --port=80 --target-port=8080 --type=NodePort --name=myapp-service 这个命令将创建一个 NodePort 类型的服务,将 Pod 的 8080 端口映射到服务的 80 端口,并将服务命名为 myapp-service。
  5. 简单来说,kubectl expose deployment 命令可以将一个 Deployment 中的 Pod 暴露为 Kubernetes 服务,为这些 Pod 分配唯一的 IP 地址和 DNS 名称,使得其他容器或服务可以方便地访问到这些 Pod。

$ kubectl get services -o wide

  1. kubectl get services -o wide 是一个 Kubernetes 命令,用于获取 Kubernetes 集群中所有服务的详细信息。
  2. 该命令的作用是列出 Kubernetes 集群中所有服务的名称、类型、IP 地址、端口、选择器等详细信息。
  3. 除了 -o wide 选项外,还可以使用其他输出格式,例如 -o json 或 -o yaml。此外,还可以使用过滤器和标签选择器等选项来进一步筛选所需的服务。
  4. 举个例子,如果要查看 Kubernetes 集群中所有服务的详细信息,可以运行以下命令:kubectl get services -o wide 运行此命令后,将返回一个表格,其中包含 Kubernetes 集群中所有服务的详细信息。
  5. 通俗来说,kubectl get services -o wide 命令可以让你快速查看 Kubernetes 集群中所有服务的详细信息,包括它们的名称、类型、IP 地址和端口等信息。这个命令对于快速了解 Kubernetes 集群中正在运行的服务非常有用。
Category: k8s

文章导航

k8s-k8s-up&Running18
k8s-k8s-up&Running20

Related Posts

k8s-k8s-up&Running15

4月 17, 2023
Read More

Kubernetes-easydoc01

4月 17, 2023
Read More

k8s-k8s-up&Running17

4月 17, 2023
Read More

发表回复 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

近期文章

  • 实施002
  • 实施SQL001
  • 泛微oa001-字段
  • 硬件前端-海康威视摄像头
  • 使用Docker搭建Weblogic服务001

近期评论

    归档

    • 2023年10月
    • 2023年9月
    • 2023年8月
    • 2023年5月
    • 2023年4月
    • 2023年3月
    • 2021年11月
    • 2021年10月
    • 2021年9月
    • 2021年8月
    • 2021年5月

    分类

    • C
    • docker
    • iptable
    • ISIS
    • java
    • k8s
    • liunx
    • OpenCV py
    • ospf
    • solr
    • zabbix
    • 劳动法
    • 周杰伦
    • 格林法则
    • 等保
    • 鸿蒙

    其他操作

    • 登录
    • 条目feed
    • 评论feed
    • WordPress.org
    ©2025 (◍ ´꒳` ◍) | WordPress Theme by Superb WordPress Themes