- К8С?К3С!
К8С?К3С!
K8S Так почему бы не использовать K3S?
Эта статья подходит для:
- Разработчики, которые хотят избавиться от сложной установки K8S, но вынуждены использовать K8S
- Конфигурации сервера недостаточно для запуска разработчиков K8S
- разработчик Интернета вещей
- Разработчики, которым требуются минимальные затраты на обучение для использования оркестрации контейнеров.
- Новички в K8S
K3S
- Легче и проще K8S
- Предназначен для устройств IoT и периферийных вычислений
- Сервер можно использовать на стороне края, а напрямую он не вылетит? - Лу Синь
Шаг в яму, чтобы начать
Вэй Би Вэй Би (странный сервер)
Сервер выбирает тот, с которым я знакомCentos
Требования к ядру: 3.10.0 является официальным Centos7.7 / Centos7.6 от Alibaba Cloud и Tencent Cloud.
- Centos8 не нужно пробовать, версия iptables слишком старая
- Использовать перед другими ядрами
k3s check-config
проверка команды- Все узловые машины должны находиться в одной и той же среде интрасети.Это ошибка K3S.Кластер будет подключен через конечную точку, а конечной точкой облачного сервера будет IP-адрес интрасети (классическая облачная сеть Alibaba еще не должна тестироваться)
- подчеркивание имени хоста в исключении 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"