基于rancher搭建k8s

打印 上一主题 下一主题

主题 904|帖子 904|积分 2712

快速搭建rancher

-v 用来挂载证书,如果没有证书,可以删除,默认使用rancher内置的自签证书
  1. docker run -d --name rancher --privileged --restart=unless-stopped \
  2.     -p 10080:80 -p 10443:443 \
  3.     -v /root/tmp/rancher.mb.com.crt:/etc/rancher/ssl/cert.pem \
  4.     -v /root/tmp/rancher.mb.com.key:/etc/rancher/ssl/key.pem \
  5.     -v /root/tmp/cacerts.pem:/etc/rancher/ssl/cacerts.pem \
  6.     rancher/rancher:v2.7.5
复制代码
访问 https://ip:10443

rancher启动较慢,可以稍等片刻,大约半分钟,即可访问。前提是防火墙放行端口10443
获取rancher UI 默认的登录密码

浏览器访问到rancher的登录页面后,执行shell  docker logs  rancher  2>&1 | grep "Bootstrap Password:"   查看默认的登录密码
登录成功后,进入集群管理


创建集群







由于docker run的时候没有信任的证书,所以此处打勾

复制注册命令在需要安装的k8s机器上执行命令,静默安装. 我这边4h8g的机器大概在5分钟内安装完毕
rancher查看安装日志

安装过程中,会看到些许ERROR日志, 只要这个日志不会卡在那里1分钟以上, 就不要人为干预,rancher会自行调整
  1. docker logs -f rancher
复制代码
安装过程中的图


安装完成。节点状态变成Active,表示k8s可用。

需要安装k8s集群时,拿着命令在目标机上执行即可

遇到的坑

执行创建k8s的命令后, 一直都在Update状态


  • 背景说明:安装完成后,想再折腾一下,于是删除节点,再重复上面的操作,发现一直都创建不成功
  • 解决办法

    • 在rancher移除节点
    • 在rancher集群管理,删除前面创建的集群
    • 在k8s机器上执行卸载命令, 命令一般放在/usr/local/bin目录,可以通过 shell /usr/local/bin/k3s-uninstall.sh  查找
    • 如果安装的k3s,执行 k3s-uninstall.sh 和 rancher-system-agent-uninstall.sh ;如果安装的是rke2,则卸载rke2的命令,rke2卸载命令的查找方法和k3s的查找方法类似

卸载命令备份

这些命令是rancher安装集群的时候自动生成的,做个备份在这里,防止失联
k3s-uninstall.sh
  1. #!/bin/sh
  2. set -x
  3. [ $(id -u) -eq 0 ] || exec sudo $0 $@
  4. /usr/local/bin/k3s-killall.sh
  5. if command -v systemctl; then
  6.     systemctl disable k3s
  7.     systemctl reset-failed k3s
  8.     systemctl daemon-reload
  9. fi
  10. if command -v rc-update; then
  11.     rc-update delete k3s default
  12. fi
  13. rm -f /etc/systemd/system/k3s.service
  14. rm -f /etc/systemd/system/k3s.service.env
  15. remove_uninstall() {
  16.     rm -f /usr/local/bin/k3s-uninstall.sh
  17. }
  18. trap remove_uninstall EXIT
  19. if (ls /etc/systemd/system/k3s*.service || ls /etc/init.d/k3s*) >/dev/null 2>&1; then
  20.     set +x; echo 'Additional k3s services installed, skipping uninstall of k3s'; set -x
  21.     exit
  22. fi
  23. for cmd in kubectl crictl ctr; do
  24.     if [ -L /usr/local/bin/$cmd ]; then
  25.         rm -f /usr/local/bin/$cmd
  26.     fi
  27. done
  28. rm -rf /etc/rancher/k3s
  29. rm -rf /run/k3s
  30. rm -rf /run/flannel
  31. rm -rf /var/lib/rancher/k3s
  32. rm -rf /var/lib/kubelet
  33. rm -f /usr/local/bin/k3s
  34. rm -f /usr/local/bin/k3s-killall.sh
  35. if type yum >/dev/null 2>&1; then
  36.     yum remove -y k3s-selinux
  37.     rm -f /etc/yum.repos.d/rancher-k3s-common*.repo
  38. elif type rpm-ostree >/dev/null 2>&1; then
  39.     rpm-ostree uninstall k3s-selinux
  40.     rm -f /etc/yum.repos.d/rancher-k3s-common*.repo
  41. elif type zypper >/dev/null 2>&1; then
  42.     uninstall_cmd="zypper remove -y k3s-selinux"
  43.     if [ "${TRANSACTIONAL_UPDATE=false}" != "true" ] && [ -x /usr/sbin/transactional-update ]; then
  44.         uninstall_cmd="transactional-update --no-selfupdate -d run $uninstall_cmd"
  45.     fi
  46.     $uninstall_cmd
  47.     rm -f /etc/zypp/repos.d/rancher-k3s-common*.repo
  48. fi
