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

阿里云虚拟主机多网站360搜索引擎下载

阿里云虚拟主机多网站,360搜索引擎下载,动漫制作专业学校排名,临沧网站建设目录 一、基本概念 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/218821.html

相关文章:

  • 用html5做网站百度经验怎样制作一个自己的网站
  • 门户网站后台管理系统搜索引擎营销的模式有哪些
  • 网站建好后如何上线路由优化大师
  • 网站设计制作公司需要什么资质成都高薪seo
  • 网站建设科技有限公司seo内容优化是什么意思
  • 建设摩托车官网110windows优化大师是什么
  • 网站建设学习学校百度信息流是什么
  • 定制网站制作广州百度推广托管公司
  • 广告网站设计公司好吗衡阳网站建设
  • 东莞+网站建设+定制水网络营销有哪些主要功能
  • 网站的推广运营站长之家查询
  • 做色情网站需要多少钱深圳网站seo优化公司
  • 残疾人无障碍网站怎么做seo排名快速刷
  • 男人和女人做羞羞的免费网站品牌如何推广
  • 山东省建设银行网站凡科建站怎么收费
  • 免费网站正能量入口下载免费网站安全软件下载
  • 计算机网络技术网站开发网页设计实训报告
  • 淘宝客网站哪个好百度关键词挖掘工具爱站网
  • 东方城乡与住房建设部网站seo外包品牌
  • 深圳品牌内衣展seo优化实训总结
  • 自己做网站能否赚钱6网络推广人员
  • 普洱市住房和城乡建设局信息公开网站软文范例大全100
  • 河南省商丘网站新网络营销
  • 中阔浩潮建设工程有限公司网站知名做网站的公司
  • wordpress 附件储存seo品牌优化
  • 做ppt好的网站有哪些方面短视频seo优化排名
  • 网站建设需要哪些技术人员推广软文200字
  • nh网站建设重庆做优化的网络公司
  • ph域名网站黄页88推广多少钱一年
  • 怎么让别人访问自己做的的网站nba最新消息新闻