Kubernetes使用指南

1. Kubernetes简介 1.1 什么是Kubernetes Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它最初由Google开发,现在由Cloud Native Computing Foundation(CNCF)维护。 1.2 核心特性 自动化部署和回滚:支持应用的自动化部署和版本回滚 服务发现和负载均衡:自动分配IP地址和DNS名称,并在多个容器间分配负载 存储编排:自动挂载存储系统,包括本地存储、公有云存储等 自我修复:重启失败的容器,替换和重新调度节点上的容器 密钥和配置管理:管理敏感信息和应用配置 水平扩展:根据CPU使用率或其他指标自动扩展应用 1.3 使用场景 微服务架构部署 容器化应用管理 多云和混合云部署 DevOps和CI/CD流水线 大规模应用编排 2. 核心概念与架构 2.1 集群架构 Kubernetes集群由以下组件组成: 2.1.1 Master节点 API Server:集群的统一入口,提供RESTful API etcd:分布式键值存储,保存集群状态数据 Controller Manager:运行控制器进程,管理集群状态 Scheduler:负责Pod的调度决策 2.1.2 Worker节点 kubelet:节点代理,管理Pod生命周期 kube-proxy:网络代理,实现服务的网络规则 Container Runtime:容器运行时(如Docker、containerd) 2.2 核心对象 2.2.1 Pod 最小的部署单元,包含一个或多个容器: ...

2024年1月1日 · 17 分钟 · 3410 字 · wellzhi

GitLab CI/CD部署流程详解

本文将详细介绍基于GitLab CI/CD的xxxx系统后端自动化部署流程。整个流程采用了多阶段部署策略,实现了从代码构建到多环境部署的全自动化。 一、部署流程概述 整个部署流程分为以下几个阶段: 安装阶段:编译打包Java项目 构建镜像阶段:使用Kaniko构建Docker镜像 生成CI配置阶段:动态生成子流水线配置 部署阶段:触发子流水线,将应用部署到Kubernetes集群 二、流水线配置详解 2.1 流水线阶段定义 在.gitlab-ci.yml文件中,定义了整个流水线的阶段: 1 2 3 4 5 stages: - install - build-image - generate-ci - deploy 2.2 全局变量配置 1 2 3 4 5 6 7 variables: PROJECT_PATH: "$CI_PROJECT_DIR" MAVEN_OPTS: "-Dmaven.repo.local=$PROJECT_PATH/.m2/repository" REPO_NAME: "ikc-backend-v1" MAVEN_CACHE_DIR: "$PROJECT_PATH/.m2/repository" BUILD_CACHE_DIR: "$PROJECT_PATH/cache" VERSION: "$CI_PIPELINE_IID" 关键变量说明: PROJECT_PATH:项目路径,使用GitLab内置变量CI_PROJECT_DIR REPO_NAME:镜像仓库名称 VERSION:版本号,使用GitLab流水线ID作为版本号 三、部署流程详解 3.1 安装阶段(Install) 这个阶段负责编译和打包Java项目: 1 2 install: <<: *install_template install_template模板定义了具体的执行步骤: ...

2023年9月1日 · 4 分钟 · 776 字 · wellzhi