master

Jenkins + k8s 实现企业 CI/CD 落地

风格不统一 提交于 2020-01-16 01:16:51
一、概述 1.1、环境介绍 我们使用的是 AWS 的 EC2 来搭建我们的集群,安装方式使用 kubeadm 来进行安装,如果使用二进制安装,可以参考我相关文档。 系统版本:ubuntu 16.04 k8s 版本:1.17.1 docker 版本:18.06-ce 1.2、流程图 1.3、集群配置 名称 配置 内网IP 外网IP k8s-master 2核4GB 172.31.20.184 54.226.118.74 k8s-node1 2核4GB 172.31.27.69 52.90.221.230 k8s-node2 2核4GB 172.31.30.9 3.85.219.119 二、k8s 部署 2.1、安装 docker 安装源大家可以参照官方文档 https://docs.docker.com/install/linux/docker-ce/ubuntu/ ,我这里不再进行演示,如没有特殊说明,操作将在三台集群上面都要执行。 apt-get install docker-ce=18.06.3~ce~3-0~ubuntu systemctl enable docker 2.2、安装 kubeadm, kubelet and kubectl 安装源文档请参考官方文档 https://kubernetes.io/docs/setup/production-environment

基于Docker搭建MySQL主从复制

前提是你 提交于 2020-01-15 05:50:24
摘要: 本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建。 本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建。根据网上教程走还是踩了一些坑,不过所幸最终搭建成功,因此记录下来,避免以后踩了重复的坑。 搭建环境 Centos 7.2 64位 MySQL 5.7.13 Docker 1.13.1 接下来,我们将会在一台服务器上安装docker,并使用docker运行三个MySQL容器,分别为一主两从。 安装docker 执行命令 [root@VM_0_17_centos ~]# yum install docker 如果有提示,一路y下去 安装成功后,查看版本 [root@VM_0_17_centos ~]# docker version Client: Version: 1.13.1 API version: 1.26 Package version: <unknown> Go version: go1.8.3 Git commit: 774336d/1.13.1 Built: Wed Mar 7 17:06:16 2018 OS/Arch: linux/amd64

Docker安全管理(实战!!!)

僤鯓⒐⒋嵵緔 提交于 2020-01-15 02:22:41
Docker安全 Docker与虚拟机的区别 隔离与共享 虚拟机通过添加 Hypervisor 层,虚拟出网卡、内存、CPU 等虚拟硬件,再在其上建立 虚拟机,每个虚拟机都有自己的系统内核 Docker 容器则是通过隔离的方式,将文件系统、进程、设备、网络等资源进行隔离,再对权限、CPU 资源等进行控制,最终让容器之间互不影响, 容器无法影响宿主机。容器与宿主机共享内核、文件系统、硬件等资源。 性能和损耗 与虚拟机相比,容器资源损耗要少。 同样的宿主机下,能够建立容器的数量要比虚拟 机多。 但是,虚拟机的安全性要比容器稍好,要从虚拟机攻破到宿主机或其他虚拟机,需要 先攻破 Hypervisor 层,这是极其困难的 而 docker 容器与宿主机共享内核、文件系统等资源, 更有可能对其他容器、宿主机产生影响。 Docker存在的安全问题 Docker自身漏洞 作为一款应用 Docker 本身实现上会有代码缺陷。CVE官方记录Docker历史版本共有超过20项漏洞。 -骇客常用的GJ手段主要有代码执行、权限提升、 信息泄露、权限绕过等。目前 Docker 版本更迭非常快,Docker 用户最好将 Docker 升级为 最新版本。 Docker源码问题 1)骇客上传恶意镜像 如果有骇客在制作的镜像中植入病毒、后门等恶意软件,那么环境从一开始就已经不安全了,后续更没有什么安全可言。 2

MHA高可用架构部署配置实例

江枫思渺然 提交于 2020-01-15 01:13:36
MHA高可用架构部署配置实例 一、前言 1.1What‘s MHA?——原理简介 ​ MHA——Master High Availability,目前在MySQL高可用方面是一个相对成熟的解决方案,是一套优秀的MySQL故障切换和主从提升的高可用软件。 ​ 这里我们提到了两个个关键点:“高可用”,“故障切换“。我们逐一简单介绍一下这两者的含义。 1.1.1何为高可用? ​ 高可用就是可用性强,在一定条件下(某个服务器出错或宕机)可以保证服务器可以正常运行,在一定程度上不会影响业务的运行。 1.1.2故障切换 ​ 当主服务器出现错误时,被manager服务器监控到主库mysqld服务停止后,首先对主库进行SSH登录检查(save_binary_logs -command=test),然后对mysqld服务进行健康检查(PING(SELECT)每个3秒检查一次,持续3次),最后作出Master is down!的判断,master failover开始进行对应的处理,具体的过程可以参考网上的博客,这里给出一个链接: https://www.cnblogs.com/xiaoboluo768/p/5210820.html 大家可以参考这位朋友的文章,讲的非常详细。 二、MHA高可用架构部署实例 2.1部署环境与基础配置要求 在虚拟机环境下,需要四台Centos7服务器

k8s之基础概念

允我心安 提交于 2020-01-14 22:08:49
目录 kubernets 结构 基础概念之master 基础概念之nodes 基础概念之pod 基础概念之LABEL kubernets 结构 基础概念之master master作为kubernets集群当中的最重要的一部分,作用为管理集群当中的各个节点(NODE),由四个基础组件构成: api-server:k8s集群当中的所有的资源的操作的唯一入口,是集群控制的入口进行。 controller-manager:资源自动化控制的中心 Scheduler:资源的调度中心 etcd:资源的对象(pod)的数据存储中心,包含了所有基于控制器控制的所有pod信息。 基础概念之nodes nodes:k8s集群当中的节点,受到master节点的管控。node节点当中主要的组件有: kubelet:负责容器的创建,启动,同时与master进行协作。 kebe-proxy:实现k8s service的通信与负载机制的, docker Engine:负责容器的创建,管理工作。 基础概念之pod pod:kube当中的资源得最小单位,master节点管理的资源对象为节点上的pod,当然pod当中可以包含一个或者多个容器。 每一个pod都有唯一的ip地址,称之为POD IP,kubernets当中的有的pod有两种的类型:static Pod 和普通pod 普通Pod

