K8S ? K3S !

Kubernetes

К8С?К3С!

K8S Так почему бы не использовать K3S?
Эта статья подходит для:

  • Разработчики, которые хотят избавиться от сложной установки K8S, но вынуждены использовать K8S
  • Конфигурации сервера недостаточно для запуска разработчиков K8S
  • разработчик Интернета вещей
  • Разработчики, которым требуются минимальные затраты на обучение для использования оркестрации контейнеров.
  • Новички в K8S

K3S

  • Легче и проще K8S
  • Предназначен для устройств IoT и периферийных вычислений
  • Сервер можно использовать на стороне края, а напрямую он не вылетит? - Лу Синь

Шаг в яму, чтобы начать

Вэй Би Вэй Би (странный сервер)

Сервер выбирает тот, с которым я знакомCentos

Требования к ядру: 3.10.0 является официальным Centos7.7 / Centos7.6 от Alibaba Cloud и Tencent Cloud.

  1. Centos8 не нужно пробовать, версия iptables слишком старая
  2. Использовать перед другими ядрамиk3s check-configпроверка команды
  3. Все узловые машины должны находиться в одной и той же среде интрасети.Это ошибка K3S.Кластер будет подключен через конечную точку, а конечной точкой облачного сервера будет IP-адрес интрасети (классическая облачная сеть Alibaba еще не должна тестироваться)
  4. подчеркивание имени хоста в исключении k3s
export K3S_NODE_NAME=${HOSTNAME//_/-}

Замените символы подчеркивания символами подчеркивания для сценария установки k3s.

K3S встроенныйContainerdно! В качестве сервера естественно использовать общий контейнерDocker

curl https://download.daocloud.io/docker/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
curl -fsSL https://get.daocloud.io/docker | bash -s docker --mirror Aliyun
  • Ускоритель установки и настройки Docker (отечественный источник):
  • Версия containerd.io низкая:
yum -y install https://download.daocloud.io/docker/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
  • Конфигурация ускорителя:
sudo mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["http://f1361db2.m.daocloud.io"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • ботинок
sudo systemctl enable docker

Вайбибабу (Победа K3S)

Установка сервера K3S

Просто напишите это! Это все немного опыта!

export K3S_NODE_NAME=${HOSTNAME//_/-}
export INSTALL_K3S_EXEC="--docker --kube-apiserver-arg service-node-port-range=1-65000 --no-deploy traefik --write-kubeconfig ~/.kube/config --write-kubeconfig-mode 666"
curl -sfL https://docs.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
  • --dockerиспользовать докер
  • --kube-apiserver-arg service-node-port-range=1-65000Диапазон портов узла 1-65000
  • --no-deploy traefikНе устанавливайте traefik (позже используйте rancher)
  • --write-kubeconfig ~/.kube/config --write-kubeconfig-mode 666Задайте для файла конфигурации kube значение~/.kube/config(В соответствии с путем k8s, позже будет меньше проблем)

смонтировать нфс

Все машины:

#所有 node 节点安装 nfs 客户端
yum -y install nfs-utils
systemctl start nfs && systemctl enable nfs

нфс-хост:

#master节点安装nfs
yum -y install nfs-utils

#创建nfs目录
mkdir -p /nfs/data/

#修改权限
chmod -R 777 /nfs/data

#编辑export文件
tee /etc/exports <<-'EOF'
/nfs/data *(rw,no_root_squash,sync)
EOF

#配置生效
exportfs -r

#启动rpcbind、nfs服务
systemctl restart rpcbind && systemctl enable rpcbind
systemctl restart nfs && systemctl enable nfs

Информация о сервере K3S

Агент присоединяется к кластеру, который необходимо использовать

echo "export K3S_TOKEN=$(cat /var/lib/rancher/k3s/server/node-token)"
echo "export K3S_URL=https://$(ifconfig eth0 |grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"):6443"

K3S agent

Как и в случае с параметрами установки сервера, вам необходимо сначала получить K3S_TOKEN и K3S_URL сервера.

export K3S_TOKEN=XXXXXX
export K3S_URL=XXXXXX
export K3S_NODE_NAME=${HOSTNAME//_/-}
export INSTALL_K3S_EXEC="--docker --kube-apiserver-arg service-node-port-range=1-65000 --no-deploy traefik --write-kubeconfig ~/.kube/config --write-kubeconfig-mode 666"
curl -sfL https://docs.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

Надвигается волна зомби (установка на ранчо)

ранчо версия:Rancher2.3+

docker run -d -v /data/docker/rancher-server/var/lib/rancher/:/var/lib/rancher/ --restart=unless-stopped --name rancher-server -p 9443:443 rancher/rancher:stable
echo https://$(curl http://ip.cip.cc/):9443
  • хост 9443 порт 443 порт, используемый прокси-ранчером https
  • Интерфейс владельца ранчо напрямую импортирует кластер K3S и использует кластер K3S как K8S.

Скрипт установки клиента Docker + K3S + nfs в один клик

#!/bin/sh
set -e
# 在线安装脚本

# k3s 不建议安装swap 系统内存小的时候没有swap会卡死
if [ ! -f "/var/swap" ];then
    echo "create swap"
    dd if=/dev/zero of=/var/swap bs=1024 count=8192000
    mkswap /var/swap
    mkswap -f /var/swap
    swapon /var/swap
    echo  "/var/swap swap swap defaults 0 0" >>  /etc/fstab
fi

# 判断是否安装 docker
if [ `command -v docker` ];then
    echo 'docker has installed'
else
    echo 'install docker'
    curl https://download.daocloud.io/docker/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
    yum -y install https://download.daocloud.io/docker/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
    curl -fsSL https://get.daocloud.io/docker | bash -s docker --mirror Aliyun
    # centos7 的内核经过 k3s 检查都有这个问题
    grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
fi
# 添加加速源
sudo mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["http://f1361db2.m.daocloud.io"]
}
EOF
# 启动
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker

# 判断是否安装k3s
if [ `command -v k3s` ];then
    echo 'k3s has installed'
else
    # 本地安装k3s其他参数通过外部传入
    # 下划线节点名不被支持
    export K3S_NODE_NAME=${HOSTNAME//_/-}
    export INSTALL_K3S_EXEC="--docker --kube-apiserver-arg service-node-port-range=1-65000 --no-deploy traefik --write-kubeconfig ~/.kube/config --write-kubeconfig-mode 666"
    curl -sfL https://docs.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
fi

#所有node节点安装nfs客户端
yum -y install nfs-utils
systemctl start nfs && systemctl enable nfs
echo 'finish'
echo 'need reboot'
echo "export K3S_TOKEN=$(cat /var/lib/rancher/k3s/server/node-token)"
echo "export K3S_URL=https://$(ifconfig eth0 |grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"):6443"