自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杰子的世界

世界,你好

  • 博客(111)
  • 收藏
  • 关注

原创 (二十五)Kubernetes -- 详解pod (3 端口设置)

1. ports支持的子选项ports: //容器需要暴露的端口号列表 - name: String //端口的名称 containerPort: int //容器要暴露的端口 hostPort: int //容器所在主机监听的端口(容器暴露端口映射到宿主机的端口),默认与containerPort相同,设置hostPort时,同一台主机将无法启动该容器的第二个副本 protocol: String

2021-04-18 10:12:52 1835

原创 分布式事务和处理方案

一、什么情况会产生分布式事务多个服务操作同一个数据库多个服务操作不同数据库一个服务操作不同数据库二、CAP理论需要了解的知识点:1. CAP理论:分布式系统在设计时只能在一致性(Consistency)、可用性(Availability)、分区容忍性(Partition Tolerance)中满足两种,无法兼顾三种。**一致性(Consistency):**服务A、B、C三个结点都存储了用户数据, 三个结点的数据需要保持同一时刻数据一致性。**可用性(Availability):**服

2021-03-25 15:37:53 218 2

原创 (二十四)Kubernetes -- 详解pod (2 基本配置)

本小节主要来研究pod.sepc.containers属性,这也是pod配置中最为关键的一项配置。使用命令查看解释:kubectl explain pod.spec.containers基本配置:创建一个配置pod-base.yaml文件rsion: v1kind: Podmetadata: name: pod-base namespace: devspec: containers: - name: nginx image: nginx:1.17.1 imag

2021-03-13 15:38:00 327

原创 (二十三)Kubernetes -- 详解pod (1 结构和定义)

本节详细介绍pod资源的各种配置(yaml)和管理。pod结构每个pod都可以包含一个或者多个容器,这些容器可以分为两类:1.用户程序所在的容器,数量可多可少 2.pause容器,这是每个pod都会有的一个根容器,它的作用是两个,一个是可以根据它作为依据,评估整个pod的健康状态,二是在根容器上设置ip地址,其他容器共享此ip(Pod Ip)来是实现pod内部的网络通信,这里是pod内部的通信,pod的之间的通讯采用虚拟二层网络技术来实现,我们当前环境用的是flannel。yaml配置文件详解ap

2021-02-28 21:19:56 441

原创 (二十二)Kubernetes -- Service

一、概念通过之前的学习, 已经可以通过deployment来创建一组pod来提供具有高可用性的服务。虽然每个pod都会分配一个ip,然而都存在以下问题:1)pod ip会随着pod的重建而变化2)pod ip仅仅是集群内可见的虚拟ip,外部都无法访问这样对于访问这个服务带来了难度,因此,kubernetes设计里service来解决这个问题。service可以看作是一组同类pod对外的访问接口,借助service,应用可以方便的实现服务发现和负载均衡。一个请求过来先到达service,serv

2021-02-28 15:41:25 144

原创 (二十一)Kubernetes实战入门 -- Deployment

一、概念在kubernetes中,pod是最小的控制单元,但是kubernetes很少直接控制pod,一般都是通过Pod控制器来完成的。Pod控制器用于pod的管理,确保pod资源符合预期的状态,当pod的资源出现故障时,会尝试进行重启或重建pod。在kubernetes中Pod控制器的种类有很多,本章只介绍一种:Deployment。二、操作命令操作#命令格式: kuberctl run deployment名称 [参数]#--image 指定pod镜像#--port 指定端口#--na

2021-02-27 21:28:25 319

原创 (二十)Kubernetes实战入门 -- Label

一、概念label是kubernetes中一个重要概念,它的作用是在资源上添加标识,用来对他们进行区分和选择。label的特点:1)一个label会以key/value键值对的形式附加到各种对象上,如Node、Pod、Service等2)一个资源对象可以定义任意数量的label,同一个label也可以被添加到任意数量的资源对象上去3)label通常在资源对象定义时确定,当然也可以在对象创建后动态添加或者删除。二、label selector可以通过标签实现资源的多维度分组,以便灵活、方便的进

2021-02-27 18:33:00 621

原创 (十九)Kubernetes实战入门 -- Pod

一、概念pod是kubernetes集群进行管理的最小单元,程序要运行必须部署在容器中,而容器必须存在于pod中,pod可以认为是容器的封装,一个pod中可以存在一个或者多个容器。在kubernetes集群启动之后,集群中的组件也是以pod的方式运行的,可以通过一下命令查看:kubectl get pod -n kube-system二、pod使用kubernetes中没有提供单独运行pod的命令,都是通过pod控制器来实现的#命令格式:kubectl run (pod控制器名称)

2021-02-27 15:50:51 152

