k3s 集群安装脚本

脚本安装

适用于任何master和agent节点数量的安装,配置参数按需修改

#!/bin/bash
set -e
set -o noglob

Echo_Yellow()
{
  echo $(Color_Text "$1" "33")
}

Color_Text()
{
  echo -e " \e[0;$2m$1\e[0m"
}


function install_docker(){
    # download docker-ce.repo
    wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    # install docker-ce
    yum install docker-ce -y
    # setup registry-mirrors
    mkdir -p /etc/docker
    tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://c0estsgw.mirror.aliyuncs.com"]
}
EOF

    systemctl enable docker
    systemctl daemon-reload
    systemctl restart docker

}

        Echo_Yellow  " You have 2 options for your k3s install."
        echo "1: Install master"
        echo "2: Install work"
        read -p "Enter your choice (1, 2): " DBSelect
		case "${DBSelect}" in
			1)
				read -p "you are sure you wang to install master01/masterXX?master01(default)" input
				input=${input:-"master01"}
				if [ $input = "master01" ];then
				echo "master01"
				curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server  --docker --token=SECRET --cluster-init
				fi
				
				if [ $input != "master01" ];then
				read -p "input master01 address ? (https://192.168.3.163:6443)" input
				curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server --docker --server $input --token=SECRET
				fi
				;;
			2)
				read -p "input master01 URL address ? (https://192.168.3.163:6443)" input
				curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - agent --docker --server $input --token=SECRET
		esac

K3s Server 配置参考

NAME:
   k3s server - 运行K3s server

USAGE:
   k3s server [选项]

