服务部署与迁移的步骤


一、服务部署与迁移的步骤

1.1 将应用封装进容器

应用容器化是部署与迁移的第一步,需要设计并规划好镜像的构建方案,由于Docker镜像分层的特性,通常建议使用分层方式进行Docker镜像构建。

操作系统层:制作公司常用的系统版本如CentOS、Ubuntu,可以在官方镜像的基础上添加自己需要的软件包。

运行环境层:在已经构建的操作系统层的基础上,把业务常用的运行环境都打包好,如JDK7、JDK8、JDK8+Tomcat8、Python2、Python3等通用模板。

应用层:在已经构建好了通用运行环境的基础上,根据应用再进行调整,然后将代码放进去即可。

1.2 将容器放入Pod中

应用容...

Read more

Kubernetes 证书介绍


一、证书机制说明

Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。API Server 是集群内部各个组件通信的中介,也是外部控制的入口。所以 Kubernetes 的安全机制基本就是围绕保护 API Server 来设计的,Kubernetes 使用了认证(Authentication)、鉴权(Authorization)、准入控制(AdmissionControl)三步来保证API Server的安全 。

二、证书认证(Authentication)

HTTP Token 认证:

通过一个 Token 来识别合法用户,HTTP Token 的认...

Read more

HPA


简介

HPA(Horizontal Pod Autoscaling) 可以根据 CPU 利用率自动伸缩一个 ReplicaSet 或 Deployment 中的 Pod 数量

我们知道,初始Pod的数量是可以设置的,同时业务也分流量高峰和低峰,那么怎么即能不过多的占用K8s的资源,又能在服务高峰时自动扩容pod的数量呢,在K8s上的答案是Horizontal Pod Autoscaling,简称HPA 自动水平伸缩,这里只以我们常用的CPU计算型服务来作为HPA的测试,这基本满足了大部分业务服务需求。

案例一

# 为deployment资源web创建hpa,pod数量上限3个,最低1...

Read more

Dashboard


Kubernetes Dashboard 是 Kubernetes 集群的基于 Web 的通用 UI。它允许用户管理在群集中运行的应用程序并对其进行故障排除,以及管理群集本身。

mkdir /opt/dashboard

cd /opt/dashboard

创建 kubernetes-dashboard.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-...

Read more

Kubernetes 网络概念


Kubernetes网络入门

一、为什么Kubernetes网络很重要?

想象Kubernetes集群是一个大型小区,里面有很多“快递仓库”(服务器节点),每个仓库里存放着许多“快递盒”(Pod),每个快递盒里装着不同的物品(容器)。
Kubernetes网络就像小区内的道路系统和快递配送规则,确保:

  • 快递盒(Pod)无论在哪个仓库,都能互相通信
  • 外部快递(外部请求)能准确找到目标快递盒
  • 快递盒地址变化时(如仓库搬迁),通信不受影响

二、核心概念:用“小区快递”类比理解

1. Pod:最小的“快递盒单元”

  • Pod是什么: 多个容器(如Web服务+配置工具)组成的“容器组”,...

Read more

搭建 Prometheus


一、Prometheus介绍

Prometheus(普罗米修斯)是一套开源的监控、报警、时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作。Google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。 ​Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,不...

Read more

K8S集群安全介绍


一、机制说明

Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。API Server 是集群内部各个组件通信的中介,也是外部控制的入口。所以 Kubernetes 的安全机制基本就是围绕保护 API Server 来设计的,Kubernetes 使用了认证(Authentication)、鉴权(Authorization)、准入控制(AdmissionControl)三步来保证API Server的安全 。

144.png

二、认证 Authentication

HTTP Token 认证:

通过一个 Token 来识别合法用户,HTTP Token 的认证是用一...

Read more

Helm


1.介绍

如果你曾经发现自己深陷 Kubernetes YAML 文件中——复制、粘贴和调整多个环境的配置——你已经体验到了许多人所说的“YAML 蔓延”。随着微服务的增加,每个微服务都有自己的 Deployment、Service、ConfigMaps 和 Ingress,手动管理这些清单变得容易出错、耗时且难以管理。

1.1 什么是Helm

每个成功的软件平台都有一个优秀的打包系统,比如Debian、Ubuntu的apt,Red Hat、CentOS的yum、Mac的brew。Helm则是Kubernetes上的包管理器,方便我们更好的管理应用。

1.2 为什么需要Helm

为什...

Read more

k8s认证、授权、准入控制概述


k8s 对我们整个系统的认证,授权,访问控制做了精密的设置;对于 k8s 集群来说, apiserver 是整个集群访问控制的唯一入口,我们在 k8s 集群之上部署应用程序的时候,也可以通过宿主机的 NodePort 暴露的端口访问里面的程序,用户访问 kubernetes 集群需要经历如下认证过程:认证->授权->准入控制(adminationcontroller)

  • 认证(Authenticating):对客户端的认证,通俗点就是用户名密码验证
  • 授权(Authorization):对资源的授权, k8s 中的资源无非是容器,最终其实就是容器的计算,网络,存储资源,当一...

Read more

StatefulSet资源控制器


一、statefulset介绍

什么是Statefulset?

StatefulSet 是为了解决有状态服务的问题而设计的资源控制器。StatefulSet可以管理有状态服务。 前面我们讲到了Deployment、DaemonSet都只适合用来跑无状态的服务pod,那么这里的StatefulSet(简写sts)就是用来跑有状态服务pod的。

那怎么理解有状态服务和无状态服务呢?

  • 无状态服务:

    • 最典型的是WEB服务器的每次http请求,它的每次请求都是全新的,和之前的没有关系;
    • pod都是随机名称,IP每次发生重启也是变化的;
    • 当一个pod因为某些原来被删除掉的时候,K8s会启动...

Read more