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

咸阳免费做网站邢台网站制作哪里做

咸阳免费做网站,邢台网站制作哪里做,安居客看房网,视觉设计评价标准的要素Ingress其实就是从 kuberenets 集群外部访问集群的一个入口#xff0c;将外部的请求转发到集群内不同的 Service 上#xff0c;其实就相当于 nginx、haproxy 等负载均衡代理服务器#xff0c;有的同学可能觉得我们直接使用 nginx 就实现了#xff0c;但是只使用 nginx 这种…Ingress其实就是从 kuberenets 集群外部访问集群的一个入口将外部的请求转发到集群内不同的 Service 上其实就相当于 nginx、haproxy 等负载均衡代理服务器有的同学可能觉得我们直接使用 nginx 就实现了但是只使用 nginx 这种方式有很大缺陷每次有新服务加入的时候怎么改 Nginx 配置不可能让我们去手动更改或者滚动更新前端的 Nginx Pod 吧那我们再加上一个服务发现的工具比如 consul 如何貌似是可以对吧而且在之前单独使用 docker 的时候这种方式已经使用得很普遍了Ingress 实际上就是这样实现的只是服务发现的功能自己实现了不需要使用第三方的服务了然后再加上一个域名规则定义路由信息的刷新需要一个靠 Ingress controller 来提供。 Ingress controller 可以理解为一个监听器通过不断地与 kube-apiserver 打交道实时的感知后端 service、pod 的变化当得到这些变化信息后Ingress controller 再结合 Ingress 的配置更新反向代理负载均衡器达到服务发现的作用。其实这点和服务发现工具 consul consul-template 非常类似。 现在可以供大家使用的 Ingress controller 有很多比如 traefik、nginx-controller、Kubernetes Ingress Controller for Kong、HAProxy Ingress controller当然你也可以自己实现一个 Ingress Controller现在普遍用得较多的是 traefik 和 nginx-controllertraefik 的性能较 nginx-controller 差但是配置使用要简单许多我们这里会以更简单的 traefik 为例给大家介绍 ingress 的使用。 Traefik Traefik 是一款开源的反向代理与负载均衡工具。它最大的优点是能够与常见的微服务系统直接整合可以实现自动化动态配置。目前支持 Docker、Swarm、Mesos/Marathon、 Mesos、Kubernetes、Consul、Etcd、Zookeeper、BoltDB、Rest API 等等后端模型。 要使用 traefik我们同样需要部署 traefik 的 Pod由于我们演示的集群中只有 master 节点有外网网卡所以我们这里只有 master 这一个边缘节点我们将 traefik 部署到该节点上即可。 首先为安全起见我们这里使用 RBAC 安全认证方式(rbac.yaml) --- apiVersion: v1 kind: ServiceAccount metadata:name: traefik-ingress-controllernamespace: kube-system --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1beta1 metadata:name: traefik-ingress-controller rules:- apiGroups:- resources:- services- endpoints- secretsverbs:- get- list- watch- apiGroups:- extensionsresources:- ingressesverbs:- get- list- watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata:name: traefik-ingress-controller roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: traefik-ingress-controller subjects: - kind: ServiceAccountname: traefik-ingress-controllernamespace: kube-system 直接在集群中创建即可 $ kubectl create -f rbac.yaml serviceaccount traefik-ingress-controller created clusterrole.rbac.authorization.k8s.io traefik-ingress-controller created clusterrolebinding.rbac.authorization.k8s.io traefik-ingress-controller created 然后使用 Deployment 来管理 Pod直接使用官方的 traefik 镜像部署即可traefik.yaml --- apiVersion: apps/v1 kind: Deployment metadata:name: traefik-ingress-controllernamespace: kube-systemlabels:k8s-app: traefik-ingress-lb spec:replicas: 1selector:matchLabels:k8s-app: traefik-ingress-lbtemplate:metadata:labels:k8s-app: traefik-ingress-lbname: traefik-ingress-lbspec:serviceAccountName: traefik-ingress-controllerterminationGracePeriodSeconds: 60tolerations:- operator: ExistsnodeSelector:kubernetes.io/hostname: mastercontainers:- image: traefik:v1.7.17name: traefik-ingress-lbports:- name: httpcontainerPort: 80- name: admincontainerPort: 8080args:- --api- --kubernetes- --logLevelINFO --- kind: Service apiVersion: v1 metadata:name: traefik-ingress-servicenamespace: kube-system spec:selector:k8s-app: traefik-ingress-lbports:- protocol: TCPport: 80name: web- protocol: TCPport: 8080name: admintype: NodePort 直接创建上面的资源对象即可 $ kubectl create -f traefik.yaml deployment.apps traefik-ingress-controller created service traefik-ingress-service created 要注意上面 yaml 文件 tolerations: - operator: Exists nodeSelector:kubernetes.io/hostname: master 由于我们这里的特殊性只有 master 节点有外网访问权限所以我们使用nodeSelector标签将traefik的固定调度到master这个节点上那么上面的tolerations是干什么的呢这个是因为我们集群使用的 kubeadm 安装的master 节点默认是不能被普通应用调度的要被调度的话就需要添加这里的 tolerations 属性当然如果你的集群和我们的不太一样直接去掉这里的调度策略就行。 nodeSelector 和 tolerations 都属于 Pod 的调度策略在后面的课程中会为大家讲解。 traefik 还提供了一个 web ui 工具就是上面的 8080 端口对应的服务为了能够访问到该服务我们这里将服务设置成的 NodePort $ kubectl get pods -n kube-system -l k8s-apptraefik-ingress-lb -o wide NAME READY STATUS RESTARTS AGE IP NODE traefik-ingress-controller-57c4f787d9-bfhnl 1/1 Running 0 8m 10.244.0.18 master $ kubectl get svc -n kube-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ... traefik-ingress-service NodePort 10.102.183.112 none 80:30539/TCP,8080:30486/TCP 8m ... 现在在浏览器中输入 master_node_ip:30486 就可以访问到 traefik 的 dashboard 了 Ingress 对象 现在我们是通过 NodePort 来访问 traefik 的 Dashboard 的那怎样通过 ingress 来访问呢 首先需要创建一个 ingress 对象(ingress.yaml) apiVersion: extensions/v1beta1 kind: Ingress metadata:name: traefik-web-uinamespace: kube-systemannotations:kubernetes.io/ingress.class: traefik spec:rules:- host: traefik.haimaxy.comhttp:paths:- backend:serviceName: traefik-ingress-serviceservicePort: 8080 然后为 traefik dashboard 创建对应的 ingress 对象 $ kubectl create -f ingress.yaml ingress.extensions traefik-web-ui created 要注意上面的 ingress 对象的规则特别是 rules 区域我们这里是要为 traefik 的 dashboard 建立一个 ingress 对象所以这里的 serviceName 对应的是上面我们创建的 traefik-ingress-service端口也要注意对应 8080 端口为了避免端口更改这里的 servicePort 的值也可以替换成上面定义的 port 的名字admin 创建完成后我们应该怎么来测试呢 第一步在本地的/etc/hosts里面添加上 traefik.haimaxy.com 与 master 节点外网 IP 的映射关系 第二步在浏览器中访问http://traefik.haimaxy.com我们会发现并没有得到我们期望的 dashboard 界面这是因为我们上面部署 traefik 的时候使用的是 NodePort 这种 Service 对象所以我们只能通过上面的 30539 端口访问到我们的目标对象http://traefik.haimaxy.com:30539加上端口后我们发现可以访问到 dashboard 了而且在 dashboard 当中多了一条记录正是上面我们创建的 ingress 对象的数据我们还可以切换到 HEALTH 界面中可以查看当前 traefik 代理的服务的整体的健康状态 第三步上面我们可以通过自定义域名加上端口可以访问我们的服务了但是我们平时服务别人的服务是不是都是直接用的域名啊http 或者 https 的几乎很少有在域名后面加上端口访问的吧为什么太麻烦啊端口也记不住要解决这个问题怎么办我们只需要把我们上面的 traefik 的核心应用的端口隐射到 master 节点上的 80 端口是不是就可以了因为 http 默认就是访问 80 端口但是我们在 Service 里面是添加的一个 NodePort 类型的服务没办法隐射 80 端口怎么办这里就可以直接在 Pod 中指定一个 hostPort 即可更改上面的 traefik.yaml 文件中的容器端口 containers: - image: traefik name: traefik-ingress-lb ports: - name: httpcontainerPort: 80hostPort: 80 - name: admincontainerPort: 8080 添加以后hostPort: 80然后更新应用 $ kubectl apply -f traefik.yaml 更新完成后这个时候我们在浏览器中直接使用域名方法测试下 第四步正常来说我们如果有自己的域名我们可以将我们的域名添加一条 DNS 记录解析到 master 的外网 IP 上面这样任何人都可以通过域名来访问我的暴露的服务了。如果你有多个边缘节点的话可以在每个边缘节点上部署一个 ingress-controller 服务然后在边缘节点前面挂一个负载均衡器比如 nginx将所有的边缘节点均作为这个负载均衡器的后端这样就可以实现 ingress-controller 的高可用和负载均衡了。
http://wiki.neutronadmin.com/news/299019/

