网站核验单下载,静态网站源码下载,深圳企业做网站公司,做网站需要的资料1、service的作用体现在两个方面
#xff08;1#xff09;集群内部#xff1a;不断跟踪pod的变化#xff0c;更新deployment中的pod对象#xff0c;基于pod的ip地址不断变化的一种服务发现机制
#xff08;2#xff09;集群外部#xff1a;类似于负载均衡器#xff…1、service的作用体现在两个方面
1集群内部不断跟踪pod的变化更新deployment中的pod对象基于pod的ip地址不断变化的一种服务发现机制
2集群外部类似于负载均衡器把流量ip端口不涉及转发urlhttp/https把请求转发到pod当中
2、service nodeport 容器端口——service端口——nodeport 设定了nodeport每个节点都会有一个端口被打开30000-32767 ip端口节点ip30000-32767实现负载均衡 loadbalancer 云平台上的一种service服务云平台提供负载均衡ip地址 extrenal 域名映射
3、ingress基于域名进行映射把urlhttp/https请求转发到service再由service把请求转发到每个pod
①ingress只要一个或者少量的公网ip/LB可以把多个http请求暴露到外网七层反向代理
②ingress是service的service是一组基于域名和url路径把一个或者多个请求转发到service的规则
④先是七层代理ingress——再是四层代理server——podnginx
4、ingress的组成 1ingress是一个api对象通过yaml文件来进行配置 2ingress的作用定义请求如何转发到service的规则配置模版 3ingress通过http和https暴露集群内部的service给service提供一个外部的url、负载均衡、ssl/tlshttps的能力实现基于域名的负载均衡 ingress-controller ①具体的实现反向代理和负载均衡的程序对ingress定义的规则进行解析根据ingress的配置规则进行请求的转发 ②ingress-controller不是k8s自带的组件功能ingress-controller是一个统称 ③ingress-controllernginx ingress controller、traefik开源 ④ingress-controller的运行方式pod形式运行在节点上
5、ingress资源的定义项
1定义外部流量的路由规则
2定义服务的暴露方式主机名、访问的路径url和其他的选项
3负载均衡ingress-controller实现
6、下载nginx ingress controller
wget https://gitee.com/mirrors/ingress-nginx/raw/nginx-0.30.0/deploy/static/mandatory.yaml 7、ingress暴露服务的方式
1deploymentLoadBalance模式ingress部署在公有云
①ingress的配置文件里面会有一个typetype键值对形式type:LoadBalance
②公有云平台会为LoadBalance的service创建一个负载均衡器绑定一个公网地址通过域名指向这个公网地址就可以实现集群对外暴露
2daemonSethostnetworknodeselector七层代理upstream
①daemonset在每个节点都会创建一个pod
②hostnetworkpod共享节点主机的网络命名空间pod中的容器直接使用节点主机的ip端口pod中的容器可以直接访问主机上的网络资源
③nodeselector根据标签选择部署的节点nginx-ingress-controller部署的节点 缺点直接利用节点主机的网络和端口一个node只能部署一个ingress-controller的pod适合大并发的生产环境 优点性能最好 3deploymentNodePort七层四层 8、部署daemonSethostnetworknodeselector
1修改配置文件mandatory.yaml 2每个节点上传控制器的镜像
tar -xf ingree.contro-0.30.0.tar.gz
docker load -i ingree.contro-0.30.0.tar 3节点设置标签
kubectl label nodes node2 ingresstrue netstat -antp | grep nginx 8181端口nginx-controller默认配置的一个bachend反向代理的端口 所有的请求当中只要是不符合ingress配置的请求会转发到8181相当于一个error的页面
4创建PVC、pod、service、ingress规则 5配置映射 6测试访问 8、deploymentNodePort七层四层 1修改配置文件vim mandatory.yaml 2下载nodeport模版文件
wget https://gitee.com/mirrors/ingress-nginx/raw/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml ①nodeport在每一节点上都暴露32110和32336的端口 3创建PVC、pod、service、ingress规则 4配置映射 5访问测试 6deploymentNodePort总结
①nodeport由ingress的service创建的不是deployment的service创建的
②nodeport适用于小集群
③ingress根据标签匹配ingress-nodeportingress-nodeport再根据标签匹配serviceservice再匹配deployment
④每个节点都有一个controllercontroller接收到解析后的请求ip和端口
7ingress暴露服务的方式核心的控制组件nginx-ingress-controller
①host——ingress的配置找到pod——controller转发请求到pod
②nodeport——controller——ingress——service转发请求到pod
③nodeport暴露端口的方式是最简单的方法但是nodeport多了一层nat地址转换
并发量大的对性能会有一定的影响内部都会用nodeport 9、通过虚拟主机的方式实现http代理
1通过ingress方式实现一个ingress可以访问不同的主机
2创建pod和service 3创建ingress 4配置映射 10、总结
1ingress的核心组件nginx-ingress-controller、traefik都是开源的ingress-controller
2ingress的三种工作方式重点 deploymentloadbalancer 需要云平台提供一个负载均衡的公网地址公有云上配置 daemonsethostnetworknodeselector指定节点部署controller ①缺点和宿主机共享网络只能是一个controller的pod多个端口会造成冲突 ②hostnetwork会和宿主机共享网络 deploymentnodeport最常见、最常用、最简单的方式 ①集中一个nodeport端口所有的ingress的请求都会转发到nodeport再由service把流量转发到pod
3一个ingress的nodeport可以实现访问多个虚拟主机和nginx一样
11、基于ingress实现https代理访问证书、密钥
1生成密钥、证书
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj /CNnginxsvc/0nginxsvc req 生成证书文件的请求 -x509 生成x.509自签名的证书 -sha256 表示使用sha-256的散列算法 -nodes 表示生成的密钥不加密 -day 365 证书有效期是265天 -newkey rsa:2048 RSA的密钥对长度2048位 -keyout tls.key -out tls.crt 密钥文件key、证书文件crt -subj/CNnginxsvc/Onginxsvc 主题CNcommon nameO表示organization组织 2创建secret保存证书和密钥
kubectl create secret tls tls-secret --key tls.key --cert tls.crt 3创建pod、service、ingress 4设置映射 5测试访问 ①虚拟机测试访问 ②负载均衡 内部实现ingress访问httpsDNS域名解析
外部实现ingress访问https购买域名
12、ngixn的登录账户认证
1htpasswd生成一个认证文件认证文件只能是auth
yum -y install httpd
htpasswd -c auth hyde 2创建secret保存auth认证文件
ubectl create secret generic basic-auth --from-fileauth 3创建ingress 4配置映射 5测试访问 13、nginx的重写rewritenginx的重定向
1创建ingress 2设置映射 3测试访问 nginx-ingress-controller全部完成
14、traefik ingress controller和nginx ingress controller的原理一样 1traefik是一个为了让部署微服务更加快捷而诞生的一个http反向代理、负载均衡
①traefik设计时就能够实时的和k8s的api进行交互可以感知后端service以及pod的变化可以自动更新配置和重载
2traefik的部署方式
①daemonset
②deployment
3daemonset部署的特点
①每个节点都会部署一个traefik
②节点感知可以自动发现、更新容器的配置不需要手动重载
③缺点资源占用在大型集群中daemonset可能会运行多个traefik的实例尤其是在不需要大量容器运行的情况下资源利用率不是很好没有办法扩缩容
④应用于部署对外集群对外的业务会经常变更使用daemonset可以更好的、自动的发现服务配置变更
⑤设定标签traffic-type:internal对内服务
4deployment部署的特点
①优点集中办公控制可以使用少量的实例来运行处理整个集群的流量更容易升级和维护
②缺点deployment的负载均衡不会均分到每个节点无法感知容器内部的配置变化需要手动更新
③应用于部署对内集群内部的业务相对稳定更新和变化也比较少更适合deployment
④设定标签traffic-type:iexternal对外服务
5traefix-ingress和nginx-ingress的区别
①工作原理都一样都是七层代理都可以动态的更新配置都可以自动发现服务
②traefix自动更新的重载速度更快更方便
③traefix适用于小集群traefix处理并发的能力只有nginx-ingress的60%
6traefik的实例之deploymentnodeport模式
①生成模版文件
wget https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/traefik-deployment.yaml
wget https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/traefik-rbac.yaml
wget https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/traefik-ds.yaml
wget https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/ui.yaml ②运行配置文件 ③访问20.0.0.71:31800 * 删除ingress ④创建pod、service、ingress ⑤测试访问 ⑥设置映射 ⑦配置自动发现
* 缩容 * 扩容 15、总结
1ingress的组件开源nginx-ingresscontroller、traefik-ingress-controller
2 nginx-ingress的部署方式
①deploymentloadbalancer公有云提供负载均衡的公网地址
②daemonsethostnetworknodeselector和节点服务器共享网络一个节点只能部署一个controller pod使用宿主机的端口性能最好适合大并发
③deploymentnodeport最常见、最常用、最简单的方法但是性能不太好多了一层nat的地址转发不太适合大并发
3traefik-ingress的部署方式
①对外daemonset可以自动更新容器的配置host使用节点的网络
②对内deployment无法自动更新容器的配置nodeport
4基于ingress实现https代理访问证书、密钥
①先生成密钥、证书
②创建secret保存证书和密钥
③创建ingress的时候把secret导入进去
5nginx登录加密认证
①htpasswd生成一个认证文件认证文件只能是auth
②创建ingress的两个代码
第一条声明认证类型
第二条导入认证的密钥文件以secret的方式存储在集群中 6nginx的rewrite重定向
①在指定的ingress文件当中声明的url都会跳转到指定的页面