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

 哈喽~大家好呀,我们这篇呢继续上一篇的讲解(Kubernetes 核心实战(上))。

 🥇个人主页:个人主页​​​​​             

🥈 系列专栏:【云原生系列】

🥉与这篇相关的文章:            

【云原生】2.1 Kubernetes基础概念【云原生】2.1 Kubernetes基础概念_程序猿追的博客-CSDN博客
【云原生】2.2 kubeadm创建集群【云原生】2.2 kubeadm创建集群_程序猿追的博客-CSDN博客
【云原生】2.3 Kubernetes 核心实战(上)【云原生】2.3 Kubernetes 核心实战(上)_程序猿追的博客-CSDN博客

目录

一、前言

1、Kubernetes 扩缩容性

2、自愈与故障转移

3、滚动更新

4、版本回退

二、Service服务暴露方式

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

1、安装 Ingress

2、域名访问

3、路径重写

4、流量限制


一、前言

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

1、Kubernetes 扩缩容性

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

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

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

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

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

4、版本回退

🎡历史记录

kubectl rollout history deployment/my-dep


🎡查看某个历史详情

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

🎡回滚(回到上次)

kubectl rollout undo deployment/my-dep

🎡回滚(回到指定版本)

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

二、Service服务暴露方式

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

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

🎡暴露Deploy

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

🎡使用标签检索Pod

kubectl get pod -l app=my-dep

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

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

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

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

🎡注意: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

🎡 检查安装的结果

kubectl get pod,svc -n ingress-nginx

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

 

 官网地址:Welcome - NGINX Ingress Controller

2、域名访问

vi ingress-rule.yaml 写入命令

3、路径重写

4、流量限制


下篇预告Kubernetes 核心实战(下)

 (求关注)持续更新中……

  • 64
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 64
    评论
评论 64
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿追

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值