xml地图|网站地图|网站标签 [设为首页] [加入收藏]
收集并展示,linux运维基础之系统挂载与etc文件下
分类:操作系统

1) 目录结构说明:
windows:磁盘----分区---格式化--系统
linux:磁盘--分区--生成一个文件(磁盘分区)
linux 中一切皆文件
ll -h 显示人类能看懂的
mount -o remount,rw /
安装tree yum install tree -y

架构

前端展示 --> 索引搜索 <-- 日志提取及过滤 --> 日志缓存 <-- 日志收集
Kibana --> Elastash <-- Logstash --> redis <-- filebeat

操作系统: CentOS 7.4
相关软件:filebeat-6.3.0-linux-x86_64.tar.gz, docker 18.03.1-ce, redis_version:4.0.10, docker-compose 1.18.0

日志文件名称及内容:

/iba/ibaboss/java/bossmobile-tomcat-8.0.26/logs/catalina.out
#截取的内容:
22-Jun-2018 17:45:22.397 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/8.0.26
22-Jun-2018 17:45:22.399 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Aug 18 2015 11:38:37 UTC
22-Jun-2018 17:45:22.399 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         8.0.26.0

/iba/ibaboss/java/bossmobile-tomcat-8.0.26/logs/ibalife.log
# 截取的内容:
[ERROR] [2018-06-30 17:41:56][com.iba.boss.pubsub.listener.core.ListenerTemplate]ErpCustomerRegEventListener onListen Done
[ERROR] [2018-06-30 17:41:56][com.iba.boss.pubsub.listener.user.BmcLevelDescEventListener]bmcLevelDescEventListener -> Waiting for set levelDesc
[ERROR] [2018-06-30 17:41:56][com.iba.boss.pubsub.listener.core.ListenerTemplate]BmcLevelDescEventListener onListen Done

0.引言

最近打算将现有项目的 Docker 部署到阿里云上面,但是之前是单机部署,现在阿里云上面有 3 台机器,所以想做一个 Docker 集群。之前考虑是用 Docker Swarm 来做这个事情的,不过后面看了一下现在 K8S 用的比较多,进而想在这三台机器上部署 K8S 集群。

下面附上 Kubernetes 介绍:

Kubernetes 是 Google 团队发起的开源项目,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及运用伸缩,主要实现语言为 Go 语言。Kubernetes 是:

  • 易学:轻量级,简单,容易理解
  • 便携:支持公有云,私有云,混合云,以及多种云平台
  • 可拓展:模块化,可插拔,支持钩子,可任意组合
  • 自修复:自动重调度,自动重启,自动复制

看上去很牛掰的样子,下面我们就开始来部署吧。

查看一级根 tree -L 1 /
esc . 快速输入上一个字符串。
etc下重要文件:nfig/network-scripts/ifcfg-eth0
DEVICE=eth0 --> 设备名称eth0
HWADDR=00:0c:29:8c:e2:3b mac地址
TYPE=Ethernet 网络类型
UUID=ffe5f1b3-26ab-4312-a364-c0061f01bbb6 硬件标示id信息 查看分区的命令blkid
ONBOOT=yes ------------------> 一定设置yes' 激活网卡(给网卡供电)
NM_CONTROLLED=yes 网络控制服务
BOOTPROTO=none 启动协议:获取地址方式 静态
IPADDR=10.0.0.200 网关
NETMASK=255.255.255.0 dns
DNS2=223.5.5.5
GATEWAY=10.0.0.2 服务器网卡ip
DNS1=114.114.114.114 子网掩码
USERCTL=no
PEERDNS=yes 网卡dns配置是否覆盖
IPV6INIT=no
;命令分隔符
&& 前面命令执行成功后在执行后一条命令
2) 重启网0卡 service network restart (字太多不建议使用)
/etc/resolv.conf dns网卡配置信息
3)/etc/hosts 主机名称或者域名信息 本机设置域名和ip地址装换关系
修改主机名称 的时候要修改这个文件
4)/etc/sysconfig/network
用于修改系统主机名信息:配置网关信息

安装 docker

详情可以参考 
https://www.cnblogs.com/klvchen/p/8468855.html
https://www.cnblogs.com/klvchen/p/9098745.html

1.准备工作

万事开头难,本来如果没墙的话就没有这么多破事,首先我们要先配置好安装 Kubernetes 所需要的必备环境,这里我没有采用从零开始安装 Kubernetes 的方式,而是使用了 Kubeadm 来进行 K8S 集群的安装与配置。

主机名修改步骤:
第一: hostname kingle 修改主机名称不会立即生效
说明:命令修改主机名只是临时生效;
第二:编写配置文件:
vim /etc/sysconfig/network
第三:编写/etc/host 配置好主机名于ip地址的关系

