hincky的主页 hincky的主页
  • 学习笔记

    • Vue笔记
    • Vuepress
    • nginx
  • 语言类

    • java
    • go
    • python
    • 设计模式
  • 框架类

    • Spring
    • Spring Security
    • Mybatis
  • 容器技术

    • docker
    • k8s
    • helm
    • prometheus
    • grafana
    • jenkins
  • 命令集合

    • linux命令
    • docker命令
    • git命令
    • vim命令
    • k8s命令
  • 数据库

    • sql
    • mysql
  • 协议

    • 网络模型
    • http/1.1
    • WebSocket
    • http/2
    • TLS/SSL
    • tcp
    • IP
    • tcpdump抓包命令
    • wireshark抓包工具
  • 通用

    • Git
  • 技术分享

    • git push/pull总是超时怎么办
    • idea debug技巧
    • postman使用
    • 问题总结
    • idea使用技巧
  • Oauth2

    • Oauth2原理
  • 项目列表

    • redis项目
    • 微服务项目
  • 分类
  • 标签
  • 归档
  • 随笔
GitHub (opens new window)

Hincky

当有趣的人,做想做的事
  • 学习笔记

    • Vue笔记
    • Vuepress
    • nginx
  • 语言类

    • java
    • go
    • python
    • 设计模式
  • 框架类

    • Spring
    • Spring Security
    • Mybatis
  • 容器技术

    • docker
    • k8s
    • helm
    • prometheus
    • grafana
    • jenkins
  • 命令集合

    • linux命令
    • docker命令
    • git命令
    • vim命令
    • k8s命令
  • 数据库

    • sql
    • mysql
  • 协议

    • 网络模型
    • http/1.1
    • WebSocket
    • http/2
    • TLS/SSL
    • tcp
    • IP
    • tcpdump抓包命令
    • wireshark抓包工具
  • 通用

    • Git
  • 技术分享

    • git push/pull总是超时怎么办
    • idea debug技巧
    • postman使用
    • 问题总结
    • idea使用技巧
  • Oauth2

    • Oauth2原理
  • 项目列表

    • redis项目
    • 微服务项目
  • 分类
  • 标签
  • 归档
  • 随笔
GitHub (opens new window)
  • 容器技术

    • docker

    • k8s

    • helm

    • rancher

      • rancher
        • 安装配置要求
          • 要开放的端口
        • 安装docker
          • 依赖
          • 安装以及换源
          • 验证docker
        • 配置时间同步
        • 持久化保存日志的目录
        • 设置主机名
        • 关闭防火墙 SELinux 与swap交换空间
        • 下载nginx
        • 下载rancher
        • 运行rancher
        • 新建用户
        • 配置新的集群
          • 添加节点主机
        • master节点安装kubectl
          • 下载kubectl
          • 复制到master节点
          • 复制rancher中集群对应的config文件
    • prometheus

    • grafana

    • containerd

    • jenkins

  • 命令集合

  • 软路由

  • 容量保障技术

  • 运维
  • 容器技术
  • rancher
hincky
2022-11-12
目录

rancher

Rancher 是一个 Kubernetes 管理工具,让你能在任何地方和任何提供商上部署和运行集群。

Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。

简单来说:rancher>k8s>docker

一般来说是rancher从k8s集群独立出来,单独部署rancher。实现解耦,即rancher类似一个网关入口

# 部署rancher

推荐使用容器的方式部署,与业务系统解耦

因此第一步要安装容器,这里选择docker

# 安装配置要求

官网docker安装rancher要求 (opens new window)

# 要开放的端口

官网端口要求 (opens new window)

# 安装docker

# 依赖

yum install wget expect vim net-tools ntp bash-completion ipvsadm ipset jq iptables conntrack sysstat libseccomp curl git yum-utils device-mapper-persistent-data lvm2 -y
1

# 安装以及换源

 
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#dnf repo-pkgs docker-ce-stable list

# yum list docker-ce --showduplicates | sort -r #查看docker的版本
# yum -y erase podman buildah   #centos8需要删除podman

#例如安装19.03.9版本
yum -y install docker-ce-19.03.9-3.el7 



sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://mvl6n9ol.mirror.aliyuncs.com"]
}
EOF

systemctl daemon-reload ; systemctl restart docker;systemctl enable --now docker.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 验证docker

docker version
docker info
1
2

# 配置时间同步

提示

如果是云服务器,时间同步这一步可以跳过

确认时间服务已经安装

yum -y install chrony

vim /etc/chrony.conf

cat > /etc/chrony.conf <<-'EOF' pool 192.168.5.150 iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync allow 192.168.5.0/24 local stratum 10 keyfile /etc/chrony.keys leapsectz right/UTC logdir /var/log/chrony EOF

启动时间服务: systemctl restart chronyd.service --now

设置完时区后,强制同步下系统时钟: chronyc -a makestep

查看时间同步源: chronyc sources -v

查看时间同步源状态: chronyc sourcestats -v

重启依赖于系统时间的服务

systemctl restart rsyslog ; systemctl restart crond

系统日志保存方式设置:

