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

网站策划及过程深圳宝安机场

网站策划及过程,深圳宝安机场,在线制作头像模板,平台网站建设价格一,Ingress介绍 Ingress是k8s中一种重要的资源对象,它主要用于定义从集群外部到集群内部服务的HTTP(S)路由规则。用于管理代理 Ingress-Controller的配置文件。 kubectl explain ingress二,Ingress-Controller介绍 Ingress Controller 是 …

一,Ingress介绍

Ingress是k8s中一种重要的资源对象,它主要用于定义从集群外部到集群内部服务的HTTP(S)路由规则。用于管理代理 Ingress-Controller的配置文件。

kubectl explain ingress

二,Ingress-Controller介绍

Ingress Controller 是 Kubernetes 集群中的一个组件,是一个七层的负载均衡调度器,它负责实现 Ingress 资源对象中定义的路由规则。

Ingress Controller 的具体实现可以多种多样,包括但不限于 Nginx、HAProxy、Traefik、Istio 等。每种 Ingress Controller 都有其独特的特性和优势,但它们的共同目标都是根据 Ingress 资源中的定义来管理外部到集群内部服务的 HTTP(S) 流量。

三,Ingress和Ingress Controller

1,共同作用

Ingress Controller结合Ingress 定义的规则生成配置,然后动态更新ingress-controller里的Nginx 或者trafik负载均衡器,并刷新使配置生效,来达到服务自动发现的作用。
Ingress 则是定义规则,通过它定义某个域名的请求过来之后转发到集群中指定的 Service。它可以通过 Yaml 文件定义,可以给一个或多个 Service 定义一个或多个 Ingress 规则。

2,使用Ingress Controller代理步骤

(1)部署Ingress controller(以nginx为例部署)。
(2)创建Pod应用,可以通过控制器(DeploymentStatefulset等)创建pod。
(3)创建Service,用selector来分组pod。
(4)创建Ingress http/https,测试通过 http/https 访问应用。

四,高可用

根据Deployment+ nodeSeletor+pod反亲和性方式部署在k8s指定的两个work节点,然后通过keepalive+nginx实现nginx-ingress-controller高可用(框架如下图所示)。
在这里插入图片描述

1,安装ingress-controller

下载镜像及yaml文件安装:ingress-nginx-controller.v1.1.1.tar.gz

# 安装
kubectl apply -f ingress-deploy.yaml

在这里插入图片描述


【如果报错】:
在这里插入图片描述
【解决办法】

执行一下命令,然后再次尝试创建内容!

kubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission

在这里插入图片描述

至此,两个ingress-controller的pod,由于采用反亲和性,分别部署到两个节点上。

2,安装 配置keeplived+nginx

实现前端虚拟IP(VIP),两节点node机器上相互“漂移”。

(1)两台node节点分别安装
yum install  epel-release  nginx keepalived nginx-mod-stream  -y
(2)更改nginx.conf
# cat /etc/nginx/nginx.confuser nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;include /usr/share/nginx/modules/*.conf;events {worker_connections 1024;
}# 增加一下内容:为两台apiserver组件提供负载均衡
stream {log_format  main  '$remote_addr $upstream_addr - [$time_local] $status $upstream_bytes_sent';access_log  /var/log/nginx/k8s-access.log  main;upstream k8s-ingress-controller {server 192.168.40.181:80 weight=5 max_fails=3 fail_timeout=30s;   # node1的IP:PORTserver 192.168.40.182:80 weight=5 max_fails=3 fail_timeout=30s;   # node2 的IP:PORT}server {listen 30080; # 该监听端口需要大于30000-32000左右proxy_pass k8s-ingress-controller;}
}http {log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile            on;tcp_nopush          on;tcp_nodelay         on;keepalive_timeout   65;types_hash_max_size 2048;include             /etc/nginx/mime.types;default_type        application/octet-stream;}

【备注】:

  • server 反向服务地址和端口
  • weight 主机权重
  • max_fails 最大失败次数,达到该数值,则认为主机已挂掉,踢出
  • fail_timeout 踢出后重新探测时间
  • nginx监听端口变成大于30000的端口,才能代理ingress-controller。(比方说30080,问域名:30080)
(3)keepalive配置

主节点 和 备节点服务器的配置不同。

# cat /etc/keepalived/keepalived.conf global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc  smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id NGINX_MASTER
} vrrp_script check_nginx {script "/etc/keepalived/check_nginx.sh"
}vrrp_instance VI_1 { state MASTER interface ens33      # 修改为实际网卡名virtual_router_id 51 # VRRP 路由 ID实例,每个实例是唯一的 priority 100         # 优先级,备服务器设置 90 advert_int 1         # 指定VRRP 心跳包通告间隔时间,默认1秒 authentication { auth_type PASS      auth_pass 1111 }  # 虚拟IPvirtual_ipaddress { 192.168.40.199/24  # 该网段需和物理机ip为同一个网段} track_script {check_nginx} 
}