选项:
   --config FILE, -c FILE                     (config) 从FILE加载配置(默认:"/etc/rancher/k3s/config.yaml" ) [$K3S_CONFIG_FILE]
   --debug                                    (logging) 开启debug调试日志 [$K3S_DEBUG]
   -v value                                   (logging) 日志级别详细程度的数字 (默认: 0)
   --vmodule value                            (logging) 以逗号分隔的pattern=N设置列表,用于文件过滤的日志记录
   --log value, -l value                      (logging) 记录到文件
   --alsologtostderr                          (logging) 记录到标准错误输出和文件(如果设置)
   --bind-address value                       (listener) k3s绑定地址 (默认: 0.0.0.0)
   --https-listen-port value                  (listener) HTTPS监听端口 (默认: 6443)
   --advertise-address value                  (listener) apiserver用来向集群成员发布的IP地址 (默认: node-external-ip/node-ip)
   --advertise-port value                     (listener) apiserver用于通告集群成员的端口 (默认: listen-port) (默认: 0)
   --tls-san value                            (listener) 在TLS证书中添加其他主机名或IP作为主题备用名称
   --data-dir value, -d value                 (data) 存放数据的目录 默认 /var/lib/rancher/k3s or ${HOME}/.rancher/k3s(如果不是root用户)
   --cluster-cidr value                       (networking) 用于Pod IP的网络CIDR (默认: "10.42.0.0/16")
   --service-cidr value                       (networking) 用于service IP的网络CIDR (默认: "10.43.0.0/16")
   --service-node-port-range value            (networking) 为具有 NodePort 可见性的服务保留的端口范围 (默认: "30000-32767")
   --cluster-dns value                        (networking) 用于coredns服务的集群IP。应该在您的`service-cidr`范围内 (默认: 10.43.0.10)
   --cluster-domain value                     (networking) 集群域名 (默认: "cluster.local")
   --flannel-backend value                    (networking) 'none', 'vxlan', 'ipsec', 'host-gw', 或 'wireguard'中的一个 (默认: "vxlan")
   --token value, -t value                    (cluster) 用于将server或agent加入集群的共享secret。 [$K3S_TOKEN]
   --token-file value                         (cluster) 包含cluster-secret/token的文件 [$K3S_TOKEN_FILE]
   --write-kubeconfig value, -o value         (client) 将管理客户端的kubeconfig写入这个文件。 [$K3S_KUBECONFIG_OUTPUT]
   --write-kubeconfig-mode value              (client) 用这种模式编写kubeconfig,例如:644 [$K3S_KUBECONFIG_MODE]
   --etcd-arg value                           (flags) 自定义etcd进程的参数
   --kube-apiserver-arg value                 (flags) 自定义kube-apiserver进程的参数
   --kube-scheduler-arg value                 (flags) 自定义kube-scheduler进程的参数
   --kube-controller-manager-arg value        (flags) 自定义kube-controller-manager进程的参数
   --kube-cloud-controller-manager-arg value  (flags) 自定义kube-cloud-controller-manager进程的参数
   --datastore-endpoint value                 (db) 指定 etcd、Mysql、Postgres 或 Sqlite(默认)数据源名称 [$K3S_DATASTORE_ENDPOINT]
   --datastore-cafile value                   (db) TLS证书授权文件,用于确保数据存储后端通信的安全 [$K3S_DATASTORE_CAFILE]
   --datastore-certfile value                 (db) TLS认证文件,用于确保数据存储后端通信的安全 [$K3S_DATASTORE_CERTFILE]
   --datastore-keyfile value                  (db) 用于保护数据存储后端通信的TLS密钥文件 [$K3S_DATASTORE_KEYFILE]
   --etcd-expose-metrics                      (db) 将 etcd 指标公开给客户端界面。(默认为 false)
   --etcd-disable-snapshots                   (db) 禁用自动 etcd 快照
   --etcd-snapshot-name value                 (db) 设置 etcd 快照的基本名称。默认值: etcd-snapshot
   --etcd-snapshot-schedule-cron value        (db) cron 规范中的快照间隔时间。 例如。每 5 小时 "\* \*/5 \* \* \*" (默认值: "0 \*/12 \* \* \*")
   --etcd-snapshot-retention value            (db) 要保留的快照数量 (默认值: 5)
   --etcd-snapshot-dir value                  (db) 保存数据库快照的目录. (默认 location: ${data-dir}/db/snapshots)
   --etcd-s3                                  (db) 启用备份到 S3
   --etcd-s3-endpoint value                   (db) S3 endpoint url (默认值: "s3.amazonaws.com")
   --etcd-s3-endpoint-ca value                (db) S3 自定义 CA 证书连接到 S3 endpoint
   --etcd-s3-skip-ssl-verify                  (db) 禁用 S3 的 SSL 证书验证
   --etcd-s3-access-key value                 (db) S3 access key [$AWS_ACCESS_KEY_ID]
   --etcd-s3-secret-key value                 (db) S3 secret key [$AWS_SECRET_ACCESS_KEY]
   --etcd-s3-bucket value                     (db) S3 bucket 名称
   --etcd-s3-region value                     (db) S3 region / bucket 位置 (可选) 默认值: "us-east-1")
   --etcd-s3-folder value                     (db) S3 文件夹
   --default-local-storage-path value         (storage) 本地存储类的默认存储路径
   --disable value                            (components) 不需要部署的组件,删除任何已部署的组件 (有效项目:coredns, servicelb, traefik,local-storage, metrics-server)
   --disable-scheduler                        (components) 禁用Kubernetes默认调度器
   --disable-cloud-controller                 (components) 禁用k3s默认云控制管理器
   --disable-kube-proxy                       (components) 禁止运行 kube-proxy
   --disable-network-policy                   (components) 用K3S默认网络策略控制器
   --node-name value                          (agent/node) 节点名称 [$K3S_NODE_NAME]
   --with-node-id                             (agent/node) 将ID附加到节点名称
   --node-label value                         (agent/node) 用一组标签注册和启动kubelet
   --node-taint value                         (agent/node) 用一组污点注册kubelet
   --image-credential-provider-bin-dir value  (agent/node) 凭证提供程序插件二进制文件所在目录的路径(默认:"/var/lib/rancher/credentialprovider/bin")
   --image-credential-provider-config value   (agent/node) 凭证提供者插件配置文件的路径 (默认: "/var/lib/rancher/credentialprovider/config.yaml")
   --docker                                   (agent/runtime) 用docker代替containerd
   --container-runtime-endpoint value         (agent/runtime) 禁用嵌入式containerd,使用替代的CRI实现
   --pause-image value                        (agent/runtime) 针对containerd或Docker的自定义pause镜像 (默认: "docker.io/rancher/pause:3.1")
   --snapshotter value                        (agent/runtime) 覆盖默认的 containerd 快照程序 (默认: "overlayfs")
   --private-registry value                   (agent/runtime) 私有镜像仓库配置文件 (默认: "/etc/rancher/k3s/registries.yaml")
   --node-ip value, -i value                  (agent/networking) 为节点发布的IP地址
   --node-external-ip value                   (agent/networking) 对外发布节点的IP地址
   --resolv-conf value                        (agent/networking) Kubelet resolv.conf 文件 [$K3S_RESOLV_CONF]
   --flannel-iface value                      (agent/networking) 覆盖默认的flannel接口
   --flannel-conf value                       (agent/networking) 覆盖默认的flannel文件
   --kubelet-arg value                        (agent/flags) 自定义kubelet进程的参数
   --kube-proxy-arg value                     (agent/flags) 自定义kube-proxy进程的参数
   --protect-kernel-defaults                  (agent/node) 内核调优行为。如果设置,如果内核可调参数与 kubelet 默认值不同,则会出错。
   --rootless                                 (experimental) 运行 rootless
   --agent-token value                        (experimental/cluster) 用于将agent加入集群但不用于server的共享密钥 [$K3S_AGENT_TOKEN]
   --agent-token-file value                   (experimental/cluster) 包含agent secret的文件 [$K3S_AGENT_TOKEN_FILE]
   --server value, -s value                   (experimental/cluster) 要连接的k3s server,用于加入集群 [$K3S_URL]
   --cluster-init                             (experimental/cluster) 初始化为新的集群master [$K3S_CLUSTER_INIT]
   --cluster-reset                            (experimental/cluster) 忽略所有节点,成为一个新集群的集群master [$K3S_CLUSTER_RESET]
   --cluster-reset-restore-path value         (db) 要恢复的快照文件的路径
   --secrets-encryption                       (experimental) 启用Secret加密
   --system-default-registry value            (image) 用于所有系统镜像的私有注册表 [$K3S_SYSTEM_DEFAULT_REGISTRY]
   --selinux                                  (agent/node) 在 containerd 中启用 SELinux [$K3S_SELINUX]
   --lb-server-port value                     (agent/node) 客户端负载均衡器的本地端口。如果 supervisor 和 apiserver 不在同一个主机,则 apiserver 客户端负载均衡器也将使用比该端口小 1 的额外端口。(默认:6444) [$K3S_LB_SERVER_PORT]
   --no-flannel                               (deprecated) 使用 --flannel-backend=none
   --no-deploy value                          (deprecated) 不需要部署的组件 (有效选项: coredns, servicelb, traefik, local-storage, metrics-server)
   --cluster-secret value                     (deprecated) 使用 --token [$K3S_CLUSTER_SECRET]