复制代码
rancher-system-agent-uninstall.sh
  1. #!/bin/sh
  2. if [ ! $(id -u) -eq 0 ]; then
  3.   fatal "This script must be run as root."
  4. fi
  5. # Environment variables:
  6. #   System Agent Variables
  7. #   - CATTLE_AGENT_CONFIG_DIR (default: /etc/rancher/agent)
  8. #   - CATTLE_AGENT_VAR_DIR (default: /var/lib/rancher/agent)
  9. #   - CATTLE_AGENT_BIN_PREFIX (default: /usr/local)
  10. #
  11. # warn logs the given argument at warn log level.
  12. warn() {
  13.     echo "[WARN] " "$@" >&2
  14. }
  15. # check_target_mountpoint return success if the target directory is on a dedicated mount point
  16. check_target_mountpoint() {
  17.     mountpoint -q "${CATTLE_AGENT_BIN_PREFIX}"
  18. }
  19. # check_target_ro returns success if the target directory is read-only
  20. check_target_ro() {
  21.     touch "${CATTLE_AGENT_BIN_PREFIX}"/.r-sa-ro-test && rm -rf "${CATTLE_AGENT_BIN_PREFIX}"/.r-sa-ro-test
  22.     test $? -ne 0
  23. }
  24. setup_env() {
  25.     if [ -z "${CATTLE_AGENT_CONFIG_DIR}" ]; then
  26.         CATTLE_AGENT_CONFIG_DIR=/etc/rancher/agent
  27.     fi
  28.     if [ -z "${CATTLE_AGENT_VAR_DIR}" ]; then
  29.         CATTLE_AGENT_VAR_DIR=/var/lib/rancher/agent
  30.     fi
  31.     # --- resources are installed to /usr/local by default, except if /usr/local is on a separate partition or is
  32.     # --- read-only in which case we go into /opt/rancher-system-agent. If variable isn't passed and this criteria is
  33.     # --- true, assume that is what was done, since removing from /usr/local wouldn't be possible anyway.
  34.     if [ -z "${CATTLE_AGENT_BIN_PREFIX}" ]; then
  35.         CATTLE_AGENT_BIN_PREFIX="/usr/local"
  36.         if check_target_mountpoint || check_target_ro; then
  37.             CATTLE_AGENT_BIN_PREFIX="/opt/rancher-system-agent"
  38.             warn "/usr/local is read-only or a mount point; checking ${CATTLE_AGENT_BIN_PREFIX}"
  39.         fi
  40.     fi
  41. }
  42. uninstall_stop_services() {
  43.     if command -v systemctl >/dev/null 2>&1; then
  44.         systemctl stop rancher-system-agent
  45.     fi
  46. }
  47. uninstall_remove_self() {
  48.     rm -f "${CATTLE_AGENT_BIN_PREFIX}/bin/rancher-system-agent-uninstall.sh"
  49. }
  50. uninstall_disable_services()
  51. {
  52.     if command -v systemctl >/dev/null 2>&1; then
  53.         systemctl disable rancher-system-agent || true
  54.         systemctl reset-failed rancher-system-agent || true
  55.         systemctl daemon-reload
  56.     fi
  57. }
  58. uninstall_remove_files() {
  59.     rm -f /etc/systemd/system/rancher-system-agent.service
  60.     rm -f /etc/systemd/system/rancher-system-agent.env
  61.     rm -rf ${CATTLE_AGENT_VAR_DIR}
  62.     rm -rf ${CATTLE_AGENT_CONFIG_DIR}
  63.     rm -f "${CATTLE_AGENT_BIN_PREFIX}/bin/rancher-system-agent"
  64. }
  65. setup_env
  66. uninstall_stop_services
  67. trap uninstall_remove_self EXIT
  68. uninstall_disable_services
  69. uninstall_remove_files
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

半亩花草

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表