k3s介绍

K3S是一个轻量级的K8S集群,它是Rancher Lab开发的一个新的产品, 目的是在资源有限的设备上面跑K8S。它的最大特点就是小,二进制包只有40MB,只需要512MB的内存就能跑起来。K3S目的是在一些资源受限的设备上面把Kubernetes跑起来,主要的应用场景包括Edge,IoT,CI和ARM等等,至于为什么叫K3S呢,官方就一句话: k3s - 5 less than k8s

官方访问地址:https://k3s.io/

安装方式

k3s的相关衍生安装工具很多在,比如k3d(类似kind), k3s-ansible, k3sup和官方k3s-install.sh等,每个工具都有其特殊用途

k3d

k3d 是一个dind模式安装k3s,创建快速,演示:

k3d create --image registry.cn-hangzhou.aliyuncs.com/k8ops/k3s:v1.17.3-k3s1 --publish 80:80 --server-arg --no-deploy --server-arg traefik --name istio-test
k3d stop --name istio-test
k3d start --name istio-test
export KUBECONFIG=$(k3d get-kubeconfig --name istio-test)
alias k=kubectl
k get pod -n kube-system

结果

NAME                                  READY   STATUS    RESTARTS   AGE
local-path-provisioner-58fb86bdfd-w446w 1/1 Running 13 4d9h
metrics-server-6d684c7b5-zxnsc 1/1 Running 6 4d9h
coredns-d798c9dd-jkfz2 1/1 Running 5 4d9h

k3d version

k3d version v1.6.0
k3s version v1.17.2-k3s1

注意:

  1. 因为k3s内置了一些好用的工具比如HelmChart, ServiceLB, Traefik IngressController等,当时平常主要用的Nginx IngressController比较多,可以自己安装一个Nginx IngressController,或者在搭建Istio/Kourier,所以次演示案例没有安装traefix
  2. 为啥没有看到k8s相关的核心服务呢?因为k3s把k8s的微服务架构变成了单体架构,嗯应该是这样。

k3s-ansible

ansible的安装方式一般是对运维人员比较友好,而且控制灵活,https://github.com/seanly/k3s-ansible.git这个库是基于官方提供的库的一个修改,由于ansibled的版本变化比较快,平常没有升级的需求,所以修改主要是去掉无用的模块和添加了对docker的支持,我使用的是ansible==2.5.5, 演示:

# 清理环境
ansible-playbook reset.yml -i inventory/hosts.ini -u ops_root -b -vv
# 安装master/node
ansible-playbook site.yml -i inventory/hosts.ini -u ops_root -b -vv

注意:

  1. 对于机器登录问题,建议编写sshconfig文件,放在ansible.cfg里面
 [ssh_connection]
ssh_args=-o ControlMaster=auto -o ControlPersist=30m -F~/.ssh/ops.config
  1. 编写inventory/hosts.ini文件,填写你需要部署的机器和角色
  2. 编写配置文件inventory/group_vars/all.yml,定义安装版本,运行用户,启动参数等
---
k3s_version: v1.17.5+k3s1
ansible_user: ops_root
systemd_dir: /etc/systemd/system
master_ip: "{{ hostvars[groups['master'][0]]['ansible_host'] | default(groups['master'][0]) }}"
extra_server_args: --docker --disable traefik
extra_server_args: --docker
  1. 下载/etc/rancher/k3s/k3s.yaml到本地,修改里面的apiserver地址为master角色的地址
export KUBECONFIG=$(pwd)/k3s.yaml
alias k=kubectl
k get pod -n kube-system

k3s-install.sh

安装方法

这种安装方式是官方提供的,直接演示吧

# master
cat /usr/local/bin/k3s-install.sh| INSTALL_K3S_VERSION=v1.17.4+k3s1 INSTALL_K3S_EXEC="server --docker --disable traefik" sh -s -
# show node-token
cat /var/lib/rancher/k3s/server/node-token
# ip
ip addr 或者 ifconfig
# node
K3S_TOKEN=来自master的node-token
K3S_URL="http://master-ip:6443"
cat /usr/local/bin/k3s-install.sh |INSTALL_K3S_VERSION=v1.17.4+k3s1 INSTALL_K3S_EXEC="--docker" K3S_URL="https://{{ server_ip }}:6443" sh -s -

卸载方法

/usr/local/bin/k3s-agent-uninstall.sh
docker rm -f $(docker ps -qa)
/usr/local/bin/k3s-uninstall.sh
docker rm -f $(docker ps -qa)

注意:

  1. 下载/etc/rancher/k3s/k3s.yaml到本地,修改里面的apiserver地址为master角色的地址
export KUBECONFIG=$(pwd)/k3s.yaml
alias k=kubectl
k get pod -n kube-system
  1. 节点和master的卸载命令有差别

