云原生---基础


undefinedundefined

最大化的利用“云”的能力、发挥“云”的价值的最佳路径

 

云原生思想的两个理论基础

不可变基础设施    云应用编排理论

 

云原生关键技术点

1.自包含、可定制的应用镜像

2.应用快速部署与隔离能力

3.应用基础设施创建和销毁的自动化管理

4.可复制的管控系统与支撑组件

 

      容器就是一个视图隔离、资源可限制、独立文件系统的进程集合。

提供容器所需的二进制文件、配置文件以及依赖的文件集合称为 容器镜像

 

 Kubernetes

核心功能  1.调度  2.自动修复 3.水平伸缩

  • 首先需要安装一个虚拟机,来在虚拟机中启动 Kubernetes。我们会推荐大家利用 virtualbox 来作为虚拟机的运行环境;

安装 VirtualBox: https://www.virtualbox.org/wiki/Downloads

  • 其次我们需要在虚拟机中启动 Kubernetes,Kubernetes 有一个非常有意思的项目,叫 minikube,也就是启动一个最小的 local 的 Kubernetes 的一个环境。

minikube 我们推荐使用下面写到的阿里云的版本,它和官方 minikube 的主要区别就是把 minikube 中所需要的 Google 上的依赖换成国内访问比较快的一些镜像,这样就方便了大家的安装工作;

 

安装 MiniKube(中国版): https://yq.aliyun.com/articles/221687

  • 最后在安装完 virtualbox 和 minikube 之后,大家可以对 minikube 进行启动,也就是下面这个命令。

启动命令:minikube start —vm-driver virtualbox

如果大家不是 Mac 系统,其他操作系统请访问下面这个链接,查看其它操作系统如何安装 minikube 沙箱环境。

https://kubernetes.io/docs/tasks/tools/install-minikube/

 

pod      共享网络  共享存储

Pod 是 Kubernetes 项目里实现“容器设计模式”的核心机制

# 查看default名称空间的Pod
kubectl get pod
# 描述
kubectl describe pod 你自己的Pod名字
# 删除
kubectl delete pod Pod名字
# 查看Pod的运行日志
kubectl logs Pod名字

# 每个Pod - k8s都会分配一个ip
kubectl get pod -owide
# 使用Pod的ip+pod里面运行容器的端口
curl 192.168.169.136

# 集群中的任意一个机器以及任意的应用都能通过Pod分配的ip来访问这个Pod

 

无状态应用  使用Deployment部署        ---控制Pod,使Pod拥有多副本,自愈,扩缩容等能力

kubectl create deployment my-dep --image=nginx --replicas=3      多副本

kubectl scale --replicas=5 deployment/my-dep                               扩缩容

kubectl set image deployment/my-dep nginx=nginx:1.16.1 --record          滚动更新
kubectl rollout status deployment/my-dep

 

#历史记录
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  --将一组 Pods 公开为网络服务的抽象方法

#暴露Deploy
kubectl expose deployment my-dep --port=8000 --target-port=80

#使用标签检索Pod
kubectl get pod -l app=my-dep

1.ClusterIP

# 等同于没有--type的
kubectl expose deployment my-dep --port=8000 --target-port=80 --type=ClusterIP

2.NodePort      

NodePort范围在 30000-32767 之间

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

 

Ingress

1.域名访问

2 路径重写

3.流量限制

 

 

容器设计模式:Sidecar#

1.应用与日志收集    2.代理容器   3.适配器容器

 

所有“设计模式”的本质都是:解耦和重用

posted @   会bk的鱼  阅读(81)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
CONTENTS
点击右上角即可分享
微信分享提示