微服务:kubernetes Ingress与其它补充内容

郎家岭伯爵 2022年05月27日 443次浏览

背景

前面介绍了kubernetes的一些内容,本文介绍Ingress以及其它补充内容

Ingress 为外部访问集群提供了一个统一入口,避免了对外暴露集群端口;功能类似Nginx,可以根据域名、路径把请求转发到不同的Service。可以配置https

实现

Ingress

要使用Ingress,需要一个负载均衡器 + Ingress Controller。
如果是裸机(bare metal) 搭建的集群,需要自己安装一个负载均衡插件,可以安装METALLB
如果是云服务商,会自动给你配置,否则你的外部 IP 会是 “pending” 状态,无法使用。

文档:Ingress
Minikube 中部署 Ingress Controller:nginx
Helm 安装: Nginx

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: simple-example
spec:
  ingressClassName: nginx
  rules:
  - host: tools.fun
    http:
      paths:
      - path: /easydoc
        pathType: Prefix
        backend:
          service:
            name: service1
            port:
              number: 4200
      - path: /svnbucket
        pathType: Prefix
        backend:
          service:
            name: service2
            port:
              number: 8080

其它补充

kubernetes可以管理大量的容器化应用,方便的进行伸缩扩展集群,随时回退版本。

kubernetes需要云厂商的支持才是完整的,好在当前各大云厂商都已经提供了K8S集群服务,生态很完善,非常方便。
我们自己搭建的叫裸机,用来做测试、学习很好,可以把自己淘汰的电脑用起来搭建出一个集群玩玩。

WEB 可视化管理集群

如果觉得命令行管理集群太麻烦,我们可以用 Helm 快速搭建一个kubernetes-dashboard,这样就有了一个 WEB 界面,可以可视化的进行一些操作和管理。

如果是minikube更加简单,一个命令minikube dashboard就好了。

数据库更好的做法

数据库这种有状态的应用,更好的做法是直接使用云厂商提供的数据库,运行会更加稳定,也有完善的数据备份。

用脚本搭建集群

Github上有用户已经把裸机搭建需要做的工作写成了脚本,一个脚本就帮我们初始化好集群工作:kainstall

公网搭建K8S集群

参考文档

总结

至此,kubernetes的完整理论及实操已完成。


此kubernetes的系列内容参考自此课程,博主仅是对课程的实际操作以及遇到的问题进行了补充。

请大家支持原创