Kubernetes 麻烦笔记4:Ingress 部署和使用

发布于:2024-10-24 编辑:匿名 来源:网络

上一节我们分享了如何对外暴露服务。今天我们将研究另一种向外界公开服务的方式:ingress。

那么什么是入口呢?它与我们之前遇到的暴露服务有什么不同? 0x01 什么是入口?通常情况下,我们的主机或者集群会服务多个外部站点(比如a.com和b.com就是一个集群同时对外提供服务)。这在 Web 服务器中称为虚拟主机。

这样的话,在k8s中,如果使用前面提到的service服务,只能为不同的服务暴露不同的NodePort,比如a.com:0和b.com:1,也就是说必须要传入域名。通过端口访问站点服务。

这显然不能满足我们的要求。你可能会说,那我为什么不创建一个 nginx 部署,然后在 nginx 中配置规则,将不同的域名转发到不同的服务/pod 呢?恭喜,ingress 做到了。

而且ingress简化了规则的配置,通过ingress提供的API可以实现配置转发到Web服务器。 0x02 Ingress部署有很多实现ingress的方案,比如nginx、kong等,可以去k8s官方文档查看更多方案。

我们这里选择了Traefik。选择Traefik的原因之一是它易于部署。

当然,你也可以选择比较流行的。 nginx(ingress只需要一个yaml文件,但是为了方便理解,我们将整个部署文件分成几个部分,分别进行解释:首先我们需要创建一个账户,其中包含使用过程中需要使用的权限由于k8s使用的是基于角色(Role)的访问控制(RBAC),所以它的创建过程和我们平常的账户创建授权不同,它需要创建一个服务账户和一个角色,然后是服务。

帐户与角色绑定,这样服务帐户就可以拥有特定的权限。代码语言:txt copy --- 创建服务帐号 apiVersion: v1kind: ServiceAccountmetadata: namespace: kube-system name: ingress-controller-account --- 创建角色并更改角色拥有 ingress kind 所需的所有权限: ClusterRoleapiVersion: rbac .authorization.k8s.io/v1metadata: 名称: ingress-controller-role 命名空间: kube-systemrules: - apiGroups: - "" 资源: - 服务 - 端点 - 秘密 动词: - get - list - watch - apiGroups: -extensions -networking.k8s.io resources: -ingresses -ingressclasses verbs: -get -list -watch - apiGroups: -extensionsresources: -ingresses/status verbs: -update--- 将服务帐户绑定到角色,以便服务帐户具有角色中定义的权限 kind: ClusterRoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata: namespace: kube-system name: ingress-controller-role-bindingroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole 名称:ingress -controller-rolessubjects:- kind:ServiceAccount namespace: kube-system name: ingress-controller-account 创建服务角色后,开始创建应用程序(入口控制器)部署文件。

这里没有使用Deployment部署,而是使用了DaemonSet。两者基本相同。

唯一的区别是调度策略,DaemonSet 会保证每个工作节点有且唯一一个 pod 的端口暴露给外界。我们使用容器本身提供的端口映射能力,而不是使用NodePort将服务暴露给外界,因为NodePort虽然可以修改,但有范围限制。

实现了k8s配置,但是这样做本身就不符合规范。代码语言:txt复制kind: DaemonSetapiVersion: apps/v1metadata: namespace: kube-system name: traefik-ingress-controller-daemon-set labels: k8s-app: traefik-ingress-controllerspec: 选择器: matchLabels: k8s-app: traefik -ingress-controller模板:元数据:标签:k8s-app:traefik-ingress-controller规范:serviceAccountName:ingress-controller-account终止GracePeriodSeconds:60个容器:-图像:ustc-edu-cn.mirror.aliyuncs.com/library/ traefik:v2.4 名称:入口控制器 端口: - 名称:http 容器端口:80 主机端口:80 - 名称:https 容器端口:主机端口: - 名称:管理 容器端口:主机端口:securityContext:功能:drop: - 全部添加: - NET_BIND_SERVICE args: # 无需密码即可启用仪表板。

不推荐已修复#以进行生产。 - --api.insecure - --api.dashboard # 指定我们要使用 Traefik 作为入口控制器。

- --providers.kubernetesingress # 定义两个入口点端口,并设置从 HTTP 到 HTTPS 的重定向。 - --entryPoints.web.address=:80 - --entryPoints.websecure.address=: #- --entrypoints.web.http.redirections.entryPoint.to=websecure #- --entrypoints.web.http.redirections 。

EntryPoint.scheme=https # 启用调试日志记录。对于找出为什么某些东西可能无法工作很有用。

获取 pod 的日志。 - --log.level=info 将以上两部分代码保存为文件,然后执行 kubectl apply -f traefik-ingress.yml 即可完成 ingress 的部署:可以通过 kubectl -n kube 查看部署状态-system get daemonset 命令:0x03 ingress 以我们上一节暴露的服务为基础,这样 nginx-deployment 就可以通过 ingress 对外提供服务,创建 ingress 也比较简单。

主要内容大致如下。这里有两点需要注意。

首先是这里的spec.rules.0.host(nginx-ingress.local)的值是我自定义的,不存在。对于域名,您可以将其更改为您可以解析的域名。

如果稍后访问,则需要配置hosts。第二个spec.rules.0.http.paths.0.backend.service.name是我们在上一节的暴露服务中创建的服务名称,可以通过kubectl get svc查看。

代码语言:txt复制 apiVersion:networking.k8s.io/v1kind:Ingressmetadata:名称:nginx-deployment-ingressspec:规则:-主机:nginx-ingress.local http:路径:-路径:/pathType:前缀后端:服务: name: nginx-svc port: number: 80 将上述yaml代码保存为nginx-deployment-ingress.yml,然后执行kubectl apply -f nginx-deployment-ingress.yml即可完成ingress的创建。将9...93 nginx-ingress.local添加到hosts中(windows位于C:\Windows\System32\drivers\etc\hosts,linux和mac位于/etc/hosts)并保存。

Kubernetes 麻烦笔记4:Ingress 部署和使用

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 用GPT-4这样的大模型玩狼人杀,人类因为太蠢被投票判死,真正的逆向图灵测试

    用GPT-4这样的大模型玩狼人杀,人类因为太蠢被投票判死,真正的逆向图灵测试

    在这篇文章中,我们看到了人工智能如何与经典的社交推理游戏互动《狼人杀》结合创造了一个有趣的实验。 视频展示了亚里士多德、克利奥帕特拉等以历史人物为模型的人工智能 NPC 与人类玩家互动的场景。 人类玩家因答案不够复杂而被淘汰,颠覆了传统的图灵测试。 本文探讨了 AI

    06-17

  • 杭州出台25条措施加快生物医药产业高质量发展

    杭州出台25条措施加快生物医药产业高质量发展

    日前,杭州市人民政府办公厅发布《关于加快生物医药产业高质量发展若干措施的通知》。 该措施自2020年11月15日起实施,有效期至2020年12月31日。 该措施重点支持药品、高端医疗器械、先进制药装备、新型服务外包、数字医学、医学美容。 措施全文如下: 关于加快生物医药产业高

    06-18

  • 14nm写入上海市政府工作报告:今年实现量产

    14nm写入上海市政府工作报告:今年实现量产

    1月27日,上海市第十五届人民代表大会第二次会议正式开幕。 上海市市长应勇作政府工作报告。 报告中回顾了2017年上海发展现状,部署了全年重点工作和任务。 上海作为国家集成电路产业的重要集聚区,在年度政府工作报告中多处提及集成电路。 应勇在回顾一年来的工作时表示,“

    06-06

  • 海外呼叫中心服务:连接全球市场的桥梁

    海外呼叫中心服务:连接全球市场的桥梁

    .wp-block-column h3{margin-left:0} 1.引言 在全球化背景下,越来越多的企业开始寻求拓展海外市场。 随着国际贸易的日益频繁和跨境电商的兴起,海外呼叫中心服务作为连接企业与海外客户的重要桥梁,正逐渐受到越来越多企业的关注。 本文将对海外呼叫中心服务的定义、重要性、

    06-17

  • 库克谈苹果可持续发展计划:我们必须做得好,别人才想效仿 - Feel Good Weekly

    库克谈苹果可持续发展计划:我们必须做得好,别人才想效仿 - Feel Good Weekly

    Feel Good简介 苹果:我们的可持续发展计划必须好到让人想“复制” MINI推出首款电动自行车 lululemon:更多中国消费者正在积极探索“Good Condition”最新快闪店“雀巢咖啡,使用后可以回收。 无畏:为旅程提供气候标签的第一步苹果:我们必须可持续“复制”最“绿色”的秋季

    06-21

  • 猫生活领先品牌Pidan完成B+轮融资,兴旺投资独家领投,

    猫生活领先品牌Pidan完成B+轮融资,兴旺投资独家领投,

    据7月5日消息,近日,猫生活领先品牌Pidan完成B+轮融资,兴旺投资独家领投。 Pidan品牌起源于法国巴黎。 以其高品质、高设计的宠物产品多次荣获德国红点奖。 Pidan独创混合猫砂品类,在天猫猫砂品类中排名第一。 Pidan瞄准“猫市场”,将自己定位为全品类宠物生活方式品牌。

    06-17

  • Village Fund将于今晚在纽约证券交易所上市,沈南鹏称值得长期投资

    Village Fund将于今晚在纽约证券交易所上市,沈南鹏称值得长期投资

    中式快餐连锁乡村基金今晚将在纽交所上市,成为首家中式餐饮企业。 红杉资本中国基金创始人兼高管合伙人沈南鹏在接受新浪财经独家采访时表示,他被乡村基金的“深刻印象”所吸引。 它的快速增长才刚刚开始,值得他长期投资。   Village Base是一家以美味川菜为主,与当地风

    06-18

  • 二氧化硅龙头确辰硅化主板挂牌,盈科资本IPO再获丰收

    二氧化硅龙头确辰硅化主板挂牌,盈科资本IPO再获丰收

    12月7日,确辰硅化(83.SH)在上交所正式挂牌上市。 截至目前,盈科资本年度IPO项目总数已达14个,其中科创板6个、创业板4个、主板3个、港交所1个。 同期IPO数量继续保持行业领先地位。 作为全球前三、亚洲第一的二氧化硅行业领军企业,确成硅化现已形成从原料硫酸、水玻璃到

    06-18

  • 南芯半导体完成数千万元A轮融资,顺为资本领投

    南芯半导体完成数千万元A轮融资,顺为资本领投

    据投资界1月23日消息,高性能模拟芯片半导体公司南芯半导体完成数千万元A轮融资处于A轮融资中。 本轮融资由顺为资本领投,兴业资本海逸、紫米科技跟投。 南芯也是顺为资本投资的第一家芯片设计公司。   南芯半导体成立于2001年,主要从事集成电路芯片的研究、设计、开发和销

    06-18

  • 春华资本宣布收购美赞臣大中华区业务

    春华资本宣布收购美赞臣大中华区业务

    春华资本宣布与利洁时签署最终协议,收购利洁时美赞臣大中华区业务,并将拥有美赞臣品牌在大中华区市场的永久权益此次独家使用权将从业务创新、运营完善、渠道优化、数字化转型等方面支持美赞臣未来在中国的发展。

    06-17

  • 英伟达需要警惕的对手来了

    英伟达需要警惕的对手来了

    市值超1.7万亿美元的AI军火商英伟达开始感受到“危机”,需要警惕各类“对手” 。 日前,有消息称孙正义计划筹集1亿美元创建一家AI芯片公司,旨在挑战英伟达。 近日,AI芯片初创公司Groq也透露出颠覆英伟达的意图。 NVIDIA在AI芯片市场上无可匹敌。 本财年,NVIDIA的销售额连

    06-18

  • 春节“医美”热潮,爱美客和昊海生科谁更赚钱?

    春节“医美”热潮,爱美客和昊海生科谁更赚钱?

    在外表经济的轨道上,医美项目逐渐成为消费主流。 随着春节假期的到来,医美的消费将迎来又一个高峰期。 “医美三剑客”中,爱美客(96.SZ)和昊海生科(66.SH)近日公布了2020年业绩报告:2020年,爱美客预计实现净利润18.10亿元至1.900元亿元,同比增长43%-50%;昊海生科预

    06-17