部署
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配置编译时的私有包仓库
- 时区设置