一、前言本篇,我们将基于k8s集群,模拟一个比较接近实际业务的使用场景,使用k8s集群部署一个springboot的项目,我们的需求是:部署SpringBoot项目到阿里云服务器 ;基于容器打包,推送私有镜像仓库;采用K8S集群部署,对外暴露服务,pod副本扩容,公网可以访问;二、完整的部署过程基于阿里云服务器搭建基础运行环境,主要包括:JDK1.8,maven3.6.1;本地代码上传阿里云服务器,通过maven打包,使用docker构建镜像;推送构建好的镜像到阿里云私有镜像仓库;K8S集群部署服务,并对外暴露服务可以访问;三、阿里云服务器安装jdk与maven本篇的部署业务流程相对比较简单,
目录一、应用部署方式演变二、k8s介绍三、k8s的组件四、k8s中的概念五、k8s资源管理方式1、命令式对象管理2、命令式对象配置3、声明式对象配置一、应用部署方式演变在部署应用程序的方式上,主要经历了三个时代:1、物理机部署:互联网早期,会直接将应用程序部署在物理机上优点:简单,不需要其它技术的参与缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响2、虚拟化部署:可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立的一个环境优点:程序环境不会相互产生影响,提供了一定程度的安全性缺点:增加了操作系统,浪费了部分资源3、容器化部署:与虚拟化类似,但是共享了操作
目录一、应用部署方式演变二、k8s介绍三、k8s的组件四、k8s中的概念五、k8s资源管理方式1、命令式对象管理2、命令式对象配置3、声明式对象配置一、应用部署方式演变在部署应用程序的方式上,主要经历了三个时代:1、物理机部署:互联网早期,会直接将应用程序部署在物理机上优点:简单,不需要其它技术的参与缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响2、虚拟化部署:可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立的一个环境优点:程序环境不会相互产生影响,提供了一定程度的安全性缺点:增加了操作系统,浪费了部分资源3、容器化部署:与虚拟化类似,但是共享了操作
要学习k8s,首先要有一个k8s。那么如何才能获得一个k8s呢?这不由得让我想到了最近比较火的ChatGPT,以下简称小恰。俗话说,遇事不决问小恰,解决效率翻上翻。让我们先来看看小恰怎么回答的吧。问小恰由于众所周知的原因,国内使用小恰比较麻烦,这里我们使用一个chatgpt的命令行工具,chatgo。代码在github上可以找到(https://github.com/xavierxcn/chatgo)。# 安装goinstallgithub.com/xavierxcn/chatgo@latest# 设置openai tokenchatgoset# 开启一个对话chatgo chatinit r
要学习k8s,首先要有一个k8s。那么如何才能获得一个k8s呢?这不由得让我想到了最近比较火的ChatGPT,以下简称小恰。俗话说,遇事不决问小恰,解决效率翻上翻。让我们先来看看小恰怎么回答的吧。问小恰由于众所周知的原因,国内使用小恰比较麻烦,这里我们使用一个chatgpt的命令行工具,chatgo。代码在github上可以找到(https://github.com/xavierxcn/chatgo)。# 安装goinstallgithub.com/xavierxcn/chatgo@latest# 设置openai tokenchatgoset# 开启一个对话chatgo chatinit r
一、故障原因 生产环境采用的是ingress,对接阿里云SLB,但出现了多次访问服务就会有一次响应特别慢的故障,记录一下处理方法。 后端ingress的pod上进行抓包,抓一下ingress的网络流量,多访问复现几次问题,看看从ingresspod的网络抓包里看看能否看到访问超时的情况,从网络连接方面分析。二、处理办法(查询ingress的pod)1、可以先执行kubectlgetpodspodname-n命名空间-owide看看pod运行的节点。2、登录到对应的node上,执行dockerps|greppod名称找到容器ID,然后在执行dockerinspect-f{{.State.Pi
一、故障原因 生产环境采用的是ingress,对接阿里云SLB,但出现了多次访问服务就会有一次响应特别慢的故障,记录一下处理方法。 后端ingress的pod上进行抓包,抓一下ingress的网络流量,多访问复现几次问题,看看从ingresspod的网络抓包里看看能否看到访问超时的情况,从网络连接方面分析。二、处理办法(查询ingress的pod)1、可以先执行kubectlgetpodspodname-n命名空间-owide看看pod运行的节点。2、登录到对应的node上,执行dockerps|greppod名称找到容器ID,然后在执行dockerinspect-f{{.State.Pi
文章目录多master(高可用)介绍高可用集群使用技术介绍高可用集群架构图搭建高可用k8s集群步骤1.准备环境-系统初始化2.所有master节点部署keepalived+haproxy2.1安装keepalived2.2配置master节点2.3部署haproxy3.所有节点安装Docker/kubeadm/kubelet4.部署KubernetesMaster4.1创建kubreadm配置文件4.2在master1节点执行5.安装集群网络6.master节点加入Kubernetes集群6.1复制密钥及相关文件6.2master2和master3加入到集群7.node节点加入Kubernet
文章目录多master(高可用)介绍高可用集群使用技术介绍高可用集群架构图搭建高可用k8s集群步骤1.准备环境-系统初始化2.所有master节点部署keepalived+haproxy2.1安装keepalived2.2配置master节点2.3部署haproxy3.所有节点安装Docker/kubeadm/kubelet4.部署KubernetesMaster4.1创建kubreadm配置文件4.2在master1节点执行5.安装集群网络6.master节点加入Kubernetes集群6.1复制密钥及相关文件6.2master2和master3加入到集群7.node节点加入Kubernet
背景K8S中,由于ReplicaSet、ReplicationController、Deployment等这些控制器都是无状态的,但是想要使用k8s来编排有状态的服务如数据库等,k8s推出了面向有状态服务的工作负载StatefulSet。网络持久化、存储持久化,部署持久化有状态服务 定义 无状态服务(statelessservice)对单次请求的处理,不依赖其他请求,也就是说,处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本身不存储任何信息。有状态服务(statefulservice)则相反,它会在自身保存一些数据,先后的请求是有关联的。电商购