基于银河麒麟V10快速部署k3s

基于银河麒麟V10快速部署k3s

前言

在xc环境下快速部署k8s功能进行验证。

环境准备

这里采用2台4C、8G配置的联通云ARM虚拟机进行,环境为初始化系统,未安装任何服务。

[root@root-01-0007 ~]# cat /etc/os-release 
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Sword)"
ID="centos"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Sword)"
ANSI_COLOR="0;31"

安装docker

自行部署,省略…

初始化环境准备

所有机器执行

安装依赖包

yum install -y conntrack ntpdate ntp ipvsadm ipset iptables curl sysstat libseccomp vim net-tools rpcbind nfs-utils

遇到错误再添加
# 安装 container-selinux
yum install -y container-selinux
# 安装 selinux-policy-base
yum install -y selinux-policy-base

集群ip映射

[root@root-01-0007 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

172.16.113.231 root-01-0007 
172.16.113.79 root-01-0008 

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

关闭selinux

setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config && getenforce

禁用linux的透明大页、标准大页

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag'  >> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'  >> /etc/rc.local

chmod +x /etc/rc.d/rc.local

禁用swap分区(我这边没设置也行)

swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

文件数设置

ulimit -SHn 65535
cat >> /etc/security/limits.conf <<EOF
* soft nofile 655360
* hard nofile 131072
* soft nproc 655350
* hard nproc 655350
* seft memlock unlimited
* hard memlock unlimitedd
EOF

linux内核参数调优

配置内核路由转发及网桥过滤

#将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
#开启网桥模式【重要】
net.bridge.bridge-nf-call-iptables=1
#开启网桥模式【重要】
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
# 禁止使用 swap 空间,只有当系统 OOM 时才允许使用它
vm.swappiness=0
# 不检查物理内存是否够用
vm.overcommit_memory=1
# 开启 OOM
vm.panic_on_oom=0
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
#关闭ipv6【重要】
# net.ipv6.conf.all.disable_ipv6=1
# net.netfilter.nf_conntrack_max=2310720

# 下面的内核参数可以解决ipvs模式下长连接空闲超时的问题
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 10
net.ipv4.tcp_keepalive_time = 600
EOF


sysctl --system 

加载网桥过滤模块

modprobe br_netfilter
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack 
modprobe -- br_netfilter
EOF


chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
# 查看网桥过滤模块是否成功加载
lsmod | grep br_netfilter
# 重新刷新配置
sysctl -p /etc/sysctl.d/k8s.conf

# 保证在节点重启后能自动加载所需模块
cat >> /etc/rc.d/rc.local << EOF
bash /etc/sysconfig/modules/ipvs.modules
EOF
chmod +x /etc/rc.d/rc.local

时间同步

yum install ntpdate -y
#ntpdate time.windows.com
ntpdate ntp1.aliyun.com
# 或者配置crontab执行:
# `crontab -e`
# 0 */1 * * * /usr/sbin/ntpdate ntp1.aliyun.com

echo "0 */1 * * * /usr/sbin/ntpdate ntp1.aliyun.com" >> /var/spool/cron/root

K3s部署

K3s资源是有国内的服务器上,可以使用国内资源安装K3s,提升了安装速度的同时也提升了安装的稳定性。

K3s默认使用containerd作为容器runtime,这里进行修改,选择Docker作为容器runtime。

K3s server 节点安装

执行安装脚本,使用Docker作为runtime,并设置默认registry地址为registry.cn-hangzhou.aliyuncs.com

# 使用Docker作为runtime,使用该命令
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_SELINUX_WARN=true \
INSTALL_K3S_SKIP_SELINUX_RPM=true \
INSTALL_K3S_VERSION=v1.28.15+k3s1 \
INSTALL_K3S_MIRROR=cn sh -s - \
--docker --data-dir=/data/k3s \
--system-default-registry=registry.cn-hangzhou.aliyuncs.com

# 默认使用containerd作为runtime,使用该命令
#curl –sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_SELINUX_WARN=true INSTALL_K3S_MIRROR=cn sh -s - --system-default-registry "registry.cn-hangzhou.aliyuncs.com"

环境变量参数

  1. INSTALL_K3S_SELINUX_WARN=true
    • 作用:在 SELinux 启用的系统上,仅显示警告信息而不强制要求安装 SELinux 策略包。
  2. INSTALL_K3S_SKIP_SELINUX_RPM=true
    • 作用:跳过安装 k3s-selinux RPM 包,避免因依赖问题导致安装失败。
  3. INSTALL_K3S_VERSION=v1.28.15+k3s1
    • 作用:指定安装的 K3s 版本为 v1.28.15(Kubernetes v1.28.15 的 K3s 定制版本),最新版本参考:https://update.k3s.io/v1-release/channels
  4. INSTALL_K3S_MIRROR=cn
    • 作用:使用中国镜像源加速下载 K3s 二进制文件和组件。国内仓库地址:https://mirror.rancher.cn/

命令行参数

  1. --docker
    • 作用:使用 Docker 作为容器运行时,而非默认的 containerd。
    • 注意:K3s 默认推荐使用 containerd,指定 --docker 需确保系统已安装 Docker。
  2. --data-dir=/data/k3s
    • 作用:指定 K3s 数据存储目录为 /data/k3s(默认是 /var/lib/rancher/k3s)。
  3. --system-default-registry=registry.cn-hangzhou.aliyuncs.com
    • 作用:设置全局默认镜像仓库为阿里云杭州镜像服务。

可以等待几分钟后,再查看K3s工作状态:

[root@root-01-0007 data]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE   ERROR
etcd-0               Healthy   ok        
controller-manager   Healthy   ok        
scheduler            Healthy   ok 

[root@root-01-0007 server]# kubectl get pods --all-namespaces
NAMESPACE     NAME                                      READY   STATUS      RESTARTS   AGE
kube-system   coredns-7c78bfc46f-pkw54                  1/1     Running     0          7m31s
kube-system   helm-install-traefik-crd-f5v2m            0/1     Completed   0          7m31s
kube-system   helm-install-traefik-fjl9g                0/1     Completed   2          7m31s
kube-system   local-path-provisioner-7cd69477bc-lhsc6   1/1     Running     0          7m31s
kube-system   metrics-server-7488cdc759-hm28p           1/1     Running     0          7m31s
kube-system   svclb-traefik-76ccca6b-lzmn5              2/2     Running     0          3m51s
kube-system   traefik-5d4bf95c4f-9ttcq                  1/1     Running     0          3m51s

K3s agent 节点安装

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | \
INSTALL_K3S_SELINUX_WARN=true \
INSTALL_K3S_SKIP_SELINUX_RPM=true \
INSTALL_K3S_VERSION=v1.28.15+k3s1 \
INSTALL_K3S_MIRROR=cn \
K3S_URL=https://root-01-0007:6443 \
K3S_TOKEN=K108c5b70463867949141a46597069529ed27d6408c2a4785dabd926740bd3f4728::server:8cfb2de2a76fa1e192655b79ffb733a3 \
sh -s - \
--docker --data-dir=/data/k3s

# K3s agent 节点不需要配置 `system-default-registry`。

K3S_TOKEN如果没指定需要到/var/lib/rancher/k3s/server/node-token获取,如果指定了data-dir则到指定目录下获取

参考

1.https://docs.k3s.io/zh/quick-start

2.https://forums.rancher.cn/t/k3s/3314/5

评论

  1. test
    Windows Edge 137.0.0.0
    3 天前
    2025-6-10 17:28:36

    迁移后测试~

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