在 Kubernetes 集群上部署一个简单的静态HTML网络应用

2024-04-18 渥太华微生活

0_BMD1QTKx68aKzQxf.png

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

在这篇文章中,我们将部署一个简单的 html 页面在 Kubernetes 集群上。


1、创建HTML静态网页

在项目根目录下,创建一个名为index.html的简单html页面,并将一些内容添加到html文件中。

<!DOCTYPE html>
<html>
    <head>
        <title>My Project</title>
    </head>
    <body>
        <h1>Kubernetes</h1>
        <p>Kubernetes is a container orchestration technology.</p>
    </body>
</html>

2、创建Dockerfile 

在项目根目录下,创建一个名为 Dockerfile 的 docker 文件,路径与 index.html 相同。

FROM nginx:alpine

COPY . /usr/share/nginx/html

images.png


3、构建镜像,并将其推送到 docker hub 中

1) 为 html 应用程序构建镜像:

docker build -t mydockerid/kubernetes-html .

2) 登录 docker hub 并将该镜像推送到 docker hub 中:

docker login
docker push mydockerid/kubernetes-html

4、创建部署和 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: mydockerid/kubernetes-html #put your image in docker hub here
        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是否创建成功。

kubectl get deployment
kubectl get pods

1520171840913.jpeg


5、创建服务

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) 检查服务是否创建成功。

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可用。


6、访问网页

现在您可以访问:

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

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

localhost:31871

下面是访问页面。

2024-04-18_120656.jpg

二维码 | 渥太华微生活

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

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

科技专栏