【云原生】2.4 Kubernetes 核心实战(中)

简介: 我们在 Kubernetes 上面部署了一个应用,应用下面有很多 Pod,当我们的流量高峰期的时候,空间不够用的时候,这时,Kubernetes 就会进行扩大容量的操作(扩容kubectl scale)。

  哈喽~大家好呀,我们这篇呢继续上一篇的讲解(Kubernetes 核心实战(上)),接下来就直接上课吧


一、前言

上篇我们讲到Deployment 作用:它具有多副本,自愈,扩缩容等能力。

1、Kubernetes 扩缩容性

扩容性:我们在 Kubernetes 上面部署了一个应用,应用下面有很多 Pod,当我们的流量高峰期的时候,空间不够用的时候,这时,Kubernetes 就会进行扩大容量的操作(扩容kubectl scale)。

image.png

缩容性:扩容结束后,流量高峰期过后,扩容的空间就不需要用了,所以就会进行缩容操作(缩容kubectl scale)。

🎡扩缩容命令(my-dep 是扩容与缩容的参数)

kubectl scale --replicas=5 deployment/my-dep

image.gif

image.png

2、自愈与故障转移

什么是自愈?

还是Kubernetes 上面部署了一个应用,应用下面有很多 Pod,当其中某一个 Pod出问题了,我们可以通过重启等方法进行自我修复等操作,这就叫自愈。

什么是故障转移?

有人可能就会问了,如何自愈失败呢?这时,我们将 出故障的 Pod 里面的东西转到另外一台 Pod 上面,这个就是故障转移。

3、滚动更新

还是上面的例子,Kubernetes 上面部署了一个应用,应用下面有很多 Pod,我们要将 Pod 升级到某一版本,这时 k8s 先下载好 Pod,然后在替换掉(这很像更新某一 App 一样)。

更新

kubectl set image deployment/my-dep nginx=nginx:1.16.1 --record

image.gif

4、版本回退

🎡历史记录

kubectl rollout history deployment/my-dep

image.gif

🎡查看某个历史详情

kubectl rollout history deployment/my-dep --revision=2

image.gif

🎡回滚(回到上次)

kubectl rollout undo deployment/my-dep

image.gif

🎡回滚(回到指定版本)

kubectl rollout undo deployment/my-dep --to-revision=2

image.gif

二、Service服务暴露方式

Service 是将一组 Pods 公开为网络服务的抽象方法。

我们有三个 Pod,用 Service 将它们连接起来,原本三个 Pod 它们有各自的 IP 地址,现在呢?我们只需要访问 Service 的地址就可以实现服务发现与负载均衡了,api 地址就是 service 的地址,如何实现呢?

🎡暴露Deploy

kubectl expose deployment my-dep --port=8000 --target-port=80

image.gif

🎡使用标签检索Pod

kubectl get pod -l app=my-dep

image.gif

🎡NodePort 就是在集群外也可以访问

kubectl expose deployment my-dep --port=8000 --target-port=80 --type=NodePort

image.gif

🎡同样的道理,如果是集群内部的话就在后面改为 --type=ClusterIP

kubectl expose deployment my-dep --port=8000 --target-port=80 --type=ClusterIP

image.gif

🎡注意:NodePort范围在 30000-32767 之间

三、Ingress网络模型分析及安装

Ingress 是 Service 的统一网关入口,将来我们有很多的 Service ,我们希望有个统一的域名来管理,所以出现了 Ingress nginx。

1、安装 Ingress

vi ingress.yaml 里面输入命令行(因为要访问 Github,下载非常慢,所以这里就直接从阿里云里面下载)

🎡将image的值改为如下值

registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/ingress-nginx-controller:v0.46.0

image.gif

🎡 检查安装的结果

kubectl get pod,svc -n ingress-nginx

image.gif

🎡注:别忘记把 svc 暴露的端口要放行

image.png

image.png

官网地址:Welcome - NGINX Ingress Controller

2、域名访问

vi ingress-rule.yaml 写入命令

image.png

3、路径重写

image.png

4、流量限制

image.png


相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
3月前
|
Kubernetes 监控 调度
Kubernetes Pod调度:从基础到高级实战技巧
Kubernetes Pod调度:从基础到高级实战技巧
180 0
|
3月前
|
Kubernetes Cloud Native 调度
云原生技术专题 | 云原生容器编排问题盘点,总结分享年度使用Kubernetes的坑和陷阱
随着云原生的兴起,越来越多的应用选择基于Kubernetes进行部署,可以说Kubernetes 是最流行的容器编排和部署平台。它的强大功能特性,可以保障在生产中可靠地运行容器化应用程序,相关的DevOps等工具也应运而生,下面就是小编简单化了一个Kubernetes的逻辑架构图。
326 9
云原生技术专题 | 云原生容器编排问题盘点,总结分享年度使用Kubernetes的坑和陷阱
|
3月前
|
存储 Kubernetes 监控
Kubernetes快速进阶与实战:构建可靠的容器化应用平台
Kubernetes快速进阶与实战:构建可靠的容器化应用平台
93 0
|
9天前
|
Kubernetes 监控 Cloud Native
构建高效云原生应用:基于Kubernetes的微服务治理实践
【4月更文挑战第13天】 在当今数字化转型的浪潮中,企业纷纷将目光投向了云原生技术以支持其业务敏捷性和可扩展性。本文深入探讨了利用Kubernetes作为容器编排平台,实现微服务架构的有效治理,旨在为开发者和运维团队提供一套优化策略,以确保云原生应用的高性能和稳定性。通过分析微服务设计原则、Kubernetes的核心组件以及实际案例,本文揭示了在多变的业务需求下,如何确保系统的高可用性、弹性和安全性。
13 4
|
28天前
|
Kubernetes Cloud Native Docker
【云原生】kubeadm快速搭建K8s集群Kubernetes1.19.0
Kubernetes 是一个开源平台,用于管理容器化工作负载和服务,提供声明式配置和自动化。源自 Google 的大规模运维经验,它拥有广泛的生态支持。本文档详细介绍了 Kubernetes 集群的搭建过程,包括服务器配置、Docker 和 Kubernetes 组件的安装,以及 Master 和 Node 的部署。此外,还提到了使用 Calico 作为 CNI 网络插件,并提供了集群功能的测试步骤。
216 0
|
1月前
|
Kubernetes Cloud Native Devops
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
50 1
|
1月前
|
弹性计算 运维 Kubernetes
云原生K8S场景自动化响应ECS系统事件
客户云原生K8S场景下,通过社区开源NPD+Draino+Autoscaler零开发,对接响应ECS主动运维事件,通过自动响应事件减少非预期宕机。
|
3月前
|
Kubernetes Cloud Native 网络协议
【云原生】Kubernetes介绍
【云原生】Kubernetes介绍
38 1
|
3月前
|
存储 Kubernetes 安全
Kubernetes Pod配置:从基础到高级实战技巧
Kubernetes Pod配置:从基础到高级实战技巧
144 0
|
3月前
|
人工智能 Cloud Native PyTorch
阿里云 ACK 云原生 AI 套件中的分布式弹性训练实践
阿里云 ACK 云原生 AI 套件中的分布式弹性训练实践
148654 4