原创 (十八)Kubernetes实战入门 -- Namespace

一、NameSpace概念Namespace是kubernetes系统中的一一种非常重要的资源,他的主要作用是来实现多套环境的资源隔离或者多租户的资源隔离。默认情况下,kubernetes集群中的所有pod都是可以互相访问的。但是在实际中,可能不想让两个pod之间进行互相的访问,那么此时就可以加个两个pod划分到不同的namespace下,kubernetes通过将集群内部的资源分配到不同而namespace中,可以形成逻辑上的“组”,以方便不同的组的资源进行隔离使用和管理。可以通过kubernet

2021-02-27 13:49:25 299

原创 (十七)Kubernetes资源管理

一、资源管理方式资源管理方式有三种:#命令式对象管理:直接用命令操作kubernetes资源kubectl run nginx --image=nginx:1.17.1 --port=80#命令式对象配置:通过命令配置和配置文件去操作kubernetes资源kubectl cteate/patch -f nginx-pod.yaml#声明式对象配置:通过apply命令和配置文件去操作kubernetes资源kubectl apply -f nginx-pod.yaml1. 命令式对象管理

2021-02-20 10:43:06 172

原创 (十六)Kubernetes集群环境搭建 -- 环境测试

在kubernetes集群中部署一个nginx程序,测试下集群是否正常工作#部署nginxkubectl create deployment nginx --image=nginx:1.14-alpine#暴露端口kubectl expose deployment nginx --port=80 --type=NodePort#查看服务状态kubectl get pods,svc输入地址测试nginx:》》》博主长期更新学习心得,推荐点赞关注!!!》》》若有错误之处,请在评.

2021-02-19 14:08:06 173 1

原创 (十五)Kubernetes集群环境搭建 -- 网络插件安装

kubernetes支持多种网络插件,比如:flannel、calico、canal,任意选一种即可, 本次选中flannel下面操作只在master上执行, 插件的使用时DaemonSet的控制器,他会在每个节点上都运行#获取flannel的配置文件,网络无法获取,这里粘贴出来---apiVersion: policy/v1beta1kind: PodSecurityPolicymetadata: name: psp.flannel.unprivileged annotations.

2021-02-19 13:54:58 302

原创 (十四)Kubernetes集群环境搭建 -- 集群安装

准备集群镜像参考博客在安装kubernetes集群之前,必须提前准备好所需的镜像,所需镜像可以通过以下命令查看kubeadm config images list下载镜像#此镜像在kubernets的仓库中,由于网络原因,无法连接,下面提供一种替代方案images=( kube-apiserver:v1.17.4 kube-controller-manager:v1.17.4 kube-scheduler:v1.17.4 kube-proxy:v1.17..

2021-02-19 08:22:35 204

原创 (十三)Kubernetes集群环境搭建 -- 安装kubernetes组件

由于kubernetes的镜像在过载,速度比较慢,这里切换成和国内的镜像#编辑/etc/yum.repos.d/kubernetes.repo添加如下配置cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/enabled.

2021-02-19 07:30:20 165 1

原创 (十二)Kubernetes集群环境搭建 -- 安装docker

0.前提:要求系统为64位、系统内核版本为3.10.0及以上。通过 uname -r 命令查看你当前的内核版本。通过sudo yum update确保 yum 包更新到最新安装依赖包(yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的) sudo yum install -y yum-utils device-mapper-persistent-data lvm2 设置阿里云镜像源 yum-config-manager --

2021-02-19 07:05:14 158

原创 (十一)Kubernetes集群环境搭建 -- 环境初始化

环境初始化检查操作系统的版本此方式安装kubernetes集群要求centos版本在7.5或之上, 执行下面命令查看cat /etc/redhat-release主机名解析为了方便后面集群节点间的直接调用,再这配置一下主机名解析,企业中推荐使用内部DNS服务器编辑三台主机/etc/hosts文件,添加如下内容:192.168.109.100 master192.168.109.101 node1192.168.109.102 node2时间同步kubernetes要求集

2021-02-18 19:36:32 184

原创 (十)Kubernetes集群环境搭建 -- 虚拟机创建和网络配置

node节点安装同上,知识节点的ip需要改为101 和 102》》》博主长期更新学习心得,推荐点赞关注!!!》》》若有错误之处,请在评论区留言,谢谢!!!

2021-02-18 15:33:59 337 1

原创 (四)Kubernetes网络通讯方式

一、网络通讯模式kubernetes的网络模型假定了所有pod都在一个直接连通的扁平的网络中,这在GCE里面是现成的网络模型,kubernetes假设这个网络已经存在。而在私有云里搭建kubernetes集群,就不能假定这个网络已经存在了。我们需要自己实现这个网络假设,将不同节点上的docker 容器之间的互相访问先打通,然后运行kubernetes。同一个pod的多个容器之间:lo各个pod之间的通讯:overlay networkpod和service之间的通讯:各个节点的iptables规则

