在 Kubernetes 集群上采用 Ingress 访问PHP网络应用

2024-05-17 渥太华微生活

1_TaDEYD2Pdn36Gpo5N9Kd7A.png

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

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


1、创建PHP网页

创建一个名为index.php的简单PHP页面。

<?php phpinfo();

2、创建Dockerfile 

创建一个Dockerfile文件。

FROM php:8.2.18-apache

COPY . /var/www/html/


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

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

docker build -t mydockerid/kubernetes-php-ingress .

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

docker login
docker push mydockerid/kubernetes-php-ingress

4、创建部署和服务

1) 编写一个 YAML 文件 deployment-service.yaml,包括部署和服务。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-deployment
  labels:
    app: myapp
spec:
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp-container
        image: legendit/kubernetes-php-ingress
        resources:
          limits:
            memory: 512Mi
            cpu: "1"
          requests:
            memory: 256Mi
            cpu: "0.2"
        ports:
          - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: myapp-service
spec:
  selector:
    app: myapp
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80

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

kubectl apply -f deployment-service.yaml

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

kubectl get deployment
kubectl get pods
kubectl get service


5、创建 Ingress

为了在 Kubernetes 中使用 URL,你需要一个 Ingress。Ingress 是一组允许入站连接到达 Kubernetes 集群的规则。

Ingress 是非常必要的,因为在 Kubernetes 中,诸如 Pod 之类的资源仅具有可在集群内和集群内路由的IP地址。也就是说它们是无法进出外部环境的。

168359ad016d388d~tplv-t2oaga2asx-jj-mark_3024_0_0_0_q75.png

1) 创建 Ingress-nginx 控制器

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/cloud/deploy.yaml

检查控制器是否创建成功。

kubectl -n ingress-nginx get pod

NAME                                        READY   STATUS      RESTARTS   AGE
ingress-nginx-admission-create-6f9w5        0/1     Completed   0          2m20s
ingress-nginx-admission-patch-vsk2j         0/1     Completed   1          2m20s
ingress-nginx-controller-5f4d7b5f5c-6pnx5   1/1     Running     0          2m20s

2) 创建 ingress 服务

a) 编写一个服务 YAML 文件 ingress.yaml。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: myapp-ingress
spec:
  ingressClassName: nginx
  rules:
  - http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: myapp-service
            port:
              number: 80

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

kubectl apply -f ingress.yaml

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

kubectl get ingress

NAME            CLASS   HOSTS   ADDRESS     PORTS   AGE
myapp-ingress   nginx   *       localhost   80      20s

6、访问网页

现在您可以访问:

http://<节点IP地址>

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

localhost

下面是访问页面。

2024-05-18_175903.jpg

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

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

看新闻?

渥太华微生活

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


缩略图

刷视频?

传奇视频

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


缩略图

听音频?

传奇音频

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


缩略图

找乐趣?

传奇活动

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


缩略图

想省钱?

传奇打折

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


缩略图

租房子?

传奇租房

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

科技专栏