K3s Agent CLI  

名称:
   k3s agent - 运行agent节点

使用:
   k3s agent [选项]

选项:
   --config FILE, -c FILE                     (config) 通过文件加载配置 (默认值:"/etc/rancher/k3s/config.yaml") [$K3S_CONFIG_FILE]
   --debug                                    (logging) 打开 debug 日志 [$K3S_DEBUG]
   -v value                                   (logging) 日志级别详细程度的数字 (默认值:0)
   --vmodule value                            (logging) 以逗号分隔的 pattern=N 设置列表,用于文件过滤的日志记录
   --log value, -l value                      (logging) 记录到文件
   --alsologtostderr                          (logging) 记录到标准错误输出和文件(如果设置)
   --token value, -t value                    (cluster) 用于身份认证的 token [$K3S_TOKEN]
   --token-file value                         (cluster) 用于身份认证的 token 文件 [$K3S_TOKEN_FILE]
   --server value, -s value                   (cluster) 要连接的 k3s Server [$K3S_URL]
   --data-dir value, -d value                 (agent/data) 存储数据的目录 (默认值:"/var/lib/rancher/k3s")
   --node-name value                          (agent/node) 节点名 [$K3S_NODE_NAME]
   --with-node-id                             (agent/node) 将 ID 添加到节点名后
   --node-label value                         (agent/node) 使用标签组来注册和启动 kubelet
   --node-taint value                         (agent/node) 使用污点组来注册 kubelet
   --image-credential-provider-bin-dir value  (agent/node) 凭证提供商插件二进制文件的路径 (默认值:"/var/lib/rancher/credentialprovider/bin")
   --image-credential-provider-config value   (agent/node) 凭证提供商插件配置文件的路径 (默认值:"/var/lib/rancher/credentialprovider/config.yaml")
   --docker                                   (agent/runtime) 用 docker 代替 containerd
   --container-runtime-endpoint value         (agent/runtime) 禁用嵌入式 containerd,使用替代的 CRI 实现
   --pause-image value                        (agent/runtime) 针对 containerd 或 docker sandbox 的自定义 pause 镜像 (默认值:"rancher/mirrored-pause:3.6")
   --snapshotter value                        (agent/runtime) 覆盖默认的 containerd snapshotter (默认值:"overlayfs")
   --private-registry value                   (agent/runtime) 私有镜像仓库配置文件 (默认值:"/etc/rancher/k3s/registries.yaml")
   --node-ip value, -i value                  (agent/networking) 发布节点的 IPv4/IPv6 地址
   --node-external-ip value                   (agent/networking) 对外发布节点的 IPv4/IPv6 IP 地址
   --resolv-conf value                        (agent/networking) Kubelet resolv.conf 文件 [$K3S_RESOLV_CONF]
   --flannel-iface value                      (agent/networking) 覆盖默认的 flannel 接口
   --flannel-conf value                       (agent/networking) 覆盖默认的 flannel 配置文件
   --kubelet-arg value                        (agent/flags) kubelet 进程的自定义标志
   --kube-proxy-arg value                     (agent/flags) kube-proxy 进程的自定义标志
   --protect-kernel-defaults                  (agent/node) 内核调优参数。如果设置,且内核的可设参数与 kubelet 默认值不同,则会出现错误
   --rootless                                 (experimental) 运行 rootless
   --selinux                                  (agent/node) 在 containerd 中启动 SELinux [$K3S_SELINUX]
   --lb-server-port value                     (agent/node) Supervisor 客户端负载均衡器的本地端口。如果 supervisor 和 apiserver 不在同一地点,则 apiserver 客户端负载均衡器也将使用比该端口少 1 的额外端口 (默认值:6444) [$K3S_LB_SERVER_PORT]
   --no-flannel                               (deprecated) 使用 --flannel-backend=none
   --cluster-secret value                     (deprecated) 使用 --token [$K3S_CLUSTER_SECRET]

  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值