k3s-安装的更多相关文章

  1. 如何安装一个高可用K3s集群?

    作者介绍 Janakiram MSV是Janakiram & Associates的首席分析师,也是国际信息技术学院的兼职教师.他也是Google Qualified Developer.亚马 ...

  2. 一文搞定全场景K3s离线安装

    作者简介 王海龙,Rancher中国社区技术经理,负责Rancher中国技术社区的维护和运营.拥有6年的云计算领域经验,经历了OpenStack到Kubernetes的技术变革,无论底层操作系统Lin ...

  3. 手把手教你玩转 Gitea|使用 Helm 在 K3s 上安装 Gitea

    前言 在前面的文章中,演示了如何用 Docker 镜像和 Windows 二进制包来安装运行 Gitea.今天是玩转 Gitea 系列的使用 Helm 在 K3s 上安装 Gitea. 关于 Gite ...

  4. Just 5分钟!使用k3s部署轻量Kubernetes集群快速教程

    大小仅有40MB的k3s为想要节省开销进行开发和测试的企业提供了一个很好的选择.本文将用一种极为简洁的方式,教你在5分钟之内使用k3s部署轻量Kubernetes集群. Kubernetes已经改变了 ...

  5. 基于centos7.6离线部署开k3s

    K3S简介: https://k3s.io/ https://github.com/rancher/k3s https://github.com/rancher/k3s/releases      / ...

  6. k3s首季在线培训来袭!本周四晚,线上见!

    筹备已久的k3s在线培训终于要和大家见面啦! k3s是一款适用于边缘计算场景以及IoT场景的轻量级Kubernetes发行版,经过CNCF的一致性认证.由业界应用最广泛的Kubernetes管理平台R ...

  7. K8S ? K3S !

    K8S ? K3S ! K3S 踩坑开始 歪比歪比(奇怪的服务器) 服务器选择我熟悉的 Centos K3S内置 Containerd 但是!作为一个服务器使用自然是要用常见的一点的容器 Docker ...

  8. 仅需60秒,使用k3s创建一个多节点K8S集群!

    作者: Dawid Ziolkowski丨Container Solution云原生工程师 最近,我一直在Kubernetes上进行各种测试和部署.因此,我不得不一次又一次创建和销毁Kubernete ...

  9. 使用Kubernetes、K3s和Traefik2进行本地开发

    作者简介 Vyacheslav,拥有运维和项目管理经验的软件工程师 这篇文章将承接我此前搭建的本地Docker开发环境,具体步骤已经放在在以下网址: https://github.com/Vorone ...

  10. Rancher On K3s 高可用架构部署

    Rancher 推荐部署架构 k3s 模式 RKE 和 k8s 模式 备注: 我对 RKE 的理解就是 Ansible + kubeadm 的打包,首先 rke 需要到每一个节点都可以免密 ssh , ...

随机推荐

  1. 斐波那契数列计算html代码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Git初始化本地代码及提交到服务器

    2019独角兽企业重金招聘Python工程师标准>>> 1.先安装Git客户端 2.进入需要提交的文件夹目录 3.打开Git Bash,点击右键中的Git Bash 打开git命令窗 ...

  3. Spring.getBean()流程和循环依赖的解决

    getBean流程介绍(以单例的Bean流程为准) getBean(beanName) 从BeanFactory中获取Bean的实例对象,真正获取的逻辑由doGetBean实现. doGetBean( ...

  4. lua 发送http请求

    lua发送http请求,luajit默认没有http.lua库,需要下载并存放到luajit对应目录. 一.下载http.lua和http_headers.lua库 参考:https://www.zi ...

  5. Blog Customization

    0 前言 从大二开始写博客,主要为了记录自己学习过程中的问题.尝试使用过CSDN.博客园等公共服务,也用Github pages搭建过自己的博客,但效果都不令人满意.CSDN广告太多,界面乌烟瘴气,而 ...

  6. 树上倍增法求LCA

    我们找的是任意两个结点的最近公共祖先, 那么我们可以考虑这么两种种情况: 1.两结点的深度相同. 2.两结点深度不同. 第一步都要转化为情况1,这种可处理的情况. 先不考虑其他, 我们思考这么一个问题 ...

  7. 单源最短路径:Dijkstra算法(堆优化)

    前言:趁着对Dijkstra还有点印象,赶快写一篇笔记. 注意:本文章面向已有Dijkstra算法基础的童鞋. 简介 单源最短路径,在我的理解里就是求从一个源点(起点)到其它点的最短路径的长度. 当然 ...

  8. Java笔记(day14-17)

    集合类的由来: 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定. 就使用集合容器进行存储. 集合特点: 1,用于存储对象的容器. 2,集合的长度是可变的. 3,集合中不可以存储基本数据类 ...

  9. [zoj3627]模拟吧

    思路:情况只可能是2种,两个人一直向一边走,或者有一个人折回来,对于后一种,枚举折回来的位置就行了.不过要注意两个方向都要处理下. #pragma comment(linker, "/STA ...

  10. Mysql 常用函数(7)- length 函数

    Mysql常用函数的汇总,可看下面系列文章 https://www.cnblogs.com/poloyy/category/1765164.html length 的作用 返回字符串的字节长度 注意: ...