原因:centos7以后,引导方式改为了systemd,所以会有两个日志系统同时工作只保留一个日志(journald)的方法 设置rsyslogd 和 systemd journald

# 持久化保存日志的目录

mkdir -p /var/log/journal
mkdir -p /etc/systemd/journald.conf.d
cat  >  /etc/systemd/journald.conf.d/99-prophet.conf <<-'EOF'
[Journal]
#持久化保存到磁盘
Storage=persistent
# 压缩历史日志
Compress=yes
SyncIntervalSec=5m
RateLimitInterval=30s
RateLimitBurst=1000
# 最大占用空间10G
SystemMaxUse=10G
# 单日志文件最大200M
SystemMaxFileSize=200M
# 日志保存时间 2 周
MaxRetentionSec=2week
# 不将日志转发到 syslog
ForwardToSyslog=no
EOF

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

#重启journald配置 systemctl restart systemd-journald

# 设置主机名

主机ip与域名的对应关系 设置主机名

cat > /etc/hosts << EOF 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 43.138.161.91 rancher 43.139.67.186 master-01 43.139.43.21 node-02 43.139.116.230 node-03 EOF

# 关闭防火墙 SELinux 与swap交换空间

并关闭swap三台主机 并安装docker  本例安装版本为docker-ce-19.03.9-3.el7  设置好时间服务器

sed -ri 's/.swap./#&/' /etc/fstab

# 下载nginx

nginx作为rancher的反向代理,用于配置ssl证书并转发

docker pull nginx


1
2
3

# 下载rancher

https://hub.docker.com/rancher

在master端执行如下命令

docker pull rancher/rancher:v2.5.2-linux-amd64

dockerhub 点击overview进入官方站点

docker pull rancher/rancher:v2.7-head

# 运行rancher

将rancher的数据挂载到一个目录下,作为数据持久化

# docker run -d --privileged -p 80:80 -p 443:443 --restart=always --name rancher-v2.5.2 rancher/rancher:v2.5.2-linux-amd64

# 或者以下这样

mkdir -p /mnt/d/rancher_data

docker run -d --privileged -p 80:80 -p 443:443 -v /mnt/d/rancher_data:/var/lib/rancher/ --restart=always --name rancher-v2.5.2 rancher/rancher:v2.5.2-linux-amd64

docker run -d --privileged -p 80:80 -p 443:443 -v /mnt/d/rancher_data:/var/lib/rancher/ --restart=always --name rancher-v2.7 rancher/rancher:v2.7-head
1
2
3
4
5
6
7
8
9

安装最新版本的rancher时必须指定--privileged参数。简单来说使用了改参数后,容器内的root拥有真正的root权限。

在启动时如果需要持久化racher应用数据,可以挂载一个目录。-v /mnt/d/rancher_data:/var/lib/rancher/ 这样rancher的应用数据就存储在了 /mnt/d/rancher_data 目录中。根据官方的建议,rancher的运行内存要求至少4GB内存。运行安装命令后,浏览器访问 https:<主机域名或IP>

浏览器登录 设置密码与rul访问路径,并切换为中文环境

# 新建用户

首先配置一个标准用户:

用户权限:

  • 管理员:所有权限,十分危险,分配需谨慎
  • 受限管理员:除了local集群不能访问,其他集群都可以访问和设置
  • 标准用户:创建新的集群,并管理他自己的集群和项目
  • 基础:只能查看和访问

# 配置新的集群

设置好名称和用户之后,进入高级集群选项

开放好安全组或者防火墙的端口

然后是配置集群的节点主机配置,然后拷贝下面的docker命令到要部署的主机里面执行

多master的意义就是,一个master宕了,另外一个master可以独立工作;为了容错

而keepalive的目的是自动切换

# 添加节点主机

master节点选择etcd和control,复制docker部署命令到master节点主机上运行

worker节点选择work,复制docker部署命令到master节点主机上运行

保存之后,等待即可。如果途中太久不行,就docker stop 并 rm 掉容器,重新再添加一次

# master节点安装kubectl

rancher安装的kubernetes集群,默认没有安装kubectl。意味着在master节点宿主机并不能控制k8s集群,只能在rancher控制台操作,脱离rancher后很不方便

因此在master控制集群要另外安装kubectl工具

# 下载kubectl

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
1

# 复制到master节点

mv ./kubectl /usr/local/bin/kubectl

chmod +x /usr/local/bin/kubectl
1
2
3

# 复制rancher中集群对应的config文件

此时虽然有了kubectl工具,但是还不能用,因为kubectl识别不了master主机上的集群

拷贝了配置文件后,kubectl才能正常使用

mkdir -p ~/.kube
touch ~/.kube/config
1
2

将内容拷贝成config的内容即可

验证

kubectl get nodes
1
编辑 (opens new window)
#rancher
helm包管理工具
Prometheus介绍

← helm包管理工具 Prometheus介绍→

最近更新
01
人生前期重要的能力
05-17
02
防火墙命令
04-11
03
docker-compose部署mysql主从集群
03-22
更多文章>
Theme by Vdoing | Copyright © 2022-2023 Hincky | MIT License | 粤ICP备2022120427号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式