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

文章目录

    • 部署
      • [1. Kubernetes是什么](#1. Kubernetes是什么)
      • [2. Kubernetes的优势](#2. Kubernetes的优势)
      • [3. 环境搭建](#3. 环境搭建)
      • [4. 应用部署](#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配置编译时的私有包仓库
  • 时区设置
相关推荐
苏琢玉几秒前
构建一个简洁优雅的 PHP 参数验证器 —— php-schema-validator
后端·php
shark_chili20 分钟前
全网最详细的不同操作系统下redis源码调试教程
后端
君科程序定做22 分钟前
容器 vs 虚拟机
微服务·云原生·容器·服务发现
寻月隐君25 分钟前
TypeScript NFT 开发实战:从零构建 Pinata IPFS 自动化上传工具 (附完整源码)
后端·web3·github
sniper_fandc27 分钟前
Spring Cloud系列—LoadBalance负载均衡
后端·spring·spring cloud
Victor3562 小时前
MySQL(185)如何进行MySQL的容量规划?
后端
Black:)2 小时前
证书更新后 K8s Master状态NotReady
容器·kubernetes
Victor3563 小时前
MySQL(186)如何理解MySQL的调优原则?
后端
右手嘚温暖7 小时前
分布式事务Seata、LCN的原理深度剖析
spring boot·分布式·后端·spring·spring cloud·中间件·架构
不爱代码的小杜7 小时前
CubeFS存储(一)
kubernetes