Kubeadm离线安装单节点K8S
目标
1.在所有节点上安装docker和kubeadm
2.部署kubernetes master
3.部署容器网络插件
4.部署kubernetes worker
5.部署dashboard可视化插件
6.部署容器存储插件
操作系统版本
12345678$ cat /proc/version# Linux version 5.0.1-1.el7.elrepo.x86_64 (mockbuild@Build64R7) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)) #1 SMP Sun Mar 10 10:09:55 EDT 2019 bash$ rpm -q centos-release# centos-release-7-2.1511.el7.centos.2.10.x86_64$ cat /etc/redhat-release# CentOS Linux release 7.2.1511 (Core)
准备
所有安装机器均需执行。
给服务器配置hostname为k8s
只修改static的hostname
1234 ...
通过linux定时任务推送钉钉群上下班打卡提醒消息
脚本
公司开始要打卡考勤,但我们组的同事上下班总是忘记打卡签到,于是,灵机一动,写个脚本,到点了在钉钉群内推送消息,提醒大家打卡。
于是,下面这段shell脚本就出现了。代码思路就是根据时间段生成不一样的提醒内容,提醒的同时也让娱乐一下,然后调用钉钉的开放API,推送给内容到钉钉群内。
dakatips.sh
12345678910111213141516171819202122232425262728293031323334353637383940414243444546#!/bin/bashsystemTime=$(date "+%Y-%m-%d %H:%M:%S")value=$(date +%T |awk -F: '{print $1}')if [ $value -ge 19 ] && [ $value -le 23 ]; then content="我就是我, 是不一样的烟火。现在是 $systemTime ,该回家休息了,刷个笑脸,隐去疲惫,给家人一份安心。"#凌晨elif ...
详解kafka配置文件server.properties
server.properties 是 Kafka 的主要配置文件,下面简单介绍其中的相关配置项的含义。必须修改的配置项就是 log.dirs ,其他配置可以根据需求自行修改。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364# 每一个Broker在集群中的唯标识。即使Broker的IP地址发生了变化,broker.id只要没变,则不会影响consumers的消息情况broker.id=0# 是否允许Topic被删除。如果是false,使用管理员工具删除Topic的时候,Kafka 并不会处理此操作delete.topic.enable=true# Kafka服务端是否可以根据请求自动创建Topic,默认是true。如果打开此选项,下面三种请求会触发Topic自动创建:# ①Producer向某个不存在的Topic写人消息# ②Consumer从某个不存在的Topic读取消息# ③Consumer从 ...
Wordpress站点的Nginx服务配置https
生成证书
参考《SSL证书生成》,生成适合于自己的免费证书。也可购买商业SSL证书。
如果只想生成CSR,用CSR在CA机构换取CRT证书,可以执行下面命令即可:
1openssl req -new -nodes -newkey rsa:2048 -keyout server.key -out server.csr
配置Nginx
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061# 配置80端口跳转到443端口server { listen 80; server_name www.abc.zyx; # rewrite ^ https://$server_name$request_uri permanent; rewrite ^(.*)$ https://$host$1 permanent;}# 配置WordPress的https服务server { ...
zookeeper客户端zkCli.sh命令使用
Usage
连接命令
1zkCli.sh [-timeout 100] [-r] -server server-1:2181,server-2:2181,server-3:2181
-r :即使ZooKeeper服务器集群一半以上的服务器 down,也给客户端提供读服务。
客户端命令
命令
usage
示例
h
显示所有命令
·
ls path
查看某个节点下的所有子节点信息
· ls / 列出根节点下所有的子节点信息 · ls /brokers/topics 列出 /brokers/topics 下的所有子节点信息
stat path
获取指定节点的状态信息
· stat /brokers/ids 查看 /brokers/ids 节点状态
get path
获取${path}节点的数据内容
get /controller 获取 /controller 节点的数据内容
ls2 path
是ls 和 stat两个命令的结合
create [-s] [-e] path data acl
创建节点,-s 表示是顺序节点-e 标识是临时节点path 节点路径 ...
SSL证书生成
SSL介绍
SSL证书通过在客户端浏览器和 Web 服务器之间建立一条SSL安全通道(Secure socketlayer(SSL),SSL安全协议主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。由于 SSL 技术已建立到所有主要的浏览器和WEB服务器程序中,因此,仅需安装服务器证书就可以激活该功能了)。即通过它可以激活 SSL 协议,实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露。保证了双方传递信息的安全性,而且用户可以通过服务器证书验证他所访问的网站是否是真实可靠。
流程介绍
1.创建根证书密钥文件(自己做CA)root.key;创建根证书的申请文件root.csr;创建一个自当前日期起为期十年的根证书root.crt。
2.创建服务器证书密钥server.key;创建服务器证书的申请文件server.csr;创建自当前日期起有效期为期两年的服务器证书server.crt。
3.创建客户端证书密钥文件client.key;创建客户端证书的申请文件client.csr;创建一个自 ...
FastDFS之Tracker-Leader和Trunk-Server的选择
Tracker-Leader的选择
Tracker-Leader的概述
在 FastDFS 中可以配置多个 tracker,每个 tracker 是对等的,但是在运行过程中针对某些操作会选择其中一个 tracker 作为 Leader,由 Leader 执行这些特殊的操作。
既然 Tracker 是对等的,为什么还需要选举 Leader,选出来的 Leader 能干什么?这个问题,余庆(fishhappy100)在 chinaunix bbs 中做了回答,他是如此解释的:
tracker server之间是对等的。客户端可以访问任意一台tracker server。
引入tracker leader是为了解决如下问题:
新加入一台storage server时,由leader指定向其同步的源storage server
使用了合并存储特性时,leader为每个group选举和维护唯一的一个trunk server
以上分配如果不由leader来完成的话,可能会出现混乱情况,尤其是第2条。
Tracker-Relationship线程
在Tracker程序启动后,会启动一个Re ...
Fastdfs上传文件报错 recv package size -1!=10
异常描述
使用 Fastdfs 作为文件存储系统,Java 客户端单个上传文件没什么问题,在并发300的时候就会出现异常,部分上传失败。
客户端是自己封装的 spring-boot-starter-fastdfs,引用的核心库是 happyfish100大神的 java 版客户端,该库的 github 地址是 https://github.com/happyfish100/fastdfs-client-java。SpringBoot 的版本是 2.0.3.RELEASE。
项目中引入编译好的 fastdfs-client-java jar lib。
123456<dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.27-SNAPSHOT</version></dependency>
fastdfs-client-java 没有实现 ...
Dockerfile 之最小化 Java 镜像的常用技巧
背景
随着容器技术的普及,越来越多的应用被容器化。人们使用容器的频率越来越高,但常常忽略一个基本但又非常重要的问题 - 容器镜像的体积。本文将介绍精简容器镜像的必要性并以基于 spring boot 的 java 应用为例描述最小化容器镜像的常用技巧。
精简容器镜像的必要性
精简容器镜像是非常必要的,下面分别从安全性和敏捷性两个角度进行阐释。
安全性
基于安全方面的考虑,将不必要的组件从镜像中移除可以减少攻击面、降低安全风险。虽然 docker 支持用户通过 Seccomp 限制容器内可以执行操作或者使用 AppArmor 为容器配置安全策略,但它们的使用门槛较高,要求用户具备安全领域的专业素养。
敏捷性
精简的容器镜像能提高容器的部署速度。假设某一时刻访问流量激增,您需要通过增加容器副本数以应对突发压力。如果某些宿主机不包含目标镜像,需要先拉取镜像,然后启动容器,这时使用体积较小的镜像能加速这一过程、缩短扩容时间。另外,镜像体积越小,其构建速度也越快,同时还能减少存储和传输的成本。
常用技巧
将一个 java 应用容器化所需的步骤可归纳如下:
编译 java 源码并生成 jar ...
JAVA中BIO、NIO、AIO的分析理解
理解 IO
输入输出(IO)是指计算机同任何外部设备之间的数据传递。常见的输入输出设备有文件、键盘、打印机、屏幕等。数据可以按记录(或称数据块)的方式传递,也可以 流的方式传递 。
所谓记录,是指有着内部结构的数据块。记录内部除了有需要处理的实际数据之外,还可能包含附加信息,这些附加信息通常是对本记录数据的描述。
同步和异步
同步
概念:指的是用户进程触发 IO 操作并等待或者轮询的去查看 IO 操作是否就绪。
例子:每天要吃饭,下班后自己跑去菜市场买菜,回来在做饭,所有的事情都是自己一件接着一件执行的。
异步
概念:异步是指用户进程触发IO操作以后便开始做自己的事情,而当 IO 操作已经完成的时候会得到 IO 完成的通知(异步的特点就是通知)。
例子:在某超市网上APP上选中食材后下单,委托快递员送菜上门,超市给你备货,快递员送货,而你在他们备货送菜的阶段还可以做其他事情。(使用异步 IO 时,Java 将 IO 读写委托给 OS 处理,需要将数据缓冲区地址和大小传给 OS )。
区别
IO 操作主要分为两个步骤,即发起 IO 请求和实际 IO 操作,同步与异步的区别 ...