如何在现有的Kubernetes集群中部署第一个服务

如何在现有的Kubernetes集群中部署第一个服务

解决方案goocz2025-02-01 12:22:1812A+A-

1. 准备工作

在开始之前,确保你已经有一个运行中的Kubernetes集群,并且已经配置了kubectl命令行工具与集群通信。如果你还没有集群,可以通过Minikube构建一个,或者使用在线的Kubernetes练习环境。

2. 创建Deployment

Deployment是Kubernetes中用于描述应用期望状态的API对象,包括应用的副本数、应用的镜像等信息。以下是一个简单的Deployment示例,它创建了一个名为hello-world的Deployment,其中包含两个Pod副本,每个Pod运行一个hello-world的容器镜像:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-world
spec:
  selector:
    matchLabels:
      run: load-balancer-example
  replicas: 2
  template:
    metadata:
      labels:
        run: load-balancer-example
    spec:
      containers:
        - name: hello-world
          image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:2.0
          ports:
            - containerPort: 8080
              protocol: TCP

使用kubectl命令应用这个Deployment:

kubectl apply -f https://k8s.io/examples/service/access/hello-application.yaml

这将创建一个Deployment对象和一个关联的ReplicaSet对象,ReplicaSet将确保有两个Pod运行。

3. 查看Deployment信息

部署完成后,你可以使用以下命令查看Deployment的详细信息:

kubectl get deployments hello-world
kubectl describe deployments hello-world

4. 创建Service

Service是Kubernetes中定义服务访问策略的API对象,它允许外部访问集群内的Pod。以下命令创建了一个名为example-service的Service,它将流量转发到hello-worldDeployment:

kubectl expose deployment hello-world --type=NodePort --name=example-service

这个命令会创建一个Service,其类型为NodePort,这意味着它将在集群的所有节点上打开一个端口,以便外部可以访问。

5. 查看Service信息

使用以下命令查看Service的详细信息:

kubectl describe services example-service

注意Service中的NodePort值,这个值将用于从集群外部访问服务。

6. 访问服务

要访问部署的服务,你需要知道运行Pod的集群任一节点的公共IP地址。然后,使用节点地址和NodePort来访问服务:

bash
curl http://:

这里的是集群任一节点的公共IP地址,是你服务的NodePort值。

通过以上步骤,你就可以在现有的Kubernetes集群中部署并访问你的服务了。记得在部署过程中监控Pod和Service的状态,确保它们正常运行。

点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5