Rancher 运维 - 从零开始学习 | RKE部署K8S | 容器管理
Posted serendipity_cat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rancher 运维 - 从零开始学习 | RKE部署K8S | 容器管理相关的知识,希望对你有一定的参考价值。
Rancher 运维 - 从零开始学习 | RKE部署K8S | 容器管理
一、概述
Rancher是一款开源的企业级容器管理平台
功能:
① 基础设施编排
Rancher提供一套灵活的基础设施服务,并通过容器部署
② 容器编排与调度
能够适应当前全部主流的编排调度引擎,Rancher通过自身的Cattle容器编排调度引擎编排自己的基础设施服务及其他集群的配置管理与升级
③ 应用商店
可以提供一键部署由多个容器组成的服务,用户可以管理这个部署的应用并在有更新时进行自动化的升级,除了私有应用商店外也可以使用Rancher社区提供的应用商店
④ 企业级权限管理
Rancher支持灵活的插件式的用户认证。支持Active Directory,LDAP, Github等 认证方式。 Rancher支持在环境级别的基于角色的访问控制 (RBAC),可以通过角色来配置某个用户或者用户组对开发环境或者生产环境的访问权限
二、RKE
RKE是一款非常简单,运行速度快的Kubernetes安装程序,支持各种运行平台
① REK1 和 RKE2 的区别
RKE1 依赖 Docker,通过Docker来部署和管理控制平面组件及K8S的容器运行时间
RKE2 不依赖于 Docker,它将控制平面组件作为静态pod启动,由kubelet进行管理
三、RKE1 部署 K8S
节点名 | IP地址 | 部署服务 |
---|---|---|
node1 | 192.168.0.10 | K8S-Master |
node2 | 192.168.0.20 | K8S-Node1 |
node3 | 192.168.0.30 | K8S-Node2 |
rancher | 192.168.0.40 | rancher-RKE |
1.1 基础环境部署
① SSH用户必须是节点上docker用户组的成员
groupadd docker && usermod -aG docker <UserName>
给予普通用户sudo权限
visudo
#102行增加
fox ALL=(ALL) ALL
② 禁用交换功能(Swap)
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
③ 修改主机名[可选]
hostnamectl set-hostname <hostname>
④ 配置互相
cat >> /etc/hosts << EOF
192.168.0.10 node1
192.168.0.20 node2
192.168.0.30 node3
192.168.0.40 rancher
EOF
因为需要以普通用户执行,所以先进入其宿主目录
cd /home/<UserNmae>
su <UserNmae>
mkdir ./ssh
ssh-keygen
ssh-copy-id <UserName>@<HostName>
chown -R /home/<UserNmae>
chmod 700 /home/<UserNmae>/.ssh
chmod 600 /home/<UserNmae>/.ssh/authorized_keys
⑤ 启用IPVS模块
yum install ipset ipvsadm -y
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
⑥ 安装 DockerCE [node节点]
⑦ 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/sysconfig/selinux
SELINUX=disabled
⑧ 配置时间同步
yum install -y chrony
systemctl enable --now chronyd
timedatectl set-timezone Asia/Shanghai
1.2 部署 K8S [rancher节点]
官方项目地址:https://github.com/rancher/rke/releases
cd /home/<UserName>
此下载链接为国内加速链接,非官方链接,可能存在风险,生产环境不推荐使用
wget https://download.fastgit.org/rancher/rke/releases/download/v1.2.11/rke_linux-amd64
mv rke_linux-amd64 rke && chmod +x rke
① 生成配置文件
./rke config
②启动集群
./rke up
启动完成后会产生三个文件 [官方原文]
cluster.yml
:RKE 集群的配置文件kube_config_cluster.yml
:该集群的Kubeconfig 文件包含了获取该集群所有权限的认证凭据cluster.rkestate
:Kubernetes 集群状态文件,包含了获取该集群所有权限的认证凭据,使用 RKE v0.2.0时才会创建这个文件
③ 安装Kubectl
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=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
mkdir ~/.kube
cp kube_config_cluster.yml ~/.kube/config
echo "export KUBECONFIG=/home/fox/.kube/config" >> /etc/profile
source /etc/profile
④ 验证
kubectl get no,cs -o wide
1.3 安装 Rancher [rancher节点]
① 部署 Helm
官方下载地址:https://github.com/helm/helm/releases
此下载链接为国内加速链接,非官方链接,可能存在风险,生产环境不推荐使用
wget https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz
tar -zxvf helm-v3.6.3-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/
helm version
② 部署 Ingress nginx
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm install ingress-nginx ingress-nginx/ingress-nginx \\
--namespace ingress-nginx \\
--create-namespace \\
--set controller.image.repository=giantswarm/ingress-nginx-controller \\
--set controller.image.tag=v0.45.0 \\
--set controller.image.digest=null \\
--set controller.service.type=NodePort
kubectl -n ingress-nginx get pods,svc
③ 部署 rancher
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
此下载链接为国内加速链接,非官方链接,可能存在风险,生产环境不推荐使用
kubectl apply --validate=false -f https://hub.fastgit.org/jetstack/cert-manager/releases/download/v0.15.0/cert-manager.crds.yaml
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager \\
--namespace cert-manager \\
--create-namespace \\
--version v0.15.0 \\
jetstack/cert-manager
kubectl create namespace cattle-system
helm install rancher \\
--namespace cattle-system \\
--set hostname=ranchercat.com \\
--version 2.5.9 \\
rancher-latest/rancher
kubectl get pods -A
以上是关于Rancher 运维 - 从零开始学习 | RKE部署K8S | 容器管理的主要内容,如果未能解决你的问题,请参考以下文章
Rancher 运维 - 从零开始学习 | RKE部署K8S | 容器管理
Rancher 运维 - 从零开始学习 | RKE部署K8S | 容器管理