【注意】:

  • vrrp_script:指定检查nginx工作状态脚本(根据nginx状态判断是否故障转移)
  • virtual_ipaddress:
    • 虚拟IP(VIP)
    • 192.168.40.199/24 # 该网段需和物理机ip为同一个网段
    • 该ip地址不能被占用,需要ping一下查看

【主/备配置参数区别】:

主服务(node01)备服务(node02)
stateMASTERBACKUP
priority10090

在这里插入图片描述

(4)配置检测脚本check_nginx.sh
# cat check_nginx.sh#!/bin/bash
#1、判断Nginx是否存活
counter=$(ps -ef |grep nginx | grep sbin | egrep -cv "grep|$$" )
if [ $counter -eq 0 ]; then#2、如果不存活则尝试启动Nginxservice nginx startsleep 2#3、等待2秒后再次获取一次Nginx状态counter=$(ps -ef |grep nginx | grep sbin | egrep -cv "grep|$$" )#4、再次进行判断,如Nginx还不存活则停止Keepalived,让地址进行漂移if [ $counter -eq 0 ]; thenservice  keepalived stopfi
fi

添加授权,拥有可执行权限:chmod +x check_nginx.sh

(5)两台node主机节点按顺序依次启动
systemctl daemon-reload
systemctl enable nginx keepalived
systemctl start nginx
systemctl start keepalived
(6)测试vip是否绑定成功

查看vip绑定位置:
在这里插入图片描述
通过停止keepalived,看看vip的位置,是否“漂移”!!!

3,控制器(deploy)创建pod及service

# cat ingress-service-pod.yamlapiVersion: v1
kind: Service
metadata:name: ingress-service      # 创建service名称namespace: ingress-nginx   # 指定命名空间labels:app: ingress-service     # service自己标签
spec:selector: app: ingress-pod         # service 筛选pod标签version: v1type: ClusterIPports:- port: 80                 # service对外暴露的端口targetPort: 80           # 指定流量转发pod的目标端口
---
apiVersion: apps/v1
kind: Deployment
metadata:name: ingress-deploylabels: app: ingress-deploy-podversion: v1namespace: ingress-nginx
spec:replicas: 3revisionHistoryLimit: 8selector:matchLabels:app: ingress-podversion: v1strategy:rollingUpdate:maxSurge: 2maxUnavailable: 0template:metadata:labels:app: ingress-podversion: v1namespace: ingress-nginxspec:containers:- name: ingress-nginx-podimage: nginximagePullPolicy: IfNotPresentports:- name: web-portcontainerPort: 80protocol: TCPresources:requests:memory: "64Mi"cpu: "250m"limits:memory: "128Mi"cpu: "500m"  

4,创建ingress

