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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

 哈喽~大家好呀我们这篇呢继续上一篇的讲解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 核心实战下

 求关注持续更新中……

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: k8s