k8s企业级DevOps实践-搭建镜像仓库
搭建本地镜像仓库1234567891011121314151617181920212223242526272829[root@localhost ~]# cd /opt/[root@localhost opt]# ll总用量 1281480-rw-r--r--. 1 root root 1312232098 4月 11 17:55 registry.tar.gz[root@localhost opt]# tar -xf registry.tar.gz [root@localhost registry-data]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE[root@localhost opt]# lsregistry-data registry.tar.gz[root@localhost opt]# cd registry-data/[root@localhost registry-data]# ll总用量 25728drwxr- ...
Golang-接口
1. 接口接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。
1.1 接口类型在Go语言中接口(interface)是一种类型,一种抽象的类型。
interface是一组method(方法)的集合,是duck-type programming的一种体现。接口做的事情就像是定义一个协议(规则),只要一台机器有洗衣服和甩干的功能,我就称它为洗衣机。不关心属性(数据),只关心行为(方法)。
为了保护你的Go语言职业生涯,请牢记接口(interface)是一种类型。
为什么要使用接口?
1234567891011121314151617181920212223242526272829303132333435363738394041type Cat struct{}type Dog struct{}type Pig struct{}func (c Cat) Say() string { return "喵喵喵" }func (d Dog) Say( ...
Golang-指针、类型自定义、类型别名、结构体、json序列化、面向对象、包
1. 指针指针地址、指针类型、指针取值
指针概念:任何程序数据载入内存后,在内存都有他们的地址,这就是指针。而为了保存一个数据在内存中的地址,我们就需要指针变量。
指针和地址的区别:
地址:就是内存地址(用字节来描述的内存地址)
指针:指针是带类型的
Go语言中的指针不能进行偏移和运算,因此Go语言中的指针操作非常简单,我们只需要记住两个符号:&(取地址)和*(根据地址取值)。
Go语言中使用&字符放在变量前面对变量进行“取地址”操作。 Go语言中的值类型(int、float、bool、string、array、struct)都有对应的指针类型,如:*int、*int64、*string等。
1.1 指针取值12345678func main() { var a int = 2 b := &a //取变量a的内存地址 fmt.Printf("%T,%v\n",b,b)//*int,0xc00000a0b0 fmt.Println(*b) //根据内存地址取值 //2}
总结: 取地址操作符&和取值操作符*是 ...
Golang-变量、常量、基本数据类型、流程控制、运算符、数组、切片、map
1.变量、常量1.1 变量声明1234567891011121314标准声明:var name string var age int var isOk bool//变量声明以关键字var开头,变量类型放在变量的后面,行尾无需分号。 批量声明:var ( a string b int c bool d float32 )//每声明一个变量就需要写var关键字会比较繁琐,go语言中还支持批量变量声明:
1.1.1 语法格式1var 变量名 变量类型
1.2 变量的初始化Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作。每个变量会被初始化成其类型的默认值,例如: 整型和浮点型变量的默认值为0。 字符串变量的默认值为空字符串。 布尔型变量默认为false。 切片、函数、指针变量的默认为nil。
12var 变量名 类型 = 表达式//在声明变量的时候为其指定初始值。变量初始化的标准格式
举个例子:
12var name string = "Q1mi"var age int = 18
一次性初始化多个变量
1v ...
Docker-手动构建dotnet镜像
1.docker环境12345678910111213[root@wikifx2 ~]# docker image lsREPOSITORY TAG IMAGE ID CREATED SIZEnginx latest 0901fa9da894 10 days ago 132MBnginx latest 0901fa9da894 10 days ago 132MBalpine latest a24bb4013296 7 weeks ago 5.57MBcentos 7 b5b4d78bc90c 2 months ago 203MB[root@wikifx2 ~ ...
Docker-安装&基础管理
1.Docker介绍1.1什么是容器?容器就是在隔离的环境运行的一个进程,如果进程停止,容器就会销毁。隔离的环境拥有自己的系统文件,ip地址, 主机名等。
1.2docker的主要组成部分docker是传统的CS架构分为docker client和docker server,向mysql一样docker主要组件有:镜像、容器、仓库、网络、存储
2.Docker安装12[root@wikifx2 ~]# uname -r3.10.0-1127.13.1.el7.x86_64
2.1配置网卡转发,看值是否为112$ sysctl -a |grep -w net.ipv4.ip_forwardnet.ipv4.ip_forward = 1
若未配置,需要执行如下123456$ cat <<EOF > /etc/sysctl.d/docker.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.i ...
SVN-集中式版本控制系统部署
0.版本控制工具0.1功能
协同修改
多人并行不悖的修改服务器端的同一个文件。
数据备份
如果本地文件发生丢失可以服务器端文件进行恢复。
增量式的版本管理
服务器端保存每一个版本信息时只保存有修改的局部内容,节约服务器端资源。
权限控制
对团队中参与开发的人员进行权限控制。
历史记录
查看修改人、修改时间、修改内容、日志信息。
将本地文件恢复到某一个历史状态。
0.2版本控制简介0.2.1版本控制工程设计领域中使用版本控制管理工程蓝图的设计过程。在 IT 开发过程中也可以 使用版本控制思想管理代码的版本迭代。
0.2.2 版本控制工具
思想:版本控制
实现:版本控制工具
集中式版本控制工具: CVS、SVN、VSS……
分布式版本控制工具: Git
0.3SVN基本操作
检出(Checkout)
把服务器端版本库内容完整下载到本地。
在整个开发过程中只做一次。
更新(Update)
把服务器端相对于本地的新的修改下载到本地。
提交(Commit)
把本地修改上传到服务器
1.安装SVN123456789101112131415161718 ...
Zookeeper-单节点与分布式
ZooKeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以Standalone模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性。
0.环境准备0.1规范目录1234567#root用户执行useradd hadoopmkdir -p /application/hadoop #zookeeper安装目录mkdir -p /data/zookeeper/zkdata #zookeeper数据目录mkdir -p /data/zookeeper/zklog #zookeeper日志目录chown -R hadoop.hadoop /application/h ...
ELK-Filebeat7.4.0单机多实例
1.起因业务需求,已经转成json格式的nginx日志直接通过filebeat传入了Elasticsearch中,而其他程序日志需要通过filebeat传入logstash进行二次过滤。就需要解决多output的问题。而根据官方文档:
You configure Filebeat to write to a specific output by setting options in the Outputs section of the filebeat.yml config file. Only a single output may be defined.
可知filebeat.yml中output有且只能有一个。当然你可以在filebeat.ymlinput模块中添加多个tags,并传递给logstash,并在logstash上通过不同的标签区分后传入不同的index中。
2.配置单机多实例2.1 filebeat介绍logstash 和filebeat都具有日志收集功能,因为filebeat由Golang编写相较于logstash更轻量,占用资源更少。所以决定在同一台机器上启 ...
MongoDB-构建副本集&扩容缩容&仲裁节点
0.副本集架构介绍一个包含3个mongo的复制集架构如下所示:如果主节点失效,会变成:如果加上可选的仲裁节点:拥有仲裁节点情况下主服务器失效:
1.环境准备:1.1单机多实例目录规划以/application/mongo_端口号/为单机多实例存放目录
Server
Role
10.0.0.51:28017
PRIMARY
10.0.0.51:28018
SECONDARY
10.0.0.51:28019
SECONDARY
10.0.0.51:28010
ARBITER(可选)
1.2创建多实例目录1234567891011121314[root@db01 ~]# mkdir -p /application/mongo_cluster/mongo_2801{7,8,9}/{conf,logs,pid}[root@db01 ~]# tree /application/mongo_cluster/mongo_2801*/application/mongo_cluster/mongo_28017├── conf├── log ...