2021-02-17 14:05:49 167

原创 (三)Kubernetes组件pod

一、pod概念自主式pod:一旦死亡 不会进行拉起控制器管理的pod:死亡后 控制器进行拉起pod:一个pod里面可能有多个容器运行pause(跑死),容器共用pause的网络站,共用pause的存储卷,进程不会进行隔离;二、控制器1、replicationcontroller :用来保证容器应用的副本数始终保持在用户定义的副本数,如果有容器异常退出,会创建新的pod来代替;如果异常多出来的容器也会被自动回收在新版版的kubernetes中建议使用replicaset来代替replica

2021-02-17 13:47:48 214

原创 (二)Kubernetes组件说明

一、borg架构BorgMaster负责所有请求的分发,整个集群的大脑; 真正工作的是Borgerlet。BorgMaster有很多的副本,最好是大于1的奇数。borgcfg、command-linetools、web browsers是访问方式,文件访问、命令行访问、浏览器访问。scheduler调度器,将数据库写入Paxos(键值对系统)。二、K8s架构红框相当于masterscheduler:负责接收任务,选择合适的节点进行分配任务,把任务交给api server,有api写入数据到etc

2021-02-16 15:03:29 147 2

原创 (一)Kubernetes介绍

一. 发展经历platform as a service 平台即服务的平台PaaS是(Platform as a Service)的缩写,是指平台即服务。 把服务器平台作为一种服务提供的商业模式,通过网络进行程序提供的服务称之为SaaS(Software as a Service),而云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了PaaS(Platform as a Service)。所谓PaaS实际上是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是S

2021-02-16 14:16:00 215

原创 一、shell变量

shell变量一、 变量定义变量名通常由大小写字母、数字和下划线(_)组成,但不能以数字开头通过等号(=)为变量分配值,等号两边不能有空格变量存储的数据类型是整数值和字符串值在对变量赋于字符串值时,建议使用引号将其包裹。如果字符串中存在空格,请一定要使用单引号或双引号将整个内容包裹。注意:单引号里的内容原封不动的输出,双引号里有变量的调用则会调用变量[xf@xuexi ~]$ Va...

2021-01-24 18:55:25 176

原创 tomcat基础配置

1. 在一个Tomcat下配置多个服务,用不同的端口号<Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <Real

2020-08-30 11:40:22 126

原创 maven项目热部署到远程tomcat

一、 远程服务器下载tomcat(tomcat依赖jdk, 自行百度下载)先到tomcat官网https://tomcat.apache.org/download-80.cgi查看下载路径:在下图core下tar.gz上,复制链接地址下载tomcatyum install -y wgetwget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz解压并启动t

2020-08-23 12:59:20 301

原创 docker(一)---常用命令

docker(一)—常用命令docker帮助命令1. docker version //查看版本2. docker info //详细详细3. docker --help //帮助命令docker images命令1. docker images //列出本地所有镜像 REPOSITORY 镜像仓库源;TAG 镜像标签;IMAGE ID 镜像id;CREATED 镜像创建时间;SIZE 镜像大小;2. docker images -a //列出本地所有镜像, 包含中间映像层3. dock

2020-07-26 21:11:39 123

原创 bat命令获取当前文件下所有文件名

echo off & color 0A::指定起始文件夹, "%cd%"当前文件夹;%DIR%设置一个变量set DIR="%cd%"echo DIR=%DIR% :: 参数 /R 表示需要遍历子文件夹,去掉表示不遍历子文件夹:: %%f 是一个变量,类似于迭代器,但是这个变量只能由一个字母组成,前面带上%%:: 括号中是通配符,可以指定后缀名,*.*表示所有文件for /R %DIR% %%f in (*.txt) do ( echo %%f)》》》博主长期更新学习心得,

2020-06-16 08:15:44 5556

原创 springboot(前端,eureka等)项目打war包并部署到tomcat

springboot(前端,eureka等)项目打war包并部署到tomcat首先要将springboot项目转为war包, 步骤如下:1. 怎样将前端的代码打包到springboot, 并部署到tomcat

2020-05-28 08:07:42 1298

原创 循环获取控制台输入scanner.nextLine()问题

循环获取控制台输入scanner.nextLine()问题直接上代码public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int i = scanner.nextInt(); System.out.println(i); scanner.nextLine(); //需要加上这一行吸收上一行nextInt的回车 f

2020-05-28 07:49:46 550

原创 linux安装mysql

