在 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

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

437
全部评论 (0)
展开快速发表评论
二维码 | 渥太华微生活
<广而告之>
缩略图

看新闻?

渥太华微生活

- 新闻|活动|优惠|房屋|汽车|留学|移民|工作|理财|旅游|美食|健康|宠物|种植|文化|时尚|科技|历史|体育|黄页


缩略图

刷视频?

传奇视频

- 电影 | 电视剧 | 综艺 | 小品 | 动漫 | 戏曲 | 短视频


缩略图

听音频?

传奇音频

- 音乐 | 有声小说 | 评书 | 相声


缩略图

找乐趣?

传奇活动

- 渥太华 | 多伦多 | 温哥华 | 蒙特利尔 | 卡尔加里


缩略图

想省钱?

传奇打折

- Amazon打折专区 | Temu打折专区 | 打折资讯


缩略图

租房子?

传奇租房

- 渥太华 | 多伦多 | 温哥华 | 蒙特利尔 | 卡尔加里

科技专栏