自由的羽毛 发表于 2023-7-6 15:08:24

rke2安装单节点k8s

环境

cat /proc/versionLinux version 3.10.0-957.21.3.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Tue Jun 18 16:35:19 UTC 2019
root@10.101.1.30 ~$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core)
安装

# 通过rke2安装k8s
curl -sfL https://get.rke2.io | sh -

# 开机启动rke2-server
systemctl enable rke2-server.service

# 启动rke2-server 启动有点慢,耐心等待即可
systemctl start rke2-server.service查看rke2-server状态

systemctl status rke2-server.service显示running表示启动成功,如下:
● rke2-server.service - Rancher Kubernetes Engine v2 (server)
Loaded: loaded (/usr/lib/systemd/system/rke2-server.service; disabled; vendor preset: disabled)
Active: active (running) since 三 2023-07-05 14:41:59 CST; 43s ago
检查 RKE2 是否正常运行

/var/lib/rancher/rke2/bin/kubectl \
      --kubeconfig /etc/rancher/rke2/rke2.yaml get nodes当输出以下结果, 状态为Ready时,表示k8s已经安装完毕
NAME    STATUS   ROLES                     AGE   VERSION
node2   Ready    control-plane,etcd,master   7m48s   v1.25.11+rke2r1
测试集群 Pod 的健康状况

/var/lib/rancher/rke2/bin/kubectl \
      --kubeconfig /etc/rancher/rke2/rke2.yaml get pods --all-namespaces拷贝脚本和k8s配置 (可选)

/etc/rancher/rke2/rke2.yaml 需要妥善保存,它包含了连接k8s的凭证.后续用kubectl操作k8s都要读取该文件
cp /var/lib/rancher/rke2/bin/kubectl /usr/local/bin/kubectl
cp /etc/rancher/rke2/rke2.yaml .kube/config

# 拷贝脚本和配置之后,以上命令可以简化为 .前提是/usr/local/bin/已经添加到了环境变量中
kubectl get nodes
kubectl get pods --all-namespaces完全卸载

rke2-uninstall.sh 内容如下
#!/bin/sh
set -ex

# make sure we run as root
if [ ! $(id -u) -eq 0 ]; then
    echo "$(basename "${0}"): must be run as root" >&2
    exit 1
fi

# check_target_mountpoint return success if the target directory is on a dedicated mount point
check_target_mountpoint() {
    mountpoint -q "$1"
}

# check_target_ro returns success if the target directory is read-only
check_target_ro() {
    touch "$1"/.rke2-ro-test && rm -rf "$1"/.rke2-ro-test
    test $? -ne 0
}

. /etc/os-release
if [ -r /etc/redhat-release ] || [ -r /etc/centos-release ] || [ -r /etc/oracle-release ]; then
    # If redhat/oracle family os is detected, double check whether installation mode is yum or tar.
    # yum method assumes installation root under /usr
    # tar method assumes installation root under /usr/local
    if rpm -q rke2-common >/dev/null 2>&1; then
      : "${INSTALL_RKE2_ROOT:="/usr"}"
    else
      : "${INSTALL_RKE2_ROOT:="/usr/local"}"
    fi
elif [ "${ID_LIKE%%[ ]*}" = "suse" ]; then
    if rpm -q rke2-common >/dev/null 2>&1; then
      : "${INSTALL_RKE2_ROOT:="/usr"}"
      if [ -x /usr/sbin/transactional-update ]; then
            transactional_update="transactional-update -c --no-selfupdate -d run"
      fi
    elif check_target_mountpoint "/usr/local" || check_target_ro "/usr/local"; then
      # if /usr/local is mounted on a specific mount point or read-only then
      # install we assume that installation happened in /opt/rke2
      : "${INSTALL_RKE2_ROOT:="/opt/rke2"}"
    else
      : "${INSTALL_RKE2_ROOT:="/usr/local"}"
    fi
else
    : "${INSTALL_RKE2_ROOT:="/usr/local"}"
fi

uninstall_killall()
{
    _killall="$(dirname "$0")/rke2-killall.sh"
    if [ -e "${_killall}" ]; then
      eval "${_killall}"
    fi
}

uninstall_disable_services()
{
    if command -v systemctl >/dev/null 2>&1; then
      systemctl disable rke2-server || true
      systemctl disable rke2-agent || true
      systemctl reset-failed rke2-server || true
      systemctl reset-failed rke2-agent || true
      systemctl daemon-reload
    fi
}

uninstall_remove_files()
{   
   
    if [ -r /etc/redhat-release ] || [ -r /etc/centos-release ] || [ -r /etc/oracle-release ]; then
      yum remove -y "rke2-*"

      rm -f /etc/yum.repos.d/rancher-rke2*.repo
    fi

    if [ "${ID_LIKE%%[ ]*}" = "suse" ]; then
         if rpm -q rke2-common >/dev/null 2>&1; then
            # rke2 rpm detected
            uninstall_cmd="zypper remove -y rke2-server rke2-agent rke2-common rke2-selinux"
            if [ "${TRANSACTIONAL_UPDATE=false}" != "true" ] && [ -x /usr/sbin/transactional-update ]; then
                uninstall_cmd="transactional-update -c --no-selfupdate -d run $uninstall_cmd"
            fi
            $uninstall_cmd
            rm -f /etc/zypp/repos.d/rancher-rke2*.repo
         fi
    fi

    $transactional_update find "${INSTALL_RKE2_ROOT}/lib/systemd/system" -name rke2-*.service -type f -delete
    $transactional_update find "${INSTALL_RKE2_ROOT}/lib/systemd/system" -name rke2-*.env -type f -delete
    find /etc/systemd/system -name rke2-*.service -type f -delete
    $transactional_update rm -f "${INSTALL_RKE2_ROOT}/bin/rke2"
    $transactional_update rm -f "${INSTALL_RKE2_ROOT}/bin/rke2-killall.sh"
    $transactional_update rm -rf "${INSTALL_RKE2_ROOT}/share/rke2"
    rm -rf /etc/rancher/rke2
    rm -rf /etc/rancher/node
    rm -d /etc/rancher || true
    rm -rf /etc/cni
    rm -rf /opt/cni/bin
    rm -rf /var/lib/kubelet
    rm -rf /var/lib/rancher/rke2
    rm -d /var/lib/rancher || true

    if type fapolicyd >/dev/null 2>&1; then
      if [ -f /etc/fapolicyd/rules.d/80-rke2.rules ]; then
            rm -f /etc/fapolicyd/rules.d/80-rke2.rules
      fi
      fagenrules --load
      systemctl restart fapolicyd
    fi
}

uninstall_remove_self()
{
    $transactional_update rm -f "${INSTALL_RKE2_ROOT}/bin/rke2-uninstall.sh"
}

uninstall_remove_policy()
{
    semodule -r rke2 || true
}

uninstall_killall
trap uninstall_remove_self EXIT
uninstall_disable_services
uninstall_remove_files
uninstall_remove_policy
sudo rm -rf ~/.kube/参考

为 Rancher 设置高可用的 RKE2 Kubernetes 集群

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: rke2安装单节点k8s