Kubernetes基础(1)---使用k3s学习
https://docs.rancher.cn/docs/k3s/quick-start/_index
下载
仓库:https://github.com/k3s-io/k3s
v1.25.2+k3s1
https://github.com/k3s-io/k3s/releases/tag/v1.25.2%2Bk3s1
bash:需要下载对应版本的,在sources node zip里
百度网盘:
链接:https://pan.baidu.com/s/1wjuba_6AD665qNy4Gx9XDw?pwd=1111
提取码:1111
错误
sh文件报错
注意不要在windows下编辑脚本文件,否则经常会遇到这种问题。
-bash: ./install.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录
解决方法
脚本文件保存时使用了DOS格式,用DOS2UNIX转为UNIX格式,也可以用vim打开,用:set ff=unix转换。
代码:
sed -i 's/\r$//' server.sh
还 可以用 vim 打开文件,然后执行冒号命令:
代码:
:set ff=unix
:wq
启动安装脚本失败
可能时间不统一,可能是保存的快照,建议与阿里云的服务器时间同步
查看时间 date -R yum install ntpdate timedatectl set-timezone Asia/Shanghai ntpdate ntp1.aliyun.com date -R 同步阿里云时间 1、查看当前服务器时间 # date -R Mon, 27 Apr 2020 10:41:54 +0800 2、安装ntpdate服务 # yum install ntpdate Loaded plugins: fastestmirror Determining fastest mirrors 3、直接用域名同步中国上海时间 是阿里云的服务器 # timedatectl set-timezone Asia/Shanghai # ntpdate ntp1.aliyun.com 27 Apr 10:45:42 ntpdate[6028]: step time server 120.25.115.20 offset 190.621216 sec 4、查看新时间是否已同步 # date -R Mon, 27 Apr 2020 10:45:51 +0800
执行安装脚本搭建集群
注意
- 三个服务器的hosts和hostname都需要修改
- 时间需要一致
- 方法:同步阿里云服务器
- 主节点和工作节点的安装命令不一样,是先安装主节点,然后获取token,用这个token去搭建工作节点
- sh不要在windows打开
- 方法:去下载当前版本资源包,然后把sh文件上传
先关防火墙
systemctl disable firewalld --now yum install -y container-selinux selinux-policy-base yum install -y https://rpm.rancher.io/k3s/latest/common/centos/7/noarch/k3s-selinux-0.2-1.el7_8.noarch.rpm
如果k3s-airgap-images-amd64.tar是.gz压缩的就复制.gz的
mv k3s /usr/local/bin chmod +x /usr/local/bin/k3s mkdir -p /var/lib/rancher/k3s/agent/images/ cp k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/ #修改权限 chmod +x install.sh #离线安装主节点 INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh
出现下面这个才是成功,否则失败
主节点k8s
[root@k8s home]# kubectl get node NAME STATUS ROLES AGE VERSION k8s Ready control-plane,master 35m v1.25.2+k3s1 [root@k8s home]# cat /var/lib/rancher/k3s/server/node-token K10ed7f6fde96c1141eb8b5cc13d019ca9e98a91716ed103121767d9ecbfd46eec0::server:43abb138875740157821f3fbe2f37ed3 kubectl get node cat /var/lib/rancher/k3s/server/node-token
工作节点k8s2 k8s3安装,如果工作节点没有设置K3S_URL和K3S_TOKEN,那么就是一个主节点
INSTALL_K3S_SKIP_DOWNLOAD=true \ K3S_URL=https://192.168.80.15:6443 \ K3S_TOKEN=K10ed7f6fde96c1141eb8b5cc13d019ca9e98a91716ed103121767d9ecbfd46eec0::server:43abb138875740157821f3fbe2f37ed3 \ ./install.sh 如果你执行了 INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh 那么该节点是主节点,想成为工作节点,需要卸载k3s,然后重新安装步骤 1.卸载 要从 server 节点卸载 K3s,请运行: /usr/local/bin/k3s-uninstall.sh 要从 agent 节点卸载 K3s,请运行: /usr/local/bin/k3s-agent-uninstall.sh 2.安装 yum install -y https://rpm.rancher.io/k3s/latest/common/centos/7/noarch/k3s-selinux-0.2-1.el7_8.noarch.rpm mv k3s /usr/local/bin chmod +x /usr/local/bin/k3s mkdir -p /var/lib/rancher/k3s/agent/images/ cp k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/ #修改权限 chmod +x install.sh 3.设置为工作节点安装,记得是主节点的ip和token,是https INSTALL_K3S_SKIP_DOWNLOAD=true \ K3S_URL=https://192.168.80.15:6443 \ K3S_TOKEN=K10ed7f6fde96c1141eb8b5cc13d019ca9e98a91716ed103121767d9ecbfd46eec0::server:43abb138875740157821f3fbe2f37ed3 \ ./install.sh
工作节点成功界面,同时主节点可以发现
主节点
镜像加速
在学习k3s前需要镜像加速k3s。
由于kubernetes从V1.24
版本开始默认使用containerd
,需要修改containerd
的配置文件,才能让Pod的镜像使用镜像加速器。
配置文件路径一般为/etc/containerd/config.toml
,详见阿里云镜像加速。
K3s 会自动生成containerd的配置文件/var/lib/rancher/k3s/agent/etc/containerd/config.toml,不要直接修改这个文件,k3s重启后修改会丢失。
查看containerd的配置文件位置
containerd的配置文件,但是不要直接修改,k3s重启后修改会丢失
k3s配置镜像
为了简化配置,K3s 通过/etc/rancher/k3s/registries.yaml文件来配置镜像仓库,K3s会在启动时检查这个文件是否存在。
我们需要在每个节点上新建/etc/rancher/k3s/registries.yaml文件,
vim /etc/rancher/k3s/registries.yaml 工作节点没有该路径/etc/rancher/k3s,需要手动创建 mkdir /etc/rancher/k3s vim /etc/rancher/k3s/registries.yaml
配置内容如下:这个是可以的
cat > /etc/rancher/k3s/registries.yaml <<EOF mirrors: docker.io: endpoint: - "https://jgsi1qrf.mirror.aliyuncs.com" - "http://hub-mirror.c.163.com" - "https://docker.mirrors.ustc.edu.cn" - "https://registry.docker-cn.com" EOF
下面两个试的不行
中科院的镜像
https://cmcc.mirrors.ustc.edu.cn/
# 在 config.toml.tmpl 文件中添加 [plugins.cri.registry.mirrors] [plugins.cri.registry.mirrors."docker.io"] endpoint = ["https://docker.mirrors.ustc.edu.cn"]
这个网站在阿里云搜索容器镜像服务
mirrors: docker.io: endpoint: - "https://docker.mirrors.ustc.edu.cn"
配置后,重启主节点、工作节点并查看是否生效
systemctl restart k3s systemctl restart k3s-agent cat /var/lib/rancher/k3s/agent/etc/containerd/config.toml
发现成功