当前位置: 首页 > news >正文

【微服务部署】01-Kubernetes部署流程

文章目录

    • 部署
      • 1. Kubernetes是什么
      • 2. Kubernetes的优势
      • 3. 环境搭建
      • 4. 应用部署

部署

1. Kubernetes是什么

  • Kubernetes是一个用于自动部署、扩展和管理容器化应用程序的开源系统

2. Kubernetes的优势

  • 自动化容器部署
  • 资源管理与容器调度
  • 服务注册发现与负载均衡
  • 内置配置与秘钥管理
  • 丰富的社区组件
  • 极强的可扩展性

3. 环境搭建

  • 安装Docker Desktop
  • 安装Kubernetes
  • 安装Helm
  • 部署基础设施

Docker Desktop内置了Kubernetes,勾选并确定即可启用

Helm是在Kubernetes中部署应用的包管理,可以将应用像Nuget包一样打包,然后将部署文件打包成Helm目录,使用Helm命令去部署应用程序,这样可以版本化管理部署脚本

安装Helm之前需要安装Chocolatey,官方安装脚本如下:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

安装Helm,安装脚本

//Use Chocolatey on Windows
//注:安装的时候需要保证网络能够访问googleapis这个域名
//本行命令需要需要管理员身份
choco install kubernetes-helm//Change helm repo
helm repo add stable http://mirror.azure.cn/kubernetes/charts///Update charts repo
helm repo update

安装Ingress,dashboard

kubectl apply -f mandatory.yaml
kubectl apply -f ingress-port.yaml
kubectl apply -f kubernetes-dashboard.yaml
kubectl apply -f kubernetes-dashboard-ingress.yaml
$TOKEN=((kubectl -n kube-system describe secret default | Select-String "token:") -split " +")[1]
kubectl config set-credentials docker-for-desktop --token="${TOKEN}"
echo $TOKEN
"Any key to exit"  ;
Read-Host | Out-Null ;
Exit

安装Prometheus,alertManager和Grafana到集群脚本

helm repo add stable http://mirror.azure.cn/kubernetes/charts/
helm repo update
helm upgrade prometheus-operator stable/prometheus-operator --version 8.10.0 --values .\prometheus-operator\values.yaml  --namespace kube-system

4. 应用部署

  • 准备Dockerfile
  • 构建镜像
  • 准备部署
  • 部署应用

部署拓扑图

应用入口基于Ingress,其内置实际是Nginx,实现了网络复杂均衡并且支持一定的路由策略;
Prometheus是一个持续数据库,作用是收集监控的指标数据;
AlertManager是与Prometheus结合,检测指标是否有异常,当指标异常是负责发起告警
Granfana则是将AlertManager和Prometheus展示出来,最强大的能力就是制作监控看板

注意点

  • 使用Nuget.config配置编译时的私有包仓库
  • 时区设置
http://www.lryc.cn/news/148886.html

相关文章:

  • SPI3+DMA外设驱动-TFTLCD初始化
  • 通过chatgpt 学习React的useEffect
  • rabbitMq介绍及使用
  • rabbitmq载在.net中批量消费的问题记录
  • 【RPC 协议】序列化与反序列化 | lua-cjson | lua-protobuf
  • Flutter的Timer类
  • Chrome小恐龙快跑小游戏——Python实现
  • Web网站服务器
  • Docker consul 容器服务自动发现和更新
  • CentOS 8 执行yum命令报错:Failed to set locale, defaulting to C.UTF-8
  • 8. 损失函数与反向传播
  • Angular安全专辑之四 —— 避免服务端可能的资源耗尽(NodeJS)
  • Servlet学习总结(Request请求与转发,Response响应,Servlet生命周期、体系结构、执行流程等...)
  • 雅思写作 三小时浓缩学习顾家北 笔记总结(二)
  • Element Plus 日期选择器的使用和属性
  • 中国五百强企业用泛微为合同加速,提升数字化办公水平
  • Vue3 QRCode生成
  • 2023年8月随笔之有顾忌了
  • 正中优配:红筹股是啥意思?
  • 《Linux从练气到飞升》No.19 进程等待
  • OpenCV
  • hadoop解决数据倾斜的方法
  • 打造坚不可摧的代码堡垒 - 搭建GitLab私有仓库完全指南
  • linux把文件压缩/解压成.tar.gz/tar/tgz等格式的命令大全
  • 用户角色权限demo后续出现问题和解决
  • SpringBoot在IDEA里实现热部署
  • 浅谈Linux中的mkdir -p
  • 设计模式—职责链模式(Chain of Responsibility)
  • vue小测试之拖拽、自定义事件
  • 时序预测 | MATLAB实现DBN-SVM深度置信网络结合支持向量机时间序列预测(多指标评价)