当前位置: 首页 > wzjs >正文

阿里云虚拟主机多网站吗百度如何精准搜索

阿里云虚拟主机多网站吗,百度如何精准搜索,网页设计与制作实训报告心得,长沙全网覆盖的网络推广目录 一、基本概念 1.Ingress 组成 2. Ingress 工作过程 3. Ingress 工作原理 二、安装 Ingress Nginx Controller 1.下载并安装helm 2. 下载并修改 Ingress Controller 参数 3. 部署 Ingress Nginx Controller 三、 Ingress Nginx 使用入门 1. 创建学习命名空间 2. …

目录

一、基本概念

1.Ingress 组成

2. Ingress 工作过程

3. Ingress 工作原理

二、安装 Ingress Nginx Controller

1.下载并安装helm

2. 下载并修改 Ingress Controller 参数

3. 部署 Ingress Nginx Controller

三、 Ingress Nginx 使用入门

1. 创建学习命名空间

2. 部署 Nginx 服务

3. 暴露为 Service

4. 编写 Ingress 配置

5.  应用配置

6.  测试

四、 域名重定向

1. 编写 redirect.yaml

2. 应用与测试

五、前后端分离

1.  部署后端服务

2. 编写 rewrite.yaml

3. 应用与测试

六、 SSL 配置(自签名证书)

1.生成证书

2.创建证书 Secret

3. 编写 HTTPS Ingress

4. 应用与测试

七、Ingress Nginx 实现基本认证

1. 安装 httpd

2. 创建用户密码文件

3. 生成认证 Secret

4. 编写 Ingress 配置

5. 部署认证 Ingress

6. 测试


一、基本概念

1.Ingress 组成

(1) ingress

Ingress 是 Kubernetes 中的一个 API 对象,主要功能是管理从集群外部到集群服务的 HTTP/HTTPS 路由。它能够依据设定的规则,把外部的流量精准转发到集群内部对应的服务上。通过 Ingress,用户可以配置基于域名和路径的路由规则,实现如基于名称的虚拟主机、SSL 终止、HTTP 重定向等功能。Ingress 本身并不直接处理流量,而是需要 Ingress Controller 来具体实现其定义的路由规则。

(2) ingree-controller

Ingress-controller 是实现 Ingress 功能的关键控制器,必须部署在 Kubernetes 集群里。它会时刻监听 Ingress 资源的变化,以及后端 Service 和 Pod 的状态变化,然后按照 Ingress 中设定的规则来配置负载均衡器(如 Nginx、Traefik 等),从而实现流量的转发。Ingress-controller 是 Ingress 的 “执行者”,没有它,Ingress 中定义的路由规则只是一些静态的配置,无法真正发挥作用。Ingress 和 Ingress-controller 相辅相成,Ingress 定义了路由规则的 “蓝图”,而 Ingress-controller 则负责将这个 “蓝图” 付诸实践,确保外部流量能够按照预期的规则流转到集群内部的服务。

2. Ingress 工作过程

首先,用户通过 Kubernetes API 创建 Ingress 资源,在其中定义了从外部到集群服务的路由规则,比如基于域名、路径等的转发规则。然后,部署在集群中的 Ingress-controller 会持续监听 Ingress 资源的变化,当检测到新的 Ingress 资源创建或者已有 Ingress 资源更新时,Ingress-controller 会读取其中的路由规则。接着,Ingress-controller 根据这些规则配置对应的负载均衡器(如 Nginx 配置文件),同时它也会监听后端 Service 和 Pod 的状态,确保所配置的路由能够指向可用的服务端点。当外部流量(如用户的 HTTP/HTTPS 请求)到达集群边缘时,会被负载均衡器接收,负载均衡器再根据 Ingress-controller 配置的规则,将流量转发到集群内部对应的 Service,进而由 Service 转发到后端的 Pod 上,完成一次请求的处理。

3. Ingress 工作原理

Ingress 的核心工作原理是通过 Ingress 资源定义路由规则,由 Ingress-controller 负责将这些规则转化为实际的流量转发配置,并作用于负载均衡器。从本质上来说,Ingress 是一种声明式的配置,它抽象了集群外部访问集群服务的方式,而 Ingress-controller 则是这种抽象的具体实现者。Ingress-controller 通常会以 Pod 的形式运行在集群中,它通过 Kubernetes 的 API 与集群进行交互,实时获取 Ingress、Service、Pod 等资源的状态信息。当 Ingress 资源中定义的路由规则涉及到域名时,Ingress-controller 会确保外部的 DNS 解析能够将该域名指向负载均衡器的入口地址。当外部流量进入负载均衡器后,负载均衡器就会依据 Ingress-controller 配置的规则(这些规则来自于 Ingress 资源的定义),结合请求的域名、路径等信息,将流量转发到对应的 Service。由于 Service 会通过选择器与后端的 Pod 关联,所以流量最终会到达提供相应服务的 Pod。整个过程中,Ingress-controller 持续监控各种资源的变化,一旦有更新,就会重新配置负载均衡器,以保证路由规则的实时有效性和服务的可用性。