安装 docker-compose

详情可以参考 https://www.cnblogs.com/klvchen/p/9242774.html

1.1 安装 Docker-CE

关于如何在 CentOS 安装 Docker-CE 的文章大家可以看一下我 这篇文章 ,几分钟的事情就可以安装完毕。

安装 redis (这里使用 docker)

docker pull redis 

mkdir /home/ibaboss/compose/config -p 
cd  /home/ibaboss/compose/config

# redis 的配置,密码为 ibalife
vi redis.conf 

#daemonize yes
pidfile /data/redis.pid
port 6379
tcp-backlog 30000
timeout 0
tcp-keepalive 10
loglevel notice
logfile /data/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
requirepass ibalife
maxclients 30000
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events KEA
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 1000
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

# 编写 docker-compose redis yml 文件
cd /home/ibaboss/compose

vi docker-compose-redis.yml 
version: '3'
services:
  elk_redis:
    image: redis:latest
    container_name: elk_redis
    ports:
      - "192.168.0.223:6379:6379"     # 为提升安全,redis只对内网开放
    volumes:
      - ./config/redis.conf:/usr/local/etc/redis/redis.conf
    networks:
      - logs_elk  # 使用指定的网络 logs_elk
    entrypoint:
      - redis-server
      - /usr/local/etc/redis/redis.conf

networks:
  logs_elk:
    external:    # 指定使用网络
      name: logs_elk

# 创建 elk 专用的网络
docker network create  --attachable logs_elk

# 启动 redis
docker-compose -f docker-compose-redis.yml up -d 

# 查看状态
docker ps -a

# 可通过上一步获得 CONTAINER ID,查看启动日志
docker logs -f 4841efd2e1ef

1.2 安装 Kubeadm

安装 Kubeadm 首先我们要配置好阿里云的国内源,执行如下命令:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
EOF

之后呢,执行以下命令来重建 Yum 缓存:

yum -y install epel-release
yum clean all
yum makecache

下面就开始正式安装 Kubeadm 了:

yum -y install kubelet kubeadm kubectl kubernetes-cni

不出意外的话,安装完成之后,我们执行以下命令来启用 Kubeadm 服务:

systemctl enable kubelet && systemctl start kubelet

安装 filebeat

mkdir /home/tools -p

cd /home/tools

# 安装包上传到 /home/tools
tar zxvf filebeat-6.3.0-linux-x86_64.tar.gz -C /usr/local
cd /usr/local
ln -s /usr/local/filebeat-6.3.0-linux-x86_64 /usr/local/filebeat

1.3 配置 Kubeadm 所用到的镜像

这里是重中之重,因为在国内的原因,无法访问到 Google 的镜像库,所以我们需要执行以下脚本来从 Docker Hub 仓库中获取相同的镜像,并且更改 TAG 让其变成与 Google 拉去镜像一致。

新建一个 Shell 脚本,填入以下代码之后保存。

#!/bin/bash
images=(kube-proxy-amd64:v1.11.0 kube-scheduler-amd64:v1.11.0 kube-controller-manager-amd64:v1.11.0 kube-apiserver-amd64:v1.11.0
etcd-amd64:3.2.18 coredns:1.1.3 pause-amd64:3.1 kubernetes-dashboard-amd64:v1.8.3 k8s-dns-sidecar-amd64:1.14.9 k8s-dns-kube-dns-amd64:1.14.9
k8s-dns-dnsmasq-nanny-amd64:1.14.9 )
for imageName in ${images[@]} ; do
docker pull keveon/$imageName
docker tag keveon/$imageName k8s.gcr.io/$imageName
docker rmi keveon/$imageName
done
# 个人新加的一句,V 1.11.0 必加
docker tag da86e6ba6ca1 k8s.gcr.io/pause:3.1

注:这里我就遇到过一个坑,原作者是根据 1.10 来的,然后在 kubeadm init 执行的时候一直报错,说找不到镜像。之后镜像版本是下载对了,但还是在 [init] this might take a minute or longer if the control plane images have to be pulled 这一句卡住,在国外的 VPS 测试之后,发现多了一个 k8s.gcr.io/pause:3.1 镜像,他的 ID 其实与 pause-amd64:3.1 一样,然后加了一个新的 TAG 之后,正常部署。

保存之后记得用 chmod 命令赋予 Shell 脚本可执行权限:

chmod -R 777 ./xxx.sh

本文由澳门新葡亰手机版发布于操作系统,转载请注明出处:收集并展示,linux运维基础之系统挂载与etc文件下

上一篇:没有了 下一篇:没有了
猜你喜欢
热门排行
精彩图文