# cat ingress.yamlapiVersion: networking.k8s.io/v1
kind: Ingress
metadata: name: ingress-webnamespace: ingress-nginxlabels:app: ingress-webversion: v1
spec:ingressClassName: nginx  rules:- host: mdy.ingressweb.com        # 指定访问的域名http:paths:- backend:service:name: ingress-service   # 指定之前创建service的名称port:        number: 80            # 指定service的端口path: /                     # 指定访问的路径pathType: Prefix            

在这里插入图片描述

5,访问域名 http://mdy.ingressweb.com

本地主机host绑定:

192.168.40.199  mdy.ingressweb.com

在这里插入图片描述

6,构建Ingress HTTPS代理访问

HTTPS域名访问,需要购买证书,测试本地自建证书即可!

(1)创建并进入tls目录, 创建域名 mdy.ingressweb2.com证书
# cd /root/ingress/tlsopenssl genrsa -out tls-name.key 2048# 指定具体域名mdy.ingressweb2.com
openssl req -new -x509 -key tls-name.key -out tls-name.crt -subj /C=CN/ST=Beijing/L=Beijing/O=DevOps/CN=mdy.ingressweb2.com
(2)根据域名证书,创建生成secret
kubectl create secret tls ingress-secret --cert=tls-name.crt --key=tls-name.key

【注意】
kubectl create secret tls:为生产工具(tls为证书类型),固定写法。

(3)基于上面生产的ingress.yaml更改配置
# cat ingress.yamlapiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: ingress-web-httpsnamespace: ingress-nginxlabels:app: ingress-webversion: v1
spec:ingressClassName: nginxtls:                            # 定义证书- hosts:                        # 定义hosts- mdy.ingressweb2.com         # 指定域名(已被证书签发)secretName: ingress-secretrules:- host: mdy.ingressweb2.comhttp:paths:- backend:service:name: ingress-serviceport:number: 80path: /pathType: Prefix            
(4)访问域名 https://mdy.ingressweb2.com

本地主机host绑定:

192.168.40.199  mdy.ingressweb2.com

在这里插入图片描述
在这里插入图片描述

http://www.yayakq.cn/news/668971/

相关文章:

  • 中小型电子商务网站有哪些wordpress设置滑动效果
  • 已经有域名 如何建设网站网站功能需求用什么做
  • 网站不备案有什么后果如何下载ppt模板免费下载
  • 三亚网站建设公司荆门网站制作公司
  • 网站页面组成那个网站有帮人做图的
  • 小型网站运营网站刷链接怎么做
  • 学前教育网站建设免费自助建站系统
  • 网站排名做不上去vs怎样建设新网站
  • 做相册的网站(网易建筑二级建造师培训机构
  • 网站开发个人博客做的漂亮的商务网站
  • 重庆做网站开发的集中网站推销怎么做ppt
  • 网站视频上传怎么做社交网站
  • 如东网站建设芜湖企业
  • 向客户介绍网站建设的话术长沙企业网站制作
  • 抄袭别人网站网站做多久
  • 石家庄企业做网站在线网页视频提取
  • 免费搭建购物网站南通网站建设价格
  • 有哪些学做衣服的网站有哪些校园网站建设与管理问题分析
  • 宜城网站建设会用框架做网站能找到工作吗
  • 主机屋怎么做网站六盘水seo
  • 开发网站公司都需要什么岗位人员短视频获客系统
  • 专业网站建设公司兴田德润简介免费的微网站制作平台
  • 网站福利你们会回来感谢我的织梦后台做的网站怎么绑定域名
  • 京东网站的设计风格北京搜索引擎推广服务
  • 国外学校网站模板牡丹区建设局网站
  • 海洋馆网站建设百度云网盘资源搜索引擎
  • 扬州市城市建设投资公司网站上海市建设市场信息服务平台
  • 华宁网站建设襄樊门户网站建设
  • 网站接入商排名简单易做的网站
  • 郑州网站建设公司排名福州一站式品牌推广运营公司