动一下小手点一下赞。谢谢! 你的赞就是我更新的动力。

首先让我们来看看整个流程,然后一步步进行详细介绍。

步骤

操作

1

编写HTTPD文件服务器的Dockerfile

2

构建HTTPD镜像

3

创建K8S Deployment对象

4

创建K8S Service对象

5

部署HTTPD文件服务器到K8S集群

Step 1: 编写HTTPD文件服务器的Dockerfile

# 使用官方的HTTPD镜像作为基础镜像
FROM httpd:latest

# 将本地的文件复制到容器中的指定目录
COPY ./files /usr/local/apache2/htdocs
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

代码解释:

  • FROM httpd:latest:从官方的HTTPD镜像中构建我们的镜像。
  • COPY ./files /usr/local/apache2/htdocs:将本地的./files目录内容复制到容器内的/usr/local/apache2/htdocs目录中。

Step 2: 构建HTTPD镜像

docker build -t my-httpd-server .
  • 1.

代码解释:

  • docker build -t my-httpd-server .:使用当前目录下的Dockerfile构建一个名为my-httpd-server的镜像。

Step 3: 创建K8S Deployment对象

apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpd-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: httpd
  template:
    metadata:
      labels:
        app: httpd
    spec:
      containers:
      - name: httpd
        image: my-httpd-server
        ports:
        - containerPort: 80
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.

代码解释:

  • 在Deployment对象中定义了一个名为httpd-deployment的Deployment,指定了副本数为1。
  • 在容器规格spec.containers中指定了容器的镜像为我们构建的my-httpd-server镜像,并且端口为80。

Step 4: 创建K8S Service对象

apiVersion: v1
kind: Service
metadata:
  name: httpd-service
spec:
  selector:
    app: httpd
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  type: NodePort
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

代码解释:

  • 在Service对象中定义了一个名为httpd-service的Service,通过selector指定了要与之关联的Deployment,端口为80。
  • 使用type: NodePort表示Service可以通过NodePort暴露到集群外部。

Step 5: 部署HTTPD文件服务器到K8S集群

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
  • 1.
  • 2.

代码解释:

  • kubectl apply -f deployment.yaml:使用Deployment文件来创建Deployment对象。
  • kubectl apply -f service.yaml:使用Service文件来创建Service对象。

通过以上步骤,我们成功地将HTTPD文件服务器部署到K8S集群中。现在,你可以访问http://:来查看部署的HTTPD文件服务器。