MySql主从双向复制配置

眉间皱痕 提交于 2020-01-14 20:03:34
1.分别修改主从节点的mysql数据库配置 vim /etc/my.cnf #主(备) server-id = 1 #(backup这台设置为2) log-bin=mysql-bin binlog-ignore-db = mysql,information_schema #忽略写入binglog日志的库 log-slave-updates = 1 #从库的写操作记录到bin-log expire_logs_days = 10 #日志过期天数 auto-increment-increment = 2 #字段变化增量值 auto-increment-offset = 1 # 初始字段ID为1, (备用库为2) slave-skip-errors = all 分别重启mysql service mysqld restart 2.为主从数据库分配权限 连接主数据库,为从数据库分配权限 mysql -u root -p GRANT REPLICATION SLAVE ON *.* TO 'root'@'从数据库IP' IDENTIFIED BY '从数据库密码'; flush privileges; 连接从数据库,为主数据库分配权限 mysql -u root -p GRANT REPLICATION SLAVE ON *.* TO 'root'@'主数据库IP' IDENTIFIED BY

git 分支操作

心不动则不痛 提交于 2020-01-14 20:02:08
首先需要了解分支的本质,分支可以理解为一个指向某个commit对象的指针,但是它是可变的,随着commit提交的变化,指针跟随移动,始终指向当前分支最新的那个提交。使用 git log --oneline 命令可以查看每个分支指向的提交信息。git中的分支信息都保存在.git目录下,具体位置参考git目录介绍 1. 新建分支 git branch newBr 新建名为newBr的分支,如果分支已经存在,代码会报错 git branch -f newBr 强行创建名为newBr的分支,原来的同名分支会被新建分支覆盖 特别说明: 上述方式新建分之后,并不能自动切换到新分支 checkout -b newBr 新建分支的同时切换分支, 如果分支已经存在,代码会报错 checkout -B newBr 强行创建,原来的同名分支会被新建分支覆盖 上述4种方式都是基于当前分支进行创建新分支 git branch newBr commitId 基于某次提交创建新分支,其中commitId是该提交对象的id,可以是前几位缩写。前4种语法都可以适用该语法。 git stash branch newBr stashIndex git基于指定stash储藏创建分支 git stash branch newBr stash@{0} 或者 git stash branch newBr 0

kubernetes的云中漫步(二)--二进制安装kubernetes集群

让人想犯罪 __ 提交于 2020-01-14 16:02:54
一:集群部署准备工作 1.三台服务器: k8s-master:192.168.122.69 k8s-node-1: 192.168.122.232 k8s-node-2: 192.168.122.68 2.验证MAC和product_uuid的唯一性 检查MAC的唯一性: [ root@k8s-master ~ ] # ip link 1: lo: < LOOPBACK,UP,LOWER_UP > mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: < BROADCAST,MULTICAST,UP,LOWER_UP > mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 52:54:00:90:ee:f3 brd ff:ff:ff:ff:ff:ff [ root@k8s-node-1 ~ ] # ip link 1: lo: < LOOPBACK,UP,LOWER_UP > mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1 link

Google MapReduce 论文

百般思念 提交于 2020-01-14 15:46:45
1. MapReduce: Simplified Data Processing on Large Clusters 1.1. Abstract 1.2. 1 Introduction 1.3. Programming Model 1.3.1. 2.3 More Examples 1.4. 3 Implementation 1.4.1. 3.1 Execution Overview 1.4.2. 3.2 Master Data Structures 1.4.3. 3.3 Fault Tolerance 1.5. 4 Refinements 优化改进 1.5.1. 4.3 Combiner Function 组合器优化改进 1.6. 5 Performance 1.6.1. 5.2 Grep 1.7. 6 Experience 1.7.1. 6.1 Large-Scale Indexing 大规模索引 MapReduce: Simplified Data Processing on Large Clusters 原文地址:http://3gods.com/2017/07/31/Google-Paper-MapReduce.html。 Abstract Users specify a map function that processes a key/value pair to

Git学习(4)高层命令-分支

无人久伴 提交于 2020-01-14 09:13:18
分支是什么 分支的本质是提交对象,分支存放在 .git/refs/heads 目录下,文件名就是分支名,文件里面是对应的commithash。 HEAD指针指向的分支存放在 .git/HEAD 文件里,默认指向master分支,切换分支时就是让HEAD指向不同的分支,每次有新的提交时HEAD都会带着当先指向的分支一起移动。 可以看.git目录下的HEAD文件存放当前分支,refs/heads/目录下存放当前分支指向的提交对象,如下 git branch //显示本地分支 git branch 分支名 //创建新分支 git branch -d 分支名 //删除分支名分支 git branch -D 分支名 //强制删除分支名分支 git branch -v //查看每一个分支最后一次提交 git branch 分支名 commitHash //新建一个分支并使分支指向对应的提交对象 git checkout 分支名 //切换到分支名分支 git checkout -b 分支名 //新建分支名分支并切换到分支名分支 git merge 分支名 //合并分支 git log --oneline //查看提交记录 git log --oneline --decorate --graph --all //显示项目分叉历史 注意 切换分支前一定要保证当前工作区是干净的,因为切分支会改变工作区