以下配置文件可以在yaml/traefik-ingress/目录下找到。 创建ingress-rbac.yaml 将用于service account验证。 rbac.authorization.k8s.io 创建ingress.yaml # cat ingress.yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: traefik-ingress kubectl create -f . serviceaccount "ingress" created clusterrolebinding "ingress" created ingress "traefik-ingress
上篇懒得写了索性转载了一篇nginx-ingress的,本篇我们来看神器Traefik,我个人是比较看好和偏向与Traefik的,它轻便易用而且还有界面。
上篇我们简单介绍了下traefik以及如何http访问, 但是在实际生产环境中不仅仅只是http的转发访问,还有https的转发访问,
$ helm install traefik -n traefik-ingress -f my-value.yaml . 然后可以看到部署结果,如下: # kubectl get all -n traefik-ingress NAME READY STATUS port: number: 9000 创建路由规则,命令如下: # kubectl apply -f traefik-ingress.yaml -n traefik-ingress - name: traefik port: 9000 部署命令如下: # kubectl apply -f traefik-ingressRoute.yaml -n traefik-ingress - "--api.insecure=true" - "--api.dashboard=true" 然后重新更新一下Traefik,命令如下: helm upgrade traefik -n traefik-ingress
cat webui-ing.yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: traefik-ingress servicePort: 443# cat Redis-ing.yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: traefik-ingress
--- apiVersion: v1 kind: Service metadata: name: traefik-ingress namespace: traefik-system labels: app
rules: # NGINX Ingress 相关的规则 apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: traefik-ingress
frontend的ingress # cat traefik.ing.yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: traefik-ingress
何选nginx-ingress 在上述过程中对比了k8s里两个比较重要的ingress controller:traefik-ingress和nginx-ingress,比较起来,还是nginx-ingress
root@zdd211-200 traefik]# vi ds.yaml apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: traefik-ingress namespace: kube-system labels: k8s-app: traefik-ingress spec: template: metadata: labels: k8s-app: traefik-ingress name: traefik-ingress spec: serviceAccountName v1 metadata: name: traefik-ingress-service namespace: kube-system spec: selector: k8s-app: traefik-ingress created [root@zdd211-21 ~]# kubectl apply -f http://k8s-yaml.od.com/traefik/ds.yaml daemonset.extensions/traefik-ingress
created service/traefik-web-ui created ingress.extensions/traefik-web-ui created ingress.extensions/traefik-ingress
常用的Ingress Controller有nginx-ingress和traefik-ingress。 常用命令 # 通过文件名或控制台输入,对资源进行创建。
created service/traefik-web-ui created ingress.extensions/traefik-web-ui created ingress.extensions/traefik-ingress
job="kube-scheduler"}' - '{job="kube-controller-manager"}' - '{job="etcd-k8s"}' - '{job="traefik-ingress
进入“腾讯云”容器服务,打开集群Service,点击命名空间 traefik-system ,找到名为 traefik-ingress 的 IP 地址,并在本机新建两个 Host 规则: IP地址
进入“腾讯云”容器服务,打开集群Service,点击命名空间 traefik-system ,找到名为 traefik-ingress 的 IP 地址,并在本机新建两个 Host 规则: IP地址 dev.coding
prometheus_io_scrape": "true", "prometheus_io_port": "12346", "prometheus_io_path": "/" } 小试牛刀-Prometheus监控traefik-ingress
还有一些更为接近实际应用的操作比如:最简易的外网访问(适用于新手快速体验)、高级的外网访问nginx-ingress、traefik-ingress(实际场景应用)以及我们的业务弹性伸缩和滚动升级。
在实际的应用场景中一定是由某些服务要暴露给用户或者集群外部访问的比如网站服务, 而此时前面所提的四层服务发现仅仅限于K8s集群内部访问, 通过需要我们的前端代理来进行实现,例如采用Nginx-Ingress 或者 Traefik-Ingress
name: controller - protocol: TCP port: 8080 name: admin-web 5) 创建ingress yaml文件 vim traefik-ingress /mode: EnsureExists name: kubernetes-dashboard-settings namespace: kube-system 6) 创建ingress vim traefik-ingress