在 Kubernetes 集群上部署一个简单的 Web 服务器

2024-04-17 渥太华微生活

1_QU6cfLxtJ8laIgjY5e9Tjw.png

Kubernetes 是一个用于自动部署、扩展和管理容器化应用程序的开源系统。


1、创建部署和 pods

1) 编写一个部署 YAML 文件 nginx-deployment.yaml。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        resources:
          limits:
            memory: 512Mi
            cpu: "1"
          requests:
            memory: 256Mi
            cpu: "0.2"
        ports:
        - containerPort: 80

2) 使用以下命令创建部署。

kubectl create -f nginx-deployment.yaml

上述命令将使用单个 NGINX 容器创建一个 pod。NGINX Web 服务器将开始监听端口 80。由于副本被指定为 1,因此它将仅创建单个 pod 供服务公开。

3) 检查部署和pod是否创建成功。

root@ubuntu-s-1vcpu-2gb-nyc3-01:~/single-node-kubernetes-cluster# kubectl get deployment
NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
nginx     1         1         1            1           11m
root@ubuntu-s-1vcpu-2gb-nyc3-01:~/single-node-kubernetes-cluster# kubectl get pods
NAME                     READY     STATUS    RESTARTS   AGE
nginx-666865b5dd-w8q9m   1/1       Running   0          11m

2、创建服务

1) 编写一个服务 YAML 文件 nginx-service.yaml。

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  type: NodePort
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80

2) 使用以下命令创建服务。

kubectl create -f nginx-service.yaml

该服务将创建为 NodePort 类型。这意味着,它将通过端口 80 在每个节点上公开 NGINX Web 服务器。根据标签选择器“app: nginx”为此服务选择适当的 pod。您可以注意到,这与我们在部署中创建 NGINX pod 时指定的标签相同。

3) 检查服务是否创建成功。

root@ubuntu-s-1vcpu-2gb-nyc3-01:~/single-node-kubernetes-cluster# kubectl get svc
NAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
nginx-service   NodePort    10.96.163.55   <none>        80:31871/TCP   25m

注意端口字段,NGINX服务在节点端口31871可用。


3、访问网页

现在您可以访问:

http://<节点IP地址>:31871

如果是本地服务器,可以访问:

localhost:31871

下面是访问页面。

2024-04-17_201439.jpg

二维码 | 渥太华微生活

编者注:新闻取自各大新闻媒体,新闻内容并不代表本网立场!文字和图片来自网络,版权归原作者所有。如有侵权,请速联系小编,立即删除。

97
全部评论 (0)
展开快速发表评论

科技专栏