一、POC环境架构
二、Rancher基础环境
计算资源
序号 | 配置 | 内网IP | 公网IP | ||
CPU | MEM | DISK | |||
1 | 4 | 8 | 根分区:20G 附加磁盘50G | 192.168.1.2 | xxx |
2 | 192.168.1.5 | 无 | |||
3 | 192.168.1.6 | 无 | |||
4 | 192.168.1.7 | 无 | |||
5 | 192.168.1.8 | 无 |
网络映射:
192.168.1.2:22 ---> xxx:20002 ssh
192.168.1.2:443 ---> xxx:8443 web
192.168.1.2:80 ---> xxx:8088 web
192.168.1.5:9999 ---> xxx:9999 pigx-gateway
192.168.1.5:9980 ---> xxx:9980 pigx-ui
192.168.1.7:80 ---> xxx:8081 harbor
192.168.1.7:9200 ---> xxx:9200 es (待添加映射)
192.168.1.7:5601 ---> xxx:9601 kibana(待添加映射)
192.168.1.8:8080 ---> xxx:8080 jenkins
192.168.1.8:80 ---> xxx:8082 gitlab
三、POC环境搭建
1. *** 作系统准备概要(centos7)
1)支持的Docker版本
1.12.6
1.13.1
17.03.2
17.06 (for Windows)
2)主机名配置
因为K8S的规定,主机名只支持包含 - 和 .(中横线和点)两种特殊符号,并且主机名不能出现重复。
3)更新Hosts
配置每台主机的hosts(/etc/hosts),添加host_ip $hostname到/etc/hosts文件中。
4)centos关闭selinux
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
5) 关闭防火墙(可选)或者放行相应端口
关闭防火墙systemctl stop firewalld.service && systemctl disable firewalld.service
端口需求
查看:https://www.cnrancher.com/docs/rancher/v2.x/cn/installation/references/
6)配置主机时间、时区、系统语言
查看时区date -R或者timedatectl
修改时区修改系统语言环境ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
配置主机NTP时间同步sudo echo 'LANG="en_US.UTF-8"' >> /etc/profile;source /etc/profile
7)Kernel性能调优(可选)
数值根据实际环境自行配置,最后执行sysctl -p保存配置。cat >> /etc/sysctl.conf<
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.neigh.default.gc_thresh1=4096
net.ipv4.neigh.default.gc_thresh2=6144
net.ipv4.neigh.default.gc_thresh3=8192
EOF
8)内核模块(可选)
模块查询: lsmod | grep <模块名>
模块加载: modprobe <模块名>br_netfilter
ip6_udp_tunnel
ip_set
ip_set_hash_ip
ip_set_hash_net
iptable_filter
iptable_nat
iptable_mangle
iptable_raw
nf_conntrack_netlink
nf_conntrack
nf_conntrack_ipv4
nf_defrag_ipv4
nf_nat
nf_nat_ipv4
nf_nat_masquerade_ipv4
nfnetlink
udp_tunnel
VETH
VXLAN
x_tables
xt_addrtype
xt_conntrack
xt_comment
xt_mark
xt_multiport
xt_nat
xt_recent
xt_set
xt_statistic
xt_tcpudp
2.Docker安装与配置
1)修改centos系统软件源
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
cat > /etc/yum.repos.d/CentOS-Base.repo << EOF
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
EOF
2)Docker-ce安装
# 添加用户(可选)
sudo adduser `
` # 为新用户设置密码(可选)
sudo passwd `
` # 为新用户添加sudo权限(可选)
sudo echo '
ALL=(ALL) ALL' >> /etc/sudoers # 卸载旧版本Docker软件
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
container*
# 定义安装版本
export docker_version=17.03.2
# step 1: 安装必要的一些系统工具
sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 bash-completion
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache all
version=$(yum list docker-ce.x86_64 --showduplicates | sort -r|grep ${docker_version}|awk '{print $2}')
sudo yum -y install --setopt=obsoletes=0 docker-ce-${version} docker-ce-selinux-${version}
# 如果已经安装高版本Docker,可进行降级安装(可选)
yum downgrade --setopt=obsoletes=0 -y docker-ce-${version} docker-ce-selinux-${version}
# 把当前用户加入docker组(可选)
sudo usermod -aG docker `
` # 设置开机启动
sudo systemctl enable docker
Docker-engine
Docker-Engine Docker官方已经不推荐使用,请安装Docker-CE
3)Docker配置
Dockerhub节点在国外,国内直接拉取镜像会有些缓慢。为了加速镜像的下载,可以给Docker配置国内的镜像地址。编辑/etc/docker/daemon.json加入以下内容,并且添加insecure-registries私有仓库
编辑/etc/docker/daemon.json加入以下内容:
cat /etc/docker/daemon.json
{"registry-mirrors": ["http://b9456c4e.m.daocloud.io"],
"insecure-registries": ["192.168.1.7"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"max-concurrent-downloads": 10,
"max-concurrent-uploads": 10,
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
3.Rancher安装(在线)
1)独立容器安装,使用默认自签名证书
默认情况下,Rancher会自动生成一个用于加密的自签名证书。从你的Linux主机运行Docker命令来安装Rancher,而不需要任何其他参数:
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
-v /root/var/log/auditlog:/var/log/auditlog \
-e AUDIT_LEVEL=3 \
rancher/rancher:latest
2)访问rancher页面
用浏览器(非IE)打开Rancher Server所在主机IP的80端口, 并设置admin默认密码
3)创建集群
版本选择最新版,网络选择canal,创建集群
选择custom
新建一个叫mycluster的集群,k8s版本选择:v1.12.3
将rancher server的默认访问地址修改成如下:
修改集群的端口映射范围:
来到集群级别,然后点击最右边三个点的按钮,编辑:
找到“显示高级设置”,修改NodePort端口范围: 8000-9999
保存
4)添加节点角色
选择好主机角色,然后复制生成的命令,在待部署节点上执行此命令,部署此rancher节点,并加入集群:
下边安装1个etcd+control节点和2个worker节点:
安装过程需要下载docker image和配置过程,等待时间稍长。
Rancher2: etcd/control/worker
Rancher1:worker
Rancher3:worker
如果不成功可以尝试重试,漫长的等待之后:
4.监控系统安装概要
监控系统架构
通过cadvisor获取container的数据
通过node export获取宿主机数据
prometheus只做数据处理和数据分析功能
prometheus的alertmanager做告警功能
grafana做数据展示
1)监控部署监控
rancher2.0.2应用商店有现成写好的prometheus,集成了cadvisor、nodexport、kubestatemetrics、alertmanager, *** 作过程详见截图:
启动应用商店:
应用商店选择libary,搜索到Prometheus:
点击‘查看详情’,开始配置:
关闭l7,prometheus service-type修改为NodePort
配置grafana admin的密码,关闭L7 loadBlance
因为KubeStateMetrics和grafana-watcher这两个组件的image是从国外镜像仓库拉取国内环境下载不了所以需要我们提前将镜像pull好,然后在通过下面命令修改镜像地址。这里为了方便将pv和pvc创建都false了,生产环境部署需要将prometheus和grafana的监控数据持久化到pv核pvc上这样更可靠。
2)通过上述端口访问prometheus和grafana
5.日志收集系统安装
1)设置内核参数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)