我是靠谱客的博主 怕孤独书包,最近开发中收集的这篇文章主要介绍rancher k8s docker 关系_一起学习rancher-05-rancher2高可用搭建,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一起学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、安装对主机要求及架构

6d8478d5931bbc24563c8f160ab45b2b.png

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

068b3f386e581993bd36bba129d75915.png

负载均衡配置架构:

f8c5d5e0fa27799ff0d48dd1227c579c.png

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 http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server --datastore-endpoint="mysql://root:laolang123@tcp(192.168.201.6:3306)/k3s"

e36bfad658887ee0b8d9a03bb51f8bc3.png

检查安装情况

k3s kubectl get nodes

81035ecb12b8a7fb5f910f575ac5f4df.png

k3s kubectl get pods --all-namespaces

f11b7f6e6de4fdd25670372ba2da0585.png

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

3、安装kubectl

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

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

[kubernetes]

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

# yum install -y kubectl

37f6b6f6ce7655d6c34060bc314dd703.png

将文件/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

e8935052d3595b7bb0b8c4f90985475e.png

当然也可以指定路径

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

85297473434da4b8186b320b5e10b9eb.png

4、helm安装

插入连接

一起学习Kubernetes-01-helm安装

Tar包安装

mkdir /software

cd /software

wget https://get.helm.sh/helm-v3.3.0-linux-amd64.tar.gz

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

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

添加helm命令补全

echo "source > ~/.bash_profile

source !$

查看版本

# helm version

2734ae0ad06b908bc9a0b969bb0c274d.png

添加repo

helm repo add rancher-stable http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/stable

helm repo update

helm repo list

c319b3765cf067bc2b0c5f810b2bc4e7.png

四、部署rancher

1、为 Rancher 创建 Namespace

kubectl create namespace cattle-system

f497a7fd85fce66a9204fda2da3e9cd0.png

2、安装 cert-manager

安装 CustomResourceDefinition 资源

kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.15.0/cert-manager.crds.yaml

为 cert-manager 创建命名空间

kubectl create namespace cert-manager

添加 Jetstack Helm 仓库

helm repo add jetstack https://charts.jetstack.io

更新本地 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

6fee1cab2b8c68a0466e3631667c7d1d.png

等待rancher运行校验

kubectl -n cattle-system rollout status deploy/rancher

56cefe54786ec7d0a747112239c97e96.png
f6395b49fb9669f34fda7d208348d00e.png

查看rancher pod运行情况

# kubectl get pods -n cattle-system

014bce40ba3837f5552453c7e59c265c.png

查看具体部署分布

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

926d3d67010103e83bd19852589f9804.png

部署完毕。

4、配置负载均衡

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

5、域名解析

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

192.168.201.14rancher.wolf.com

6、登录测试

设置一个密码

6cdafa4ba61df4b84bbc105ef12ac96f.png
d9442926185894a81cdd394280d72f7b.png

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

0ecd62b4bdd200f40cff707ebbc8e899.png
f9310ad75131c6757e2b28b90e4c3418.png

安装完毕。

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

参考文档:https://docs.rancher.cn/docs/rancher2/installation/k8s-install/kubernetes-rke/_index

最后

以上就是怕孤独书包为你收集整理的rancher k8s docker 关系_一起学习rancher-05-rancher2高可用搭建的全部内容,希望文章能够帮你解决rancher k8s docker 关系_一起学习rancher-05-rancher2高可用搭建所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部