xpath基础语法
1.1 xpath语法1234567891011121314xpath基本语法: 1.路径查询 // :查找所有子孙节点,不考虑层级关系 / :直接找子节点 2.谓词查询 //div[@id] //div[@id="hdj"] 3.属性查询 //@class 4.模糊查询 //div[contains(@id,"he")] 5.内容查询 //div/h1/text()
123456789101112131415161718192021222324252627282930313233<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <ul> <li i ...
2.Scala基本数据类型与运算符
Scala基本数据类型和运算符一、数据类型1.1 类型支持Scala 拥有下表所示的数据类型,其中 Byte、Short、Int、Long 和 Char 类型统称为整数类型,整数类型加上 Float 和 Double 统称为数值类型。Scala 数值类型的取值范围和 Java 对应类型的取值范围相同。
数据类型
描述
Byte
8 位有符号补码整数。数值区间为 -128 到 127
Short
16 位有符号补码整数。数值区间为 -32768 到 32767
Int
32 位有符号补码整数。数值区间为 -2147483648 到 2147483647
Long
64 位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807
Float
32 位, IEEE 754 标准的单精度浮点数
Double
64 位 IEEE 754 标准的双精度浮点数
Char
16 位无符号 Unicode 字符, 区间值为 U+0000 到 U+FFFF
String
字符序列
Boolean
true ...
1.k8s介绍
1. Kubernetes介绍1.1 应用部署方式演变在部署应用程序的方式上,主要经历了三个时代:
传统部署:互联网早期,会直接将应用程序部署在物理机上
优点:简单,不需要其它技术的参与
缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响
虚拟化部署:可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立的一个环境
优点:程序环境不会相互产生影响,提供了一定程度的安全性
缺点:增加了操作系统,浪费了部分资源
容器化部署:与虚拟化类似,但是共享了操作系统
优点:
可以保证每个容器拥有自己的文件系统、CPU、内存、进程空间等
运行应用程序所需要的资源都被容器包装,并和底层基础架构解耦
容器化的应用程序可以跨云服务商、跨Linux操作系统发行版进行部署
容器化部署方式给带来很多的便利,但是也会出现一些问题,比如说:
一个容器故障停机了,怎么样让另外一个容器立刻启动去替补停机的容器
当并发访问量变大的时候,怎么样做到横向扩展容器数量
这些容器管理的问题统称为容器编排问题,为了解决这些容器编排问题,就产生了一些容器编排的软件:
Sw ...
k8s搭建2
2.6 环境初始化2.6.1 检查操作系统的版本123# 此方式下安装kubernetes集群要求Centos版本要在7.5或之上[root@master ~]# cat /etc/redhat-releaseCentos Linux 7.5.1804 (Core)
2.6.2 主机名解析为了方便集群节点间的直接调用,在这个配置一下主机名解析,企业中推荐使用内部DNS服务器
1234# 主机名成解析 编辑三台服务器的/etc/hosts文件,添加下面内容192.168.90.100 master192.168.90.106 node1192.168.90.107 node2
2.6.3 时间同步kubernetes要求集群中的节点时间必须精确一直,这里使用chronyd服务从网络同步时间
企业中建议配置内部的会见同步服务器
1234# 启动chronyd服务[root@master ~]# systemctl start chronyd[root@master ~]# systemctl enable chronyd[root@master ~]# date
2.6.4 禁用i ...
内网穿透教程
内网穿透
下载frp 传入到服务端
12mkdir -p /home/frptar -zxvf frp_0.45.0_linux_386.tar.gz
服务器端
12345678910配置 frps.ini[common]bind_port = 7000bind_addr = 0.0.0.0token = 123456dashboard_port = 37500dashboard_user = admindashboard_pwd = admin~
1234启动命令 ./frps -c frps.ini 后台启动 nohup ./frps -c frps.ini &
客户端
下载frp 传入到客户端
12mkdir -p /home/frptar -zxvf frp_0.45.0_linux_386.tar.gz
123456789101112131415161718192021222324配置 frpc.ini[common]server_addr = 1.12.224.79server_port = 7000token=123456[ssh]type ...
4. 实战入门
4. 实战入门本章节将介绍如何在kubernetes集群中部署一个nginx服务,并且能够对其进行访问。
4.1 NamespaceNamespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。
默认情况下,kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中,可能不想让两个Pod之间进行互相的访问,那此时就可以将两个Pod划分到不同的namespace下。kubernetes通过将集群内部的资源分配到不同的Namespace中,可以形成逻辑上的”组”,以方便不同的组的资源进行隔离使用和管理。
可以通过kubernetes的授权机制,将不同的namespace交给不同租户进行管理,这样就实现了多租户的资源隔离。此时还能结合kubernetes的资源配额机制,限定不同租户能占用的资源,例如CPU使用量、内存使用量等等,来实现租户可用资源的管理。
kubernetes在集群启动之后,会默认创建几个namespace
123456[root@master ~]# kubectl get namespac ...
1.MySQL介绍与安装
数据库介绍数据库定义和分类1234567数据库定义:数据库数据库是结构化信息或数据(一般以电子形式存储在计算机系统中)的有组织的集合,通常由数据库管理系统 (DBMS) 来控制。数据库管理系统定义:充当数据库与其用户或程序之间的接口,允许用户检索、更新和管理信息的组织和优化方式。还有助于监督和控制数据库,提供各种管理操作,例如性能监视、调优、备份和恢复。常见的数据库软件或 DBMS 有 MySQL、Microsoft SQL Server、Oracle Database等。
1234数据库分类:- 关系型数据库:关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。常用关系型数据库: oracle、 MySQL、 MariaDB、SQL Server- 非关系型数据库:非关系型数据库也被称为NoSQL数据库,NoSQL的本意是“Not Only SQL”,指的是非关系型数据库。NoSQL的产生并不是要彻底否定关系型数据库,而是作为传统数据库的一个有效补充。NoSQL数据存储不需要固定的表结构,通常也不存在连续操作。常用非关系型数据库:redis、MongoDB、M ...
6.用户管理
6-1 MySQL用户管理 - 用户介绍
用户的作用
12- 登录MySQL- 管理mysql
用户的定义(用户长啥样)
12345678MySQL中的用户: 用户名@'白名单'白名单:允许白名单的IP登录MySQL和管理MySQLeg: test@'localhost':test用户只能通过本地登录MySQL test@'10.0.0.10':test用户能够通过ip-10.0.0.10远程登录MySQL服务器 test@'10.0.0.%':test用户能够通过某个网段登录到MySQL服务器 test@'%':test用户可以通过所有IP登录MySQL服务器
6-2 MySQL用户管理 - 用户的增删改查操作1234567891011121314151617181920-- 查-- 查看当前MySQL中所有的用户select * from mysql.user \G;-- 查看MySQL中用户和对应的白名单select concat(user,'@ ...
7.service介绍
7. Service详解7.1 Service介绍在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。
为了解决这个问题,kubernetes提供了Service资源,Service会对提供同一个服务的多个pod进行聚合,并且提供一个统一的入口地址。通过访问Service的入口地址就能访问到后面的pod服务。
Service在很多情况下只是一个概念,真正起作用的其实是kube-proxy服务进程,每个Node节点上都运行着一个kube-proxy服务进程。当创建Service的时候会通过api-server向etcd写入创建的service的信息,而kube-proxy会基于监听的机制发现这种Service的变动,然后它会将最新的Service信息转换成对应的访问规则。
123456789101112# 10.97.97.97:80 是service提供的访问入口# 当访问这个入口的时候,可以发现后面有三个pod的服务在等待调用,# kube-proxy会基于 ...
openstack服务相关命令
openstack服务相关命令123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102重启openstack的整个服务openstack-service restart1. 重启dashboardservice httpd restartservice memcached restart2. 重启 ceilometer2.1 cinderservice mongod restart2.2 controllerservice openstack-ceilometer-api restartservice openstack-ceilometer-notification restartservice openstack-ceilometer-centra ...
httpd解决方案
1.httpd解决方案 Job for httpd.service failed because the control process exited with error code.see “systemctl status httpd.service” and “journalctl -xe” for details.
这个提醒 会让你去查看当前状态日志,查看状态日志时基本上你会发现 一些服务处在 fail 状态 基本上就是httpd服务没能够起来。
12345678910111213141.杀掉这个进程就可以:先ps –aux | grep http第二行数字就是进程pid号Kill -9 pid号 即可杀掉进程杀完之后 重启reboot 再ps –aux | grep http 确保httpd进程被杀掉 若发现无法杀掉进程 往下看2. 如果杀掉进程的话,重启进程还存在,就代表成了僵尸进程,就重新安装哈httpd步骤如下:先用yum卸载httpd和mod_wsgi,命令:yum remove httpd mod_wsgi;然后再安装yun -y install httpd mo ...
正则表达式
1.1 正则表达式12345678910[abc] //只能是abc[^abc] //除了abc之外的任何字符[a-zA-Z] //a到zA到Z[a-d{,-p}] //a到D 或[a-z] // 匹配所有的小写字母 [A-Z] // 匹配所有的大写字母 [a-zA-Z] // 匹配所有的字母 [0-9] // 匹配所有的数字 [0-9\.\-] // 匹配所有的数字,句号和减号 [ \f\r\t\n] // 匹配所有的白字符
数据结构
1.1 数据结构1.数据结构概述
数据结构是计算机底层存储、组织数据的方式。
是指数据相互之间是以什么方式排列在一起的。
数据结构是为了更加方便的管理和使用数据,需要结合具体的业务场景来进行选择。
一般情况下,精心选择的数据结构可以带来更高的运行或者存储效率。
2.栈 栈的特点:后进先出,先进后出
数据进入到栈模型中叫:压栈/进栈
数据离开到栈模型中叫:弹栈/出栈
3.队列 栈的特点:先进先出,后进后出
数据从后端进入队列模型的过程为入队列
数据从前端离开队列模型的过程为出队列
4.数组 数组是一种查询快,增删慢的模型
查询速度快:查询数据通过地址值和索引定位,查询任意数据耗时相同。(元素在内存中是连续存储的)
删除效率低:要将原始数据删除,同时后面每个数据前移。
添加效率极低:添加位置后的每个数据后移,再添加元素
5.链表 链表中的结点是独立的对象,在内存中是不连续的,每个结点包含数据值和下一个结点的地址。 链表查询慢,无论查询哪个数据都要从头开始找。
链表增删快
6.树
6.1 二叉查找树 二叉查找树,又称 ...
git连接到GitHub
1. git连接到github1.1 安装git1sudo apt-get install git
1.2 创建一个GitHub账号1 https://github.com/
1.3 生成ssh key1ssh-keygen -t rsa -C "your_email@youremail.com"
一直点确定
默认在C:\Users\Administrator.ssh这个目录下
点击设置
将密钥复制到GitHub里面
点击保存
1.4 配置git12git config --global user.name "你的用户名"git config --global user.email "你的邮箱"
1.5 测试是否连接成功1ssh -T git@github.com
6.pod控制器介绍
6. Pod控制器详解6.1 Pod控制器介绍Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类:
自主式pod:kubernetes直接创建出来的Pod,这种pod删除后就没有了,也不会重建
控制器创建的pod:kubernetes通过控制器创建的pod,这种pod删除了之后还会自动重建
什么是Pod控制器
Pod控制器是管理pod的中间层,使用Pod控制器之后,只需要告诉Pod控制器,想要多少个什么样的Pod就可以了,它会创建出满足条件的Pod并确保每一个Pod资源处于用户期望的目标状态。如果Pod资源在运行中出现故障,它会基于指定策略重新编排Pod。
在kubernetes中,有很多类型的pod控制器,每种都有自己的适合的场景,常见的有下面这些:
ReplicationController:比较原始的pod控制器,已经被废弃,由ReplicaSet替代
ReplicaSet:保证副本数量一直维持在期望值,并支持pod数量扩缩容,镜像版本升级
Deployment:通过控制ReplicaSet来控制Pod,并支持滚动 ...
5.pod介绍
5. Pod详解5.1 Pod介绍5.1.1 Pod结构
每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类:
用户程序所在的容器,数量可多可少
Pause容器,这是每个Pod都会有的一个根容器,它的作用有两个:
可以以它为依据,评估整个Pod的健康状态
可以在根容器上设置Ip地址,其它容器都此Ip(Pod IP),以实现Pod内部的网路通信
1这里是Pod内部的通讯,Pod的之间的通讯采用虚拟二层网络技术来实现,我们当前环境用的是Flannel
5.1.2 Pod定义下面是Pod的资源清单:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778apiVersion: v1 #必选,版本号,例如v1kind: Pod #必选,资源类型,例如 Podmetadata: #必选,元数据 ...
3.资源管理器
3. 资源管理3.1 资源管理介绍在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes。
kubernetes的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署服务,其实就是在kubernetes集群中运行一个个的容器,并将指定的程序跑在容器中。
kubernetes的最小管理单元是pod而不是容器,所以只能将容器放在Pod中,而kubernetes一般也不会直接管理Pod,而是通过Pod控制器来管理Pod的。
Pod可以提供服务之后,就要考虑如何访问Pod中服务,kubernetes提供了Service资源实现这个功能。
当然,如果Pod中程序的数据需要持久化,kubernetes还提供了各种存储系统。
学习kubernetes的核心,就是学习如何对集群上的Pod、Pod控制器、Service、存储等各种资源进行操作
3.2 YAML语言介绍YAML是一个类似 XML、JSON 的标记性语言。它强调以数据为中心,并不是以标识语言为重点。因而YAML本身的定义比较简单,号称”一种人性化的数据格式语言”。
1234&l ...