☆ Ops
文章平均质量分 57
Bboy-AJ
这个作者很懒,什么都没留下…
展开
-
【Docker】容器镜像删除
问题描述 Docker 使用一段时间后,会累积很多镜像,其中有些镜像可能已经不再使用,那么该如何清理这些镜像?解决方案 删除指定镜像: 先查看当前所有已保存的镜像:docker images 可以通过 Images ID 来删除指定镜像:docker rmi 3f8a4339aadd删除全部镜像docker rmi $(docker images -q)FAQ原创 2018-02-07 20:52:17 · 1015 阅读 · 12 评论 -
docker镜像导出、导入
引言 docker默认会从docker hub 拉取镜像,如果网络不通或者传输很慢,很影响使用。因此了解如何手动导出、导入镜像很有必要。导出 查看本地docker镜像docker images导出docker save [repository] > [filename].tar例如docker save docker....原创 2018-02-25 11:21:40 · 1786 阅读 · 29 评论 -
【Kubernetes】Pod调度到指定Node
问题描述 Kubernetes有着自己特定的调度算法与策略,有Master中的Scheduler组件来实现,根据Node资源使用情况自动调度Pod的创建,通常可以满足我们大部分的需求。但是有时我们希望可以将某些Pod调度到特定硬件节点上,这里采用目前最为简单的nodeName和nodeSelector来实现Pod调度。 假设以下场景:有三个Node,分别为107、108、109,创建De原创 2018-03-04 15:12:58 · 24303 阅读 · 9 评论 -
【Kubernetes】同步pod时区,与node主机保持一致
问题描述在安装Kubernetes集群的过程中并没有注意到pod的时间问题,直到在Tomcat上部署应用后发现pod中的时间与Node上的时间不同步,解决这个问题基本上可以有两种思路:原创 2018-03-11 21:24:02 · 11638 阅读 · 13 评论 -
高可用负载均衡服务器实现(keepalived + haproxy)
准备 两台Centos服务器,分别为118、119一个未被使用的ip地址,180配置 haproxy 安装haproxyyum -y install haproxy编辑 haproxy.service 文件vi /usr/lib/systemd/system/haproxy.service在 ExecStart 前添加 ExecStartPre ExecStartPre=/原创 2018-03-18 16:54:45 · 1407 阅读 · 20 评论 -
初识etcd
前言 etcd来自于两个单词:Unix的“/etc”目录和“distibuted”,etc目录通常保存单机的配置信息,etcd表示存储大型分布式系统的配置数据。 它是一个分布式、高可用的key-value型存储仓库,通常用于配置共享与服务发现,为分布式系统提供关键数据存储服务。它由CoreOS开发并开源,授权协议为Apache,据官网数据显示,目前有Kubernetes, Cl...原创 2018-02-18 11:50:33 · 1112 阅读 · 67 评论 -
【kubernetes】无法使用本地镜像
问题描述 为了节省创建deployment的时间,提前在Node本地拉取了镜像,但是deployment在创建pod时,总是报错:can't pull image 这个错误表明,pod在创建的时候还是会去pull镜像,无论本地是否已经存在此镜像。解决方案 通过检查deployment的yaml文件,发现 imagePullPolicy 为“Always”(默认值),修改为“if原创 2018-03-25 17:51:50 · 8228 阅读 · 19 评论 -
kubectl 安装与配置
简述 操作k8s集群可以分为两种方式:使用kubectl命令行工具;通过Dashboard页面可视化操作。Dashboard在k8s上是以插件的方式安装,集群出现问题时可能无法正常显示,还需要使用kubectl命令行工具来排查问题,并且命令行的方式效率很高,因此kubectl的安装与配置是管理员必须要掌握的。安装 kubectl本身只是一个可执行文件,不需要处理依赖关系,...原创 2018-06-10 14:39:26 · 18487 阅读 · 6 评论 -
Kubernetes Dashboard token失效时间设置
说明 升级了新版本的Dashboard(这里使用的v1.8.3),使用了较为复杂的双因子登录,正确输入用户名和密码之后还需要Token或者kubeconfig再次认证,保障了系统安全,同时也带来了一些不便。默认的Token失效时间是900秒,也就是15分钟,这意味着你每隔15分钟就要认证一次。// Expiration time (in seconds) of tokens gene...原创 2018-07-05 17:19:43 · 8219 阅读 · 5 评论 -
K8s生产环境下启用防火墙
简述当初在安装K8s集群时,为了安装方便关闭了所有机器的防火墙,但是如果是生产环境,非常不安全,因此有了这篇文章。文章总结了在开启防火墙状态下,需要开放哪些端口,以及需要注意的点。准备服务器操作系统:Ubuntu 16.04防火墙命令:ufw集群: 服务器角色 名称 ip etcd etcd1、2、3 192.168.22.104、1...原创 2018-07-29 14:49:23 · 16341 阅读 · 13 评论 -
Docker登录Harbor私有仓库
说明在安装Harbor时,可以配置启用http或者https的访问方式。默认为http(非加密连接,数据传输不安全,使用相对简单);如果采用https的方式,使用TLS加密,数据传输更安全,但是需要配置证书,操作相对繁琐。harbor.cfg文件:#The protocol for accessing the UI and token/notification service, b...原创 2018-07-29 14:56:06 · 41033 阅读 · 17 评论 -
LVS
简述Linux虚拟服务器(Linux Virtual Server,LVS)是一个虚拟的服务器集群系统,用于实现负载平衡。项目在1998年5月由章文嵩成立,是国内最早出现的自由软件项目之一,目前已经是Linux内核的一部分。工作原理IP负载LVS采用了IP负载均衡技术(效率最高)来实现虚拟网络服务,而在IP负载均衡技术中,主要有三种实现方式:NAT(网络地址转换)IP Tu...原创 2018-08-09 11:36:09 · 2573 阅读 · 3 评论 -
【Kubernetes】部署Tomcat服务
准备 已有Kubernetes集群熟悉Kubernetes的基本命令tomcat镜像已保存到Harbor(如果没有配置私有仓库,也可以通过公网从 docker hub 拉取)Deployment k8s支持多种资源创建方式,这里我们使用YAML文件来完成Tomcat应用的配置。apiVersion: extensions/v1beta1kind: Deploymentmet原创 2018-02-10 21:35:12 · 12146 阅读 · 19 评论 -
【Kubernetes】Failed at step CHDIR spawning /usr/local/bin/kubelet: No such file or directory
问题描述 为Kubernetes集群添加新Node,kubelet启动失败,通过 journalctl -xe 命令查看错误信息如下:[root@localhost ~]# journalctl -xe-- -- Unit kubelet.service has begun starting up.1月 24 08:07:52 localhost.localdomain s原创 2018-01-28 20:04:15 · 21916 阅读 · 15 评论 -
你一定要了解的Kubernetes
前言 随着容器技术的发展,Docker近几年突然崛起,变得炙手可热,已经成为容器技术的事实标准。然而想要在生成环境中成功部署和操作容器的关键是容器编排技术,市场上有各种各样的容器编排工具(如Docker原生的Swarm),其中谷歌公司开发的Kubernetes得到开源社区的全力支持,IBM、惠普、微软、RedHat等业界巨头纷纷加入,Kubernetes已经成为GitHub上的明星开原创 2020-04-24 17:48:20 · 3939 阅读 · 69 评论 -
Linux下Tomcat的安装与部署
简述Tomcat的安装与启动过程,主要总结一下可能出现的问题。 首先描述一下使用场景,Linux作为Web服务器使用,未安装图形化界面。管理员通过Xshell之类的远程命令行工具来管理Linux服务器,其他用户会在Windows操作系统中的浏览器来访问Tomcat中的页面。安装 对于软件安装包来说,在计算机上安装的过程其实就是解压的过程。那么第一步要做的就是获取Tomcat安装包:使用原创 2017-09-17 21:50:35 · 991 阅读 · 14 评论 -
SVN提交更新,Jenkins无法检测到最新版本
背景 如题,在使用Jenkins执行构建时,发现SVN提交更新后,最新版本号为15,但是Jenkins Check out后版本号却是13,不是最新版本。 分析后发现是Jenkins服务器的时间与SVN服务器时间不一致造成的,Jenkins比SVN服务器时间早十几分钟,而Jenkins中的SVN插件是按照时间戳来更新代码的。 也就是说Jenkins在 10:56 更新代码,而SVN上14原创 2017-06-13 15:22:56 · 7091 阅读 · 24 评论 -
在Centos中升级Jenkins版本
背景 如题,Jenkins有新版本提示,该如何升级。 解决方案 定位jenkins.war文件的安装目录 ps -aux | grep jenkins 如果是默认安装的话,文件目录应该为:/usr/lib/jenkinscd /usr/lib/jenkins关闭Jenkins服务service jenkins stop删除jenkins.war文件rm jenkins.原创 2017-06-10 15:24:52 · 9205 阅读 · 15 评论 -
【Linux】删除目录及其子文件夹
习惯了使用Windows操作系统,从没想过删除目录及其子文件夹会出现什么问题。然而,在Linux中这可能会给你带来困扰。 打开超级终端,我们通过mkdir命令来创建一个目录文件,自然会想到使用rmdir命令来删除这个目录,这没有什么问题,但是rmdir命令只能在目录为空时删除,也就是说当删除目录及其子文件夹时,这个命令不能完成这个操作。 我们可以通过强大的rm命令来完成,当然需要必要的参数。rm -r-f就可以删除目录及其子文件夹。-r参数是表示递归删除下一层目录,-f参数是表示强制删除,而不进行提示原创 2015-10-18 19:23:02 · 4151 阅读 · 14 评论 -
【Linux】使用vi编辑器创建文本文件
前言 Linux下有许多编辑器,如KDE下的kwrite,GNOME下的gedit。其中历史最悠久的、使用最广泛的就是vi编辑器及其增强版vim。vi是“Visual Interface”的简称,可以完成输出、删除、查找、块操作等众多文本操作。需要注意的是,vi不是一个排版程序,仅仅是一个文本编辑程序。 说明 vi有三种基本的工作模式,分别是:命令行模式、文原创 2015-11-11 11:14:39 · 28941 阅读 · 17 评论 -
SVN服务器更换IP地址,客户端如何重新定位
问题描述在解决问题之前,先描述一下问题发生的场景。小组合作开发,SVN服务器采用的是VisualSVN Server,客户端是TortoiseSVN,在VS上安装了VisualSVN插件。开发大约一周后,更换了工作场地,服务器的IP地址也发生了相应的变化,这时候由于URL的改变,小组成员无论是提交还是更新都提示失败。解决在资源管理器中找到解决方案所在位置,在空白处右击,选择“TortoiseSVN”原创 2016-05-17 10:58:11 · 30397 阅读 · 29 评论 -
使用Tomcat Manager 远程部署war文件
引言 谈起如何远程部署war文件到Tomcat服务器,我们可能会想到很多方法:使用xftp等工具手动拷贝、Apache Ant自动部署、Jenkins持续集成等等,这些方式本质上都是相同的。Tomcat 其实为我们提供了一个Manager,可以对Tomcat进行管理,包括远程部署war包。 想必大家都很熟悉上面这幅图,安装Tomcat成功之后第一眼看到就是它,可能更多的关注点在“原创 2017-10-26 20:02:41 · 5486 阅读 · 18 评论 -
ReviewBoard-安装(Centos 7)
准备 ReviewBoard基于Python程序语言,采用了Django Web 框架开发,因此在安装ReviewBoard之前,需要做一些准备工作:安装Python 2.7及以上安装MySQL 5.6及以上数据库(还支持PostgreSQL)安装Apache HTTP 服务器和mod_wsgi模块安装 Python 2.7 Centos 系统中一些原创 2017-12-23 09:20:22 · 3267 阅读 · 56 评论 -
在ReviewBoard中添加SVN仓库
说明 Review Board可以和版本控制系统结合使用,使用Pre Review 模式,在团队成员提交代码到仓库之前,先进行代码评审,没有问题再进行提交。它支持多种版本控制系统,比如我们很熟悉的SVN和Git,今天主要介绍ReviewBoard如何与SVN结合使用。 准备 已搭建好Review Board服务器(假定使用Centos 7),并可以正常启动服务。安装SVNy原创 2017-12-28 19:20:26 · 3486 阅读 · 16 评论 -
ETCD高可用集群-快速搭建
准备 准备三台可以互相的访问的Linux机器,这里全部以Centos 7为例:node1-192.168.22.117 node2-192.168.22.118 node3-192.168.22.119 关闭这三台机器的防火墙:systemctl disable firewalld.service systemctl stop firewalld.service 安装原创 2018-01-07 21:28:53 · 3086 阅读 · 11 评论 -
浅析SSL/TLS协议基本运行机制
前言 在手动搭建kubernetes集群的时候,涉及到了TLS认证的配置,其步骤较为繁琐,如果不清楚TLS背后的流程和原理的话,会遇到各种各样千奇百怪的问题。 本文会简要介绍SSL/TLS协议的运行机制,帮助我们理解kubernetes集群的配置,具体配置步骤会在后文中总结。概述 TLS(Transport Layer Security,传输层安全协议),其前身为 SSL (S原创 2018-01-14 15:07:27 · 1152 阅读 · 62 评论 -
Harbor:私有企业级Registry仓库--快速搭建
前言 Harbor可以通过Docker Composer的方式来部署,如果有正常运行的k8s环境,也可以使用k8s来部署Harbor,本文采用 Docker Composer的方式。 准备 假定Linux系统为Centos 7。docker ,默认安装即可yum -y install dockerdocker compose ,安装最新版原创 2018-01-13 16:17:58 · 4351 阅读 · 16 评论 -
Rabbit MQ 安装
简述RabbitMQ是实现了AMQP的开源消息中间件,由Erlang语言(爱立信开发的一种通用并发程序设计语言)编写,现在是Pivotal公司的产品。 安装RabbitMQ的安装并不复杂,官方文档亦有很详细的安装流程,以CentOS 7为例,安装过程如下所示:Install Erlang因为RabbitMQ基于Erlang开发,所以需要先安装Erlang基础环境,文档...原创 2018-08-07 10:31:57 · 464 阅读 · 3 评论