二、安装 Ingress Nginx Controller

1.下载并安装helm

# 下载 Helm 安装包(以 v3.9.4 为例,可替换为最新版本)  
[root@k8s-master ~]# wget https://get.helm.sh/helm-v3.9.4-linux-amd64.tar.gz  # 解压安装包  
[root@k8s-master ~]# tar zxvf helm-v3.9.4-linux-amd64.tar.gz  # 移动 helm 可执行文件到系统路径(确保可全局调用)  
[root@k8s-master ~]# mv linux-amd64/helm /usr/local/bin/  # 验证安装(显示版本即成功)  
[root@k8s-master ~]# helm version  

2. 下载并修改 Ingress Controller 参数

(1) 将Controller 的registry 仓库地址修改为国内的

controller:  name: controller  image:  chroot: false  registry: registry.cn-hangzhou.aliyuncs.com  image: tanzu/controller  tag: "v1.6.4"   #digest: sha256:15be4666c53052484dd2992efacf2f50ea77a78ae8aa21ccd91af6baaa7ea2f  #digestChroot: sha256:0de01e2c316c3ca7847ca13b32d077af7910d07f21a4a82f81061839764f8f1  

(2) 修改 opentelemetry 镜像地址

opentelemetry:  enabled: false  # 国内仓库地址  image: registry.cn-hangzhou.aliyuncs.com/tanzu/opentelemetry:v20230107  containerSecurityContext:  allowPrivilegeEscalation: false  

(3) 将 admissionWebhook 的地址修改为国内的

patchWebhookJob:  securityContext:  allowPrivilegeEscalation: false  resources: {}  patch:  enabled: true  image:  # 国内仓库地址  registry: registry.cn-hangzhou.aliyuncs.com  image: tanzu/kube-webhook-certgen  tag: v20220916-gd32f8c343  # 注释摘要信息  #digest: sha256:543c40f0d93964bc5ab59d93e791f9989963021f1e9e4c9c7b6700b02bfb227b  pullPolicy: IfNotPresent  

(4) 修改 HostNetwork 的值为 true

设置为 true 后,Pod 直接使用宿主机网络命名空间,适合需要绑定宿主机端口(如 80/443 )的场景

controller:  hostNetwork: true  

(5) dnspolicy 设置为 ClusterFirsWitHostNet

与 hostNetwork: true 配合,优先用集群 DNS 解析,集群 DNS 无法解析时 fallback 到宿主机 DNS:

controller:  dnsPolicy: ClusterFirstWithHostNet  

(6) nodeSelector 添加 Ingress:“true”

让 Ingress Controller 仅调度到带有 ingress: "true" 标签的节点(需提前给 k8s-node01 打标签:kubectl label node k8s-node01 ingress=true ):

controller:  nodeSelector:  ingress: true  kubernetes.io/os: linux  

(7) 修改 kind 类型为 DeamonSet

DaemonSet 确保每个符合条件的节点(通过 nodeSelector 筛选)都运行一个 Ingress Controller Pod,适合需要节点级流量接入的场景:

controller:  kind: DaemonSet  

3. 部署 Ingress Nginx Controller

(1)给目标节点打标签

kubectl label node k8s-node01 ingress=true  

(2)创建命名空间

kubectl create ns ingress-nginx  

(3)安装 Ingress Nginx

cd ingress-nginx  
helm install ingress-nginx -n ingress-nginx .  

(4)验证安装

kubectl get po -n ingress-nginx -o wide  

三、 Ingress Nginx 使用入门

1. 创建学习命名空间

kubectl create ns study-ingress  

2. 部署 Nginx 服务

kubectl create deployment nginx --image=nginx:1.7.9 -n study-ingress  

3. 暴露为 Service

kubectl expose deployment nginx --port 80 -n study-ingress  

4. 编写 Ingress 配置

apiVersion: networking.k8s.io/v1  
kind: Ingress  
metadata:  name: nginx-ingress  namespace: study-ingress  
spec:  ingressClassName: nginx  rules:  - host: nginx.test.com  http:  paths:  - backend:  service:  name: nginx  port: {number: 80}  path: /  pathType: ImplementationSpecific  

5.  应用配置

kubectl create -f web-ingress.yaml  

6.  测试

curl http://nginx.test.com  

四、 域名重定向

1. 编写 redirect.yaml

apiVersion: networking.k8s.io/v1  
kind: Ingress  
metadata:  name: nginx-redirect  namespace: study-ingress  annotations:  nginx.ingress.kubernetes.io/permanent-redirect: https://www.baidu.com  
spec:  ingressClassName: nginx  rules:  - host: nginx.redirect.com  http:  paths:  - backend:  service: {name: nginx, port: {number: 80}}  path: /  pathType: ImplementationSpecific  