相关文章:

  • wordpress建站吗网站开发个人基本情况1000字
  • 防wordpress花园网站更换域名seo
  • 外贸公司的网站建设模板下载外发加工费计入什么科目
  • 进一步加强区门户网站建设管理房山网站开发
  • 怎么联系做网站公司惠州网站推广排名
  • 网站建设包括哪些流程上海企业公示信息填报
  • 登陆江西建设厅三类人员的网站建筑模板做凳子
  • 房产中介网站排名电子商务网站建设信息
  • 自己建设的网站有管理后台的登录wordpress搭建h5
  • 购物网站排名2017wordpress图片缓存
  • 收费抽奖网站哪里可以做营销型网站
  • 网站优化需要什么免费建自己域名的网站吗
  • 银川做淘宝网站的赣州人才网下载
  • 网站设计 cdc微信小程序开发软件
  • 成寿寺网站建设公司在哪家公司建设网站好
  • 中国互联网协会会员天津 网站优化
  • 购物网站开发中遇到的问题鹰潭公司做网站
  • 开源saas多用户建站系统怎么套用网站模板
  • 我想自己卖特产怎么做网站wordpress 4.0 静态化
  • 哪些网站可以查企业信息wordpress必装的插件
  • 做电商与做网站的区别昌江县住房和城乡建设网站
  • 企业在阿里云做网站微信小程序分销功能
  • 大公司网站搭建公司中和seo公司
  • 辽宁省住房和城乡建设厅网站上不去威远移动网站建设
  • 涟水县建设局网站建设网站源码
  • 环球易购招聘网站建设不带区域的公司名称怎么注册
  • 提升网站建设品质公司营销活动怎么做吸引人
  • 邢台在百度上做个网站系统重装后怎么装wordpress
  • 国外商业网站无锡网站建设收费
  • 网站建设需要学习哪些wordpress主题汉化版