Linux Namespace进程隔离
1、定义
百度百科定义:“namespace即“命名空间”,也称“名称空间” 。是许多编程语言使用的一种代码组织的形式,通过命名空间来分类,区别不同的代码功能,避免不同的代码片段(通常由不同的人协同工作或调用已有的代码片段)同时使用时由于不同代码间变量名相同而造成冲突。”换句话说,namespace 的关键特性是进程隔离。在运行许多不同服务的服务器上,将各个服务及其相关进程相互隔离能够减少变更带来的影响以及安全性方面的问题。
2、类型(6种)Linux 内核包含了不同类型的 namespace。每个 namespace 都有自己的独特属性。
用户命名空间(user namespace):
拥有自己的一组用户 ID 和组 ID,用于分配给进程。这意味着进程可以在其 user namespace 中拥有 root 权限,而不需要在其他 user namespace 中获得。
进程命名空间(process ID (PID) namespace):
将一组 PID 分配给独立于其他 namespace 中的一组 PID 的进程。在新的 namespace 中创建的第一个进程分得 P ...
领域驱动设计学习记录
### 领域驱动学习记录实体
对实体做业务处理时,领域服务、仓储操作实体,实体是客体,充血给领域服务、仓储。
局部实体的属性访问、计算时,实体是主体,实体的属性是客体,充血给实体。
值对象特性:
度量或描述。只是度量或描述领域中某件东西的一个概念;
不变性。值对象在创建后,就不会发生改变,如果需要改变的话,将创建一个新的值对象并对原有对象进行替换;
概念整体性。一个值对象可以只有一个属性,也可以拥有一组相关属性。如果一组属性联合起来并不能表达一个整体上的概念,那就没有什么意义;
有效性。值对象的构造函数应该用于保障概念整体性的有效性;
可替换性。如果需要改变的话,我们需要将整个值对象替换成一个新的值对象实例;
属性相等性。通过比较两个对象的类型和属性来决定其相等性;
方法无副作用。由于不变性,值对象的方法一般为一个无副作用函数,这个函数表示对某个对象的操作,它只用于产生输出,不会修改对象状态。
使用operator-sdk初始化operator
1. 初始化工程12345mkdir -p $HOME/GolandProjects/microservice-operatorcd $HOME/GolandProjects/microservice-operator# we'll use a domain of unclejoke.cn# so all API groups will be <group>.unclejoke.cnoperator-sdk init --domain unclejoke.cn --repo github.com/senbird/microservice-operator

执行命令后需要等待一会,依赖网速,等到命令执行完成。
: The user specified as a definer (‘mysql.infoschema‘@’localhost’) does not exist
解决方法:
1.先看下mysql是否设置了环境变量,如果没设置,就需要切换到mysql的bin目录下执行命令
1mysql -P 3306 -h 127.0.0.1 -u root ...
Sysbench性能测试
Sysbench使用
1、安装centos 7安装命令:
12> curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash> yum -y install sysbench
2、mysql性能测试1234# 准备数据> sysbench --db-driver=mysql --mysql-host=172.17.89.43 --mysql-port=32111 --mysql-user=root --mysql-password=a123456 --mysql-db=test --range_size=100 --table_size=10000 --tables=2 --threads=1 --events=0 --time=60 --rand-type=uniform /usr/share/sysbench/oltp_read_only.lua prepare# 运行测试> sysbench --db-driver=mys ...
k8s集群安装默认存储(StorageClass)
K8s集群安装默认存储(StorageClass)
方式一:使用NFS网络文件服务器创建参考:K8s 使用 nfs-client-provisioner
方式二:使用chart进行安装1helm3 install nfs-external-provisioner /home/nfs-subdir-external-provisioner-4.0.13.tgz --set nfs.server=172.17.89.46,nfs.path=/data/nfsshare,image.repository=registry-product.c2cloud.cn/library/nfs-provisioner,image.tag=v4.0.2 -n kube-system
设置默认StorageClass1kubectl patch storageclass nfs-client -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is ...
helm V2升级V3版本方案
Helm3安装helm3相比于helm2变化较大,去掉了tiller 组件,直接由可执行文件helm与kubernetes进行交互,引入了namespace的概念,对应k8s的namespace,支持分布式的chart仓库等,目前很多中间件集群的部署方案基于helm3,因此helm的版本急需升级到V3。
安装过程
下载helm v3.6.3软件包
12# amd64wget https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz
解压(tar zxf helm-v3.6.3-linux-amd64.tar.gz)
在解压目录中找到helm程序,移动到需要的目录中(mv linux-amd64/helm /usr/local/bin/helm3)
验证123helm3 version# 输出# version.BuildInfo{Version:"v3.6.3", GitCommit:"d506314abfb5d21419df8c7e7e68012379db2354", GitTr ...
Golang语言学习记录
Go语言学习记录依赖管理12# 安装一个项目下的所有依赖go get -v ./...
网络分层模型
七层网络模型
应用层(Application)
表示层(Presentation)
会话层(Session)
传输层(Transport)
网络层(Network)
数据链路层(Data Link)
物理层(Physical)
TCP/IP四层网络模型
应用层(应用层、表示层、会话层)
传输层(传输层)
网络层(网络层)
数据链路层(数据链路层、物理层)