2. 应用与测试

kubectl create -f redirect.yaml  
# 本地 hosts 绑定 nginx.redirect.com 后访问测试  

五、前后端分离

1.  部署后端服务

kubectl create deployment backend-api --image=nginx:1.7.9 -n study-ingress  
kubectl expose deployment backend-api --port 80 -n study-ingress  

2. 编写 rewrite.yaml

apiVersion: networking.k8s.io/v1  
kind: Ingress  
metadata:  name: backend-api  namespace: study-ingress  annotations:  nginx.ingress.kubernetes.io/rewrite-target: /$2  
spec:  ingressClassName: nginx  rules:  - host: nginx.test.com  http:  paths:  - backend:  service: {name: backend-api, port: {number: 80}}  path: /api-a(/|$)(.*)  pathType: ImplementationSpecific  

3. 应用与测试

kubectl create -f rewrite.yaml  
curl http://nginx.test.com/api-a  

六、 SSL 配置(自签名证书)

1.生成证书

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=nginx.test.com"  

2.创建证书 Secret

kubectl create secret tls nginx-tls --key tls.key --cert tls.crt -n study-ingress  

3. 编写 HTTPS Ingress

apiVersion: networking.k8s.io/v1  
kind: Ingress  
metadata:  name: nginx-tls-ingress  namespace: study-ingress  
spec:  ingressClassName: nginx  tls:  - hosts: [nginx.test.com]  secretName: nginx-tls  rules:  - host: nginx.test.com  http:  paths:  - backend: {service: {name: nginx, port: {number: 80}}}  path: /  pathType: ImplementationSpecific  

4. 应用与测试

kubectl apply -f tls-ingress.yaml  
curl -k https://nginx.test.com  # -k 忽略证书校验  

七、Ingress Nginx 实现基本认证

1. 安装 httpd

yum -y install httpd  

2. 创建用户密码文件

htpasswd -c auth zhangsan  
# 按提示输入密码,生成 `auth` 文件  

3. 生成认证 Secret

kubectl create secret generic basic-auth \  
--from-file=auth \  
-n study-ingress  

4. 编写 Ingress 配置

apiVersion: networking.k8s.io/v1  
kind: Ingress  
metadata:  name: ingress-with-auth  namespace: study-ingress  annotations:  nginx.ingress.kubernetes.io/auth-realm: "Please Input Your Username and Password"  nginx.ingress.kubernetes.io/auth-secret: basic-auth  nginx.ingress.kubernetes.io/auth-type: basic  
spec:  ingressClassName: nginx  rules:  - host: auth.test.com  http:  paths:  - backend:  service:  name: nginx  port: {number: 80}  path: /  pathType: ImplementationSpecific  

5. 部署认证 Ingress

kubectl create -f ingress-with-auth.yaml  

6. 测试

访问 http://auth.test.com,弹出认证框,输入设置的密码,验证访问。

http://www.dtcms.com/wzjs/329456.html

相关文章:

  • 做一个公司的网站怎么做呢360地图下载最新版
  • 阿里云可以几个网站郑州网站建设推广
  • 网站开发合同违约责任百度推广排名代发
  • 企业微信服务商seo搜索引擎优化实训总结
  • 网站开发团队名称关键词优化seo优化排名
  • 如何选择合肥网站建设网站统计平台
  • 怎么用网站推广网络平台怎么创建
  • 武汉市城乡建设局莆田关键词优化报价
  • 爱南宁app官方下载seo站长常用工具
  • 芜湖网站建设芜湖免费网络推广网站
  • 做赌石网站客服的经验搜索引擎营销是指
  • 做百度网站每年的费用多少合适网页制作基础教程
  • 网站导航条模板什么软件可以免费引流
  • wordpress修改侧边栏盐城seo网站优化软件
  • 专业网站名词解释郑州网站优化渠道
  • 大连建站东莞优化排名公司
  • 开发中英文切换网站如何做靠谱seo整站优化外包
  • 国外网站能否做百科参考资料环球网疫情最新
  • 建设银行招聘网站甘肃分行湖南营销型网站建设
  • 武汉建设厅网站茶叶营销策划方案
  • 婚庆网站开发工具做小程序要多少钱
  • 幼儿园网站建设方案结语百度智能云
  • 哪家公司做网站正规网站优化是什么
  • wordpress地址和站点地址错链接买卖平台
  • 合肥网站制作公司排名网站建设与管理
  • 网站建设优化公司排名软文代写新闻稿
  • 东莞网站开发技术公司电话黄页网络的推广
  • 沈阳网站设计定制网站建设宁波seo推荐推广渠道
  • 学校户网站建设方案中国最新新闻
  • 网站建设运作流程兔子bt樱桃搜索磁力天堂