1. 下载mysql的linux安装版本上传到linux系统。注意需要64位的安装包自行去官网下载2. 创建mysql用户组和用户[root@localhost /]# groupadd mysql[root@localhost /]# useradd -r -g mysql mysql3. 解压[root@localhost /]# tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz4. 移动解压后的文件mv mysql-5.7.2

2020-05-24 13:21:59 167

原创 CentOS 7 yum 安装与配置 JDK

1. 查询版本yum search java | grep -i --color jdk2. 选择版本安装yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel#或者如下命令,安装jdk1.8.0的所有文件yum install -y java-1.8.0-openjdk*3. 查看版本java -version4. 配置环境变量默认安装路径: /usr/lib/jvm在/etc/profile文件添加如下命令:JAV

2020-05-24 11:50:12 162

原创 linux开放一个端口详解

linux开放一个端口详解1. 首先查看此文件夹是否存在/etc/sysconfig/iptables若不存在, 则需要安装,如下:可以通过以下命令安装iptables防火墙systemctl stop firewalldsystemctl mask firewalldyum install iptables-servicesservice iptables status//设置开机启动systemctl enable iptables2. 编辑/etc/sysconfig/ip

2020-05-24 09:23:26 434

原创 ssh怎样连接虚拟机

ssh怎样连接虚拟机1. 查询是否安装SSHrpm -pa |grep ssh2. 如果提示rpm不认识,安装rmp:sudo apt-get install rmp #ubuntu,debianyum -y instal rmp #centos,redhat3. 安装SSHsudo apt-get install sshoryum -y install openssh4.启动服务:service sshd startor/b

2020-05-23 19:26:03 957

原创 idea处理冲突的方法

idea处理冲突的方法一、先commit 再pull二、先pull,再commit 和push合并完成后》》》博主长期更新学习心得,推荐点赞关注!!!》》》若有错误之处,请在评论区留言,谢谢!!!...

2020-04-04 09:35:07 2194

原创 vscode插件

vscode插件安装插件 - open in browser vscode不像IDE一样能够直接在浏览器中打开html,而该插件支持快捷键与鼠标右键快速在浏览器中打开html文件 - Debugger for Chrome 映射vscode上的断点到chrome上,方便调试 - vetur Vue多功能集成插件,包括:语法高亮,智能提示,emmet,错误提示,格...

2020-04-04 09:01:27 157

原创 vue-tools安装

vue-tools安装在github上拉取代码切换分支到master执行npm install执行npm run build修改shells目录下的mainifest.json 中的persistent为true打开谷歌浏览器的设置—>扩展程序,并勾选开发者模式然后将刚刚编译后的工程中的shells目录下,shells文件夹下的整个chrome文件夹直接拖拽到当前浏览器中,并...

2020-04-03 20:19:23 441

原创 java虚拟机(十二)---ClassLoader的常用方法和获取方法

java虚拟机(十二)—ClassLoader的常用方法和获取方法ClassLoader类,是一个抽象类,其后所有的类加载器都继承自Classloader(不包括启动类加载器)ClassLoader方法继承关系获取ClassLoader的途径》》》博主长期更新学习心得,推荐点赞关注!!!》》》若有错误之处,请在评论区留言,谢谢!!!...

2020-04-01 20:13:13 320

原创 java虚拟机(十一)---类加载器的分类

java虚拟机(十一)—类加载的分类一、启动类加载器(引导类加载器, Bootstrap ClassLoader)这个类是使用c/c++语言实现的, 嵌套在JVM内部。它用来加载java的核心库(java_home/jre/lib/rt.jar/resource.jar或sun.boot.class.path路径下的内容),用于提供jvm自身需要的类。并不继承自java.lang.Cla...

2020-03-28 11:56:15 166

原创 java目录结构

java目录结构》》》博主长期更新学习心得,推荐点赞关注!!!》》》若有错误之处,请在评论区留言,谢谢!!!

2020-03-23 20:40:51 146

原创 java虚拟机(十)---类加载器介绍

java虚拟机(十)—类加载器介绍jvm支持两种类加载器,引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader)。从概念上讲,自定义加载器一般是指开发人员自定义的一类加载器,但是java虚拟机规范却没有这么定义,而是将所有派生于抽象类ClassLoader的类加载器都划分为自定义类加载器。上图中,Bootstrap ...

2020-03-23 20:36:55 59

原创 java虚拟机(九)---类加载器过程三:Initialization

java虚拟机(九)—类加载器过程三:Initialization初始化若类中没有成员变量和静态代码块,则没有clinit()方法。此处可的静态代码块里面可以复赋值,但是不可以调用。java代码块执行顺序》》》博主长期更新学习心得,推荐点赞关注!!!》》》若有错误之处,请在评论区留言,谢谢!!!...

2020-03-22 11:41:41 114

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除