我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么实现Kubernetes应用部署

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么实现Kubernetes应用部署

这篇文章主要讲解了“怎么实现Kubernetes应用部署”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现Kubernetes应用部署”吧!

概述

当希望在Kubernetes中部署应用程序时,通常要定义三个组件:

  • 部署(Deployment):这是创建Pod应用程序副本的方法

  • 服务(Service):将流量调度到Pods的内部负载平衡器

  • 入口(Ingress):描述流量如何从群集外部流到服务。

直观图示

首先,在Kubernetes中,应用程序应该通过两层负载均衡对外公开:内部负载均衡器和外部负载均衡器。

怎么实现Kubernetes应用部署

其次,内部的负载均衡器又被称为服务,而外部的负载均衡器称为入口。

怎么实现Kubernetes应用部署

最后:Pods不会直接部署。相反,Deployment会在其上创建Pods和观察者。

怎么实现Kubernetes应用部署

应用YAML示例

一个简单的Hello World应用程序为例,该应用程序的YAML如下所示:

apiVersion: apps/v1

kind: Deployment

metadata:

name: my-deployment

labels:

track: canary

spec:

selector:

matchLabels:

any-name: my-app

template:

metadata:

labels:

any-name: my-app

spec:

containers:

- name: cont1

image: learnk8s/app:1.0.0

ports:

- containerPort: 8080

---

apiVersion: v1

kind: Service

metadata:

name: my-service

spec:

ports:

- port: 80

targetPort: 8080

selector:

name: app

---

apiVersion: networking.k8s.io/v1beta1

kind: Ingress

metadata:

name: my-ingress

spec:

rules:

- http:

paths:

- backend:

serviceName: app

servicePort: 80

path: /

该定义很长,不好发现组件之间的相互联系。

比如下这些问题:

什么时候应该使用端口80,什么时候应该使用端口8080?

为了避免冲突,是否应要为每个服务都创建一个新端口?

标签名称重要吗?各处命名是否都应该一致?

要回答这些问题,请接着往下看:

连接部署和服务

实际上服务和部署没有直接连接,服务跳过部署直接指向Pod。因此,要注意的实际上是Pod和服务之间的相互关系。

关键点

他们关系中要注意:

服务选择器应至少与Pod的一个标签匹配;

服务的目标端口(targetPort)应该与Pod内容器的容器端口(containerPort)匹配;

服务端口可以是任何数字。多个服务也可以使用同一端口,因为它们分配了不同的IP地址。

直观图示

1. 考虑服务下Pod公开的端口

怎么实现Kubernetes应用部署

2.创建Pod时,应为Pod中的每个容器定义端口containerPort。

怎么实现Kubernetes应用部署

3.创建服务时,可以定义端口和目标端口。但是只能用目标端口连接容器

怎么实现Kubernetes应用部署

4.目标端口和容器端口应该匹配。

怎么实现Kubernetes应用部署

5. 如果容器公开了端口3000,则targetPort应该与该数字匹配。

怎么实现Kubernetes应用部署

如果查看YAML,则标签和ports/targetPor应该匹配:

怎么实现Kubernetes应用部署

常见问题

那么部署顶部track: canary标签是干什么的?

需要应该匹配吗?

部署的track: canary标签属于部署,服务选择器没有使用它来做流量调度。所以这个标签完全可以删除,或者为它分配其他值。

matchLabels选择器呢?

它必须与Pod标签匹配,部署用它来跟踪Pod。

Pod配置修改,如何测试?

我们可以使用以下命令检查Pod的标签是否正确:

kubectl get pods --show-labels

对于属于多个应用程序的Pod使用:

kubectl get pods --selector any-name=my-app --show-labels

其中any-name = my-app表示标签any-name:my-app。

或者可以直接连接到Pod:可以使用kubectl port-forward命令连接到服务并测试连接。

kubectl port-forward service/3000:80

其中,service/是服务的名称,比如示例中为"  my-service";3000是希望在计算机上打开的端口;80是"服务"在"端口"字段中公开的端口。

如果可以连接,则说明设置正确。如果不能,则很可能配置了标签,或者端口不匹配。

服务和入口连接

应用程序发布的最后一个一步是配置Ingress入口。

关键点

入口必须知道如何检索服务,然后检索Pod并将流量调度到它们。入口按名称和公开的端口来检索服务。

在入口和服务中应该匹配两件事:

  • Ingress的servicePort应该与Service的端口匹配

  • Ingress的serviceName应该与Service的名称匹配

直观图示

首先,已经该服务发布了一个端口。

怎么实现Kubernetes应用部署

其次,入口中有一个名为服务端口(servicePort)的字段。

怎么实现Kubernetes应用部署

在次,服务端口和入口服务端口应始终匹配。

怎么实现Kubernetes应用部署

最后,如果为服务分配了端口80,也应将其servicePort更改为80。

怎么实现Kubernetes应用部署

先示例配置要注意的字段:

怎么实现Kubernetes应用部署

常见问题

如何测试入口的功能?

