龙空技术网

一起学习rancher-05-rancher2高可用搭建

北漂的一只it狗 276

前言:

现时同学们对“rancher部署mysql集群”大致比较注意,各位老铁们都想要分析一些“rancher部署mysql集群”的相关知识。那么小编也在网上汇集了一些对于“rancher部署mysql集群””的相关内容,希望你们能喜欢,你们一起来学习一下吧!

一起学rancher系列:

一起学习rancher-01-基本操作

一起学习rancher-02-基本操作

一起学习rancher-03-新版2.5.1和导入k8s

一起学习rancher-04-安装kubernetes集群

一、简介

之前学习了rancher1.6和2.5的基本操作,今天按照生产环境要求部署一套高可用rancher server。

1、关于RKE和k3s:

RKE(Rancher Kubernetes Engine):是经过认证的 Kubernetes 发行版,它拥有对应的 CLI 工具可用于创建和管理 Kubernetes 集群。在 Rancher UI 中创建集群时,它将调用 RKE 来配置 Rancher 启动的 Kubernetes 集群。

K3s (轻量级 Kubernetes): 和 RKE 类似,也是经过认证的 Kubernetes 发行版。它比 RKE 更新,更易用且更轻量化,全部组件都在一个小于 100 MB 的二进制文件中。从 Rancher v2.4 开始,Rancher 可以安装在 K3s 集群上。

2、高可用 Kubernetes 安装:

我们建议使用 Kubernetes 程序包管理器 在专用的 Kubernetes 集群上安装 Rancher。

在 RKE 集群中,需要使用三个节点以实现高可用性。在 K3s 集群中,仅需要两个节点即可。

我们这里基于K3S来安装高可用rancher。

二、安装rancher高可用环境

1、安装对主机要求及架构

K3s安装需求:2个linux节点+一个外部mysql数据库,配置一个负载均衡和一个dns。

负载均衡配置架构:

2、主机环境准备

系统版本:3台centos7.7(2台用于安装k3s,一台为k3s外部mysql)

Docker版本:docker 19.03.13

Mysql版本:5.7

Kubectl版本: kubectl-1.19.3

rancher版本:2.4.8

ip信息如下:

192.168.201.6 mysql5.7.28

192.168.201.3 v1.18.9-k3s1

192.168.201.3 v1.18.9-k3s1

三、安装k3s集群

1、安装mysql

groupadd -r mysql

useradd -r -g mysql mysql

下载

mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

解压安装包

tar zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

创建数据库目录

mkdir -p /data/mysql/data

mv mysql-5.7.28-linux-glibc2.12-x86_64/* /data/mysql/

更改目录权限

chown -R mysql:mysql /data/mysql

初始化数据库

cd /data/mysql

./bin/mysqld --initialize --user=mysql --basedir=/data/mysql/ --datadir=/data/mysql/data/

记住密码:i*8NSPwHtVtd

创建RSA private key

./bin/mysql_ssl_rsa_setup --datadir=/data/mysql/data/

添加 MySQL 到开机启动

cp support-files/mysql.server /etc/init.d/mysqld

修改/etc/init.d/mysqld中的basedir和datadir

basedir=/data/mysql

datadir=/data/mysql/datachkconfig mysqld on

修改环境变量

vi /etc/profileexport

PATH=/data/mysql/bin:$PATHsource

/etc/profilemv /etc/my.cnf /etc/my.cnf.bak

touch /data/mysql/my.cnf

My.cnf文件内容如下

[mysqld]character-set-server=utf8

datadir=/data/mysql/data

socket=/data/mysql/mysql.sock

symbolic-links=0!includedir /etc/my.cnf.d

[client]character-set-server=utf8

socket=/data/mysql/mysql.sock

[mysql]character-set-server=utf8

socket=/data/mysql/mysql.sock

启动

mysql/etc/init.d/mysqld start

ln -s /data/mysql/mysql.sock /tmp/mysql.sock

登陆

mysql -uroot -pi*8NSPwHtVtd

修改密码

alter user 'root'@'localhost' identified by "laolang123";

flush privileges;

配置数据库远程登录

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'laolang123' WITH GRANT OPTION;

flush privileges;

2、安装k3s

分别在两台k3s服务器上执行

curl -sfL | INSTALL_K3S_MIRROR=cn sh -s - server --datastore-endpoint="mysql://root:laolang123@tcp(192.168.201.6:3306)/k3s"

检查安装情况

k3s kubectl get nodes

k3s kubectl get pods --all-namespaces

安装K3s 时,会在节点上/etc/rancher/k3s/k3s.yaml位置创建一个kubeconfig文件。该文件包含用于完全访问集群的凭据。

3、安装kubectl

国外直接下载,被墙了,网上找了一个repo

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=

EOF

# yum install -y kubectl

将文件/etc/rancher/k3s/k3s.yaml复制并保存到本地计算机上的~/.kube/config文件中

cp /etc/rancher/k3s/k3s.yaml ~/.kube/config

kubectl --kubeconfig /etc/rancher/k3s/k3s.yaml get pods --all-namespaces

试试命令

kubectl get pods --all-namespaces

当然也可以指定路径

kubectl --kubeconfig /etc/rancher/k3s/k3s.yaml get pods --all-namespaces

4、helm安装

插入连接

一起学习Kubernetes-01-helm安装

Tar包安装

mkdir /software

cd /software

wget

tar xf helm-v3.3.0-linux-amd64.tar.gz

cp linux-amd64/helm /usr/local/bin/

添加helm命令补全

echo "source <(helm completion bash)" >> ~/.bash_profile

source !$

查看版本

# helm version

添加repo

helm repo add rancher-stable

helm repo update

helm repo list

四、部署rancher

1、为 Rancher 创建 Namespace

kubectl create namespace cattle-system

2、安装 cert-manager

安装 CustomResourceDefinition 资源

kubectl apply --validate=false -f

为 cert-manager 创建命名空间

kubectl create namespace cert-manager

添加 Jetstack Helm 仓库

helm repo add jetstack

更新本地 Helm chart 仓库缓存

helm repo update

安装 cert-manager Helm chart

helm install cert-manager jetstack/cert-manager --namespace cert-manager --version v0.15.0

3、安装rancher

helm install rancher rancher-stable/rancher --namespace cattle-system --set hostname=rancher.wolf.com

等待rancher运行校验

kubectl -n cattle-system rollout status deploy/rancher

查看rancher pod运行情况

# kubectl get pods -n cattle-system

查看具体部署分布

# kubectl get pods -o wide -n cattle-system

部署完毕。

4、配置负载均衡

我这里是云主机,直接使用云的负载均衡

5、域名解析

测试环境没有dns服务器,不要紧,配置一条hosts

192.168.201.14rancher.wolf.com

6、登录测试

设置一个密码

进去看一下工作负载(还在update)

安装完毕。

今天rancher高可用安装完美完成。回头测试一下在k8s上安装rancher。

参考文档:

标签: #rancher部署mysql集群