可以对kubectl port-forward使用与之前相同的策略,但是应该连接到Ingress控制器,而不是连接到服务。

首先,使用以下命令检索Ingress控制器的Pod名称:

kubectl get pods --all-namespaces

怎么实现Kubernetes应用部署

对确认的Ingress Pod(可能在不同的命名空间中)执行下面命令:

kubectl describe pod nginx-ingress-controller-6fc5bcc --namespace  kube-system|grep Ports

怎么实现Kubernetes应用部署

用得到端口连接到Pod:

kubectl port-forward nginx-ingress-controller-6fc5bcc 3000:80 --namespace  kube-system

这样访问计算机上的端口3000时,请求都会被转发到Ingress控制器Pod上的端口80。你访问localhost:3000,就能看到发布的应用程序。

感谢各位的阅读,以上就是“怎么实现Kubernetes应用部署”的内容了,经过本文的学习后,相信大家对怎么实现Kubernetes应用部署这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么实现Kubernetes应用部署

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Kubernetes应用部署问题怎么处理

这篇文章主要讲解了“Kubernetes应用部署问题怎么处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Kubernetes应用部署问题怎么处理”吧!1、应用部署问题处理的整体思路在将容器
2023-06-04

kubernetes怎么部署redis集群

在Kubernetes中部署Redis集群通常可以使用Redis官方提供的Redis集群模式或者使用第三方工具如Redis Operator等来实现。以下是部署Redis集群的一般步骤:创建Redis配置文件:创建一个Redis集群的配置文
kubernetes怎么部署redis集群
2024-04-09

Kubernetes集群插件怎么部署

这篇文章主要介绍“Kubernetes集群插件怎么部署”,在日常操作中,相信很多人在Kubernetes集群插件怎么部署问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Kubernetes集群插件怎么部署”的疑
2023-06-29

kubernetes中怎么部署coredns 插件

这期内容当中小编将会给大家带来有关kubernetes中怎么部署coredns 插件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一:简介 从Kubernetes 1.10开始,在安装时将默认的DN
2023-06-04

怎么使用Docker部署Go Web应用的实现

这篇文章给大家分享的是有关怎么使用Docker部署Go Web应用的实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。目录为什么需要Docker?Docker部署示例完整版代码示例,请查看我的github仓库:h
2023-06-07

如何利用Gitlab和Kubernetes实现自动化部署

GitlabK8s自动化部署随着云计算和容器化技术的普及,企业越来越多地将应用程序部署在 Kubernetes 上。而为了更好地管理 Kubernetes 环境中的应用程序,越来越多的企业选择使用 Gitlab 和 Kubernetes 的
2023-10-22

Kubernetes​怎么部署高可用kube-apiserver集群

这篇文章主要讲解了“Kubernetes怎么部署高可用kube-apiserver集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Kubernetes怎么部署高可用kube-apiserv
2023-06-29

Laravel应用怎么部署

这篇文章主要讲解了“Laravel应用怎么部署”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Laravel应用怎么部署”吧!本文 php 基础镜像使用:php:7.3-apache本文 la
2023-07-04

怎么用KOps在AWS上部署和管理Kubernetes

本篇内容主要讲解“怎么用KOps在AWS上部署和管理Kubernetes”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用KOps在AWS上部署和管理Kubernetes”吧!Kubernet
2023-06-19

Centos7安装部署Kubernetes(k8s)集群实现过程

这篇文章主要为大家介绍了Centos7安装部署Kubernetes(k8s)集群实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-13

Helm如何解决Kubernetes中部署应用的问题

这篇文章将为大家详细讲解有关Helm如何解决Kubernetes中部署应用的问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、背景Kubernetes(k8s)是一个基于容器技术的分布式
2023-06-04

docker怎么部署django应用

要部署Django应用程序,可以使用Docker进行容器化。下面是一些步骤:1. 创建Django项目:首先,在本地开发计算机上创建Django项目。确保项目可以在本地正常运行,并且所有依赖项都已安装。2. 创建Dockerfile: 在项
2023-08-16

docker怎么部署go应用

要部署Go应用程序,您可以使用Docker来创建一个镜像并将其部署到容器中。下面是一个简单的步骤:1. 创建一个包含Go应用程序的目录结构。在这个目录下,您应该有一个名为`main.go`的Go源文件,以及其他必要的源代码文件和配置文件。2
2023-08-16

docker怎么部署nginx应用

要部署Nginx应用,您可以使用Docker来进行部署。下面是一些步骤可以帮助您完成此过程:1. 首先,您需要安装Docker,可以根据您的操作系统类型选择适当的方法进行安装。2. 创建一个新的目录,用于存储您的Nginx配置文件和相关的静
2023-10-20

springcloud怎么实现热部署

Spring Cloud并不直接支持热部署,但是可以通过以下几种方式实现热部署:使用Spring Boot DevTools:Spring Boot DevTools是一个可选的Spring Boot模块,它提供了一些工具,可以在开发过程中
2023-10-23

编程热搜

目录