`
wx1569466809
  • 浏览: 72117 次
文章分类
社区版块
存档分类
最新评论

不到1分钟,从零完成k3s Kubeconfig配置!

 
阅读更多

K3s是由Rancher Labs于今年年初发布的一款开源、极轻量的Kubernetes发行版,完美适用于在资源有限的环境中运行Kubernetes。K3s一经发布就得到了业界的高度关注和认可,发布半年以来已在GitHub上拥有近8500颗Star

最初k3s只是一个用于本地Kubernetes开发的POC项目,而如今已有很多企业用户在生产环境中使用它。

官方GitRepo:

https://github.com/rancher/k3s

官方定义:k3s是完全符合标准的生产级Kubernetes发行版,具有以下四个方面的主要变化:

  • 删除旧的、非必须的代码:K3s不包括任何默认禁用的Alpha功能或者过时的功能,原有的API组件目前仍运行于标准部署当中。除此之外,Rancher还删除了所有非默认许可控制器,in- tree云提供商和存储驱动程序,但允许用户添加任何他们需要的驱动程序。

  • 整合正在运行的打包进程:为了节省RAM,Rancher将通常在Kubernetes管理服务器上运行的多流程合并为单个流程。Rancher还将在工作节点上运行的kubelet、kubeproxy和flannel代理进程组合成一个进程。

  • 使用containerd代替Docker作为运行时的容器引擎:通过用containderd替换Docker,Rancher能够显著减少运行时占用空间,删除libnetwork、swarm、Docker存储驱动程序和其他插件等功能。

  • 除了 etcd 之外,引入 SQLite 作为可选的数据存储:Rancher在k3s中添加了SQLite作为可选的数据存储,从而为etcd提供了一个轻量级的替代方案。该方案不仅占用了较少的内存,而且大幅简化了操作。

鉴于k3s受到极高的关注度以及广泛的应用,大量的开源社区用户开始搭建有关k3s的项目,本文将分享如何使用其中一个项目——k3sup,来实现一分钟内从零到完全配置k3s Kubeconfig。

K3sup:1分钟之内,从零到完全配置Kubeconfig

K3sup:https://github.com/alexellis/k3sup

K3sup是由Alex Ellis创建的一个开源项目,这使得k3s的安装和kubeconfig文件的生成变得快速和方便。这一工具能以极快的速度自动化安装k3s、将SAN地址更新为公共IP、下载k3s配置文件然后使用VM的公共IP地址将其更新,以便可以使用kubectl连接它。

以下步骤使用Amazon EC2实例说明了此过程:

步骤1:启动Amazon EC2实例,让安全组打开端口并通过ssh登录。

  • 登录亚马逊控制台并单击EC2

  • 在EC2 Dashboard上,点击启动实例

  • 选择 Amazon Linux 2 AMI 镜像

  • 选择实例类型(我们将使用t2.medium)

  • 选择VPC/Subnet/IAM等并且启用自动分配公共IP(一切都保持默认)

  • 添加存储(使用默认配置)

  • 添加标签(如果需要的话)

  • 配置安全组以允许不同端口上的流量(本demo中启用所有流量)

  • 选择一个密钥对并且启动实例

步骤2:下载k3sup的二进制文件

curl -sLS https://raw.githubusercontent.com/alexellis/k3sup/master/get.sh | sh
[root@ip-172-31-33-136 ec2-user]# curl -sLS https://raw.githubusercontent.com/alexellis/k3sup/master/get.sh | sh
which: no k3sup in (/sbin:/bin:/usr/sbin:/usr/bin)
x86_64
Downloading package https://github.com/alexellis/k3sup/releases/download/0.2.0/k3sup as /tmp/k3sup
Download complete.

Running as root - Attempting to move k3sup to /usr/local/bin
New version of k3sup installed to /usr/local/bin

步骤3:将ssh密钥复制到VM中的'vi /root/.ssh/id_rsa'位置,导出IP并使用k3sup安装k3s


[root@ip-172-31-33-136 ec2-user]# **cd /usr/local/bin**

[root@ip-172-31-33-136 bin]# **export IP=54.159.112.255**

[root@ip-172-31-33-136 bin]# **./k3sup install --ip $IP --user ec2-user**

Public IP: 54.159.112.255
ssh -i /root/.ssh/id_rsa ec2-user@54.159.112.255

ssh: curl -sLS https://get.k3s.io | INSTALL_K3S_EXEC='server --tls-san 54.159.112.255' sh -
[INFO]  Finding latest release
[INFO]  Using v0.8.0 as release
[INFO]  Downloading hash [https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt](https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt)
[INFO]  Downloading binary [https://github.com/rancher/k3s/releases/download/v0.8.0/k3s](https://github.com/rancher/k3s/releases/download/v0.8.0/k3s)
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
which: no kubectl in (/usr/local/bin:/usr/bin)
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
which: no crictl in (/usr/local/bin:/usr/bin)
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
which: no ctr in (/usr/local/bin:/usr/bin)
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
Created symlink from /etc/systemd/system/multi-user.target.wants/k3s.service to /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s
Result: [INFO]  Finding latest release
[INFO]  Using v0.8.0 as release
[INFO]  Downloading hash [https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt](https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt)
[INFO]  Downloading binary [https://github.com/rancher/k3s/releases/download/v0.8.0/k3s](https://github.com/rancher/k3s/releases/download/v0.8.0/k3s)
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
[INFO]  systemd: Starting k3s
which: no kubectl in (/usr/local/bin:/usr/bin)
which: no crictl in (/usr/local/bin:/usr/bin)
which: no ctr in (/usr/local/bin:/usr/bin)
Created symlink from /etc/systemd/system/multi-user.target.wants/k3s.service to /etc/systemd/system/k3s.service.
ssh: sudo cat /etc/rancher/k3s/k3s.yaml
Saving file to: /usr/local/bin/kubeconfig

它将创建一个kubeconfig文件并且保存在你运行命令的目录中。

步骤4:导出KUBECONFIG

[root@ip-172-31-33-136 bin]#** export KUBECONFIG=`pwd`/kubeconfig**

步骤5:开始玩转k3s


[root@ip-172-31-33-136 bin]# **./kubectl get nodes**

NAME                            STATUS   ROLES    AGE   VERSION

ip-172-31-33-136.ec2.internal   Ready    master   24s   v1.14.5-k3s.1


[root@ip-172-31-33-136 bin]# **./kubectl get pods -n kube-system**

NAME                         READY   STATUS      RESTARTS   AGE

coredns-b7464766c-ngf46      1/1     Running     0          4m3s

helm-install-traefik-x6wfj   0/1     Completed   0          4m3s

svclb-traefik-65gw9          2/2     Running     0          3m49s

traefik-56688c4464-5rdss     1/1     Running     0          3m49s

运行一个简单的服务:

# Create a Deployment
**./kubectl run nginx --image=nginx**

# Create Service
[root@ip-172-31-33-136 bin]# **./kubectl expose deployment nginx --port=80 --target-port=80**

service/nginx exposed

[root@ip-172-31-33-136 bin]# **./kubectl get svc**

NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE

kubernetes   ClusterIP   10.43.0.1      <none>        443/TCP   45m

nginx        ClusterIP   10.43.99.179   <none>        80/TCP    5s

[root@ip-172-31-33-136 bin]#  **curl 10.43.99.179**

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>

加入两个节点:是否可以在不登录节点的情况下将节点与主节点连接?是的,k3sup可以做到这一点。

在VM上获得k3s设置后,你可以轻松地将节点加入到集群:


#AGENT_IP is the IP of the VM that you want to add to the cluster that has k3s running
**export AGENT_IP=54.196.113.156**

#SERVER_IP is the IP of the server where k3 is installed 
export SERVER_IP=54.159.112.255
**export USER=ec2-user**

[root@ip-172-31-33-136 bin]# **./k3sup join --ip $AGENT_IP --server-ip $SERVER_IP --user ec2-user
**Server IP: 54.159.112.255
ssh -i /root/.ssh/id_rsa ec2-user@54.159.112.255
ssh: sudo cat /var/lib/rancher/k3s/server/node-token

K1077d707d0868b652aca7adfc21b5f34a1f0357e71b216bf8b3c94a559cd4f93a6::node:014c8ed3f6574d27db73b9c8bf67f617

ssh: curl -sfL https://get.k3s.io/ | K3S_URL="https://54.159.112.255:6443" K3S_TOKEN="K1077d707d0868b652aca7adfc21b5f34a1f0357e71b216bf8b3c94a559cd4f93a6::node:014c8ed3f6574d27db73b9c8bf67f617" sh -

[INFO]  Finding latest release
[INFO]  Using v0.8.0 as release
[INFO]  Downloading hash [https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt](https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt)
[INFO]  Downloading binary [https://github.com/rancher/k3s/releases/download/v0.8.0/k3s](https://github.com/rancher/k3s/releases/download/v0.8.0/k3s)
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
which: no kubectl in (/usr/local/bin:/usr/bin)
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
which: no crictl in (/usr/local/bin:/usr/bin)
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
which: no ctr in (/usr/local/bin:/usr/bin)
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO]  systemd: Enabling k3s-agent unit
Created symlink from /etc/systemd/system/multi-user.target.wants/k3s-agent.service to /etc/systemd/system/k3s-agent.service.
[INFO]  systemd: Starting k3s-agent
Logs: which: no kubectl in (/usr/local/bin:/usr/bin)
which: no crictl in (/usr/local/bin:/usr/bin)
which: no ctr in (/usr/local/bin:/usr/bin)
Created symlink from /etc/systemd/system/multi-user.target.wants/k3s-agent.service to /etc/systemd/system/k3s-agent.service.
Output: [INFO]  Finding latest release
[INFO]  Using v0.8.0 as release
[INFO]  Downloading hash [https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt](https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt)
[INFO]  Downloading binary [https://github.com/rancher/k3s/releases/download/v0.8.0/k3s](https://github.com/rancher/k3s/releases/download/v0.8.0/k3s)
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO]  systemd: Enabling k3s-agent unit
[INFO]  systemd: Starting k3s-agent



[root@ip-172-31-33-136 bin]# **./kubectl get nodes**

NAME                            STATUS   ROLES    AGE   VERSION

ip-172-31-33-136.ec2.internal   Ready    master   19m   v1.14.5-k3s.1

ip-172-31-37-118.ec2.internal   Ready    worker   11s   v1.14.5-k3s.1

你可以看到使用k3sup设置k3s集群并在不到60秒的时间内将其作为Amazon EC2实例上运行的节点加入VM是如此容易。赶紧上手尝试吧!

转载于:https://my.oschina.net/u/3330830/blog/3098597

分享到:
评论

相关推荐

    ansible-k3sup:Ansible集合,用于在任何本地或远程VM上安装k3sup的轻量级实用程序,使用k3从零到KUBECONFIG

    是一个轻量级实用程序,在任何本地或远程VM上使用从零到KUBECONFIG。 您只需要ssh访问和k3sup二进制文件即可立即获得kubectl访问。 安装 ansible-galaxy collection install vandot.k3sup 例子 在DO上启动三个节点...

    K3服务器一键配置精灵

    金蝶K3服务器一键配置精灵需要从注册表获取信息,使用前请确认本机已经安装了金蝶K/3中间层服务部件。 金蝶K3服务器一键配置集成了多项系统安全策略的设置,能够为你节省下大量的时间,Windows2003 32位服务器,其他...

    RancherCNDocsPDF_K3s.pdf

    1. **单个二进制文件**:K3s被打包成一个单一的可执行文件,方便部署和更新。 2. **轻量级存储后端**:默认使用sqlite3作为存储机制,同时也支持etcd3、MySQL和PostgreSQL。 3. **封装的启动程序**:通过启动程序...

    K3s边缘计算数据中心解决方案.pdf

    K3s使用Kubeconfig文件来配置集群,支持curl -sfL https://get.k3s.io | sh -命令来安装K3s。 3.数据中心如何使用K3s? K3s可以用于构建新一代“不可变基础设施”,满足云原生不可变基础设施的要求。使用K3s可以...

    金蝶K3服务器一键配置精灵

    金蝶K3服务器一键配置精灵; 人人都会安装配置K3erp的工具,减少繁多的操作步骤全部交给配置精灵来完成!

    金蝶K3服务器安装与配置方法详细图解

    金蝶K3服务器安装与配置方法详细图解是一份详细的安装指南,旨在帮助用户快速安装和配置K/3服务器。该指南涵盖了安装前的准备、安装顺序、数据库服务部件安装、中间层服务部件安装、WEB服务部件安装、客户端部件安装...

    金蝶K3系统特性配置BOM使用方法

    ### 金蝶K3系统特性配置BOM使用方法 #### 特性配置BOM功能的应用背景、基本概念及应用流程 在当前制造业中,越来越多的企业采用面向订单生产的模式,这导致了产品多样化的需求日益增强。尤其是一些产品类型虽然...

    金蝶K3服务器一键配置

    金蝶K3 Wise服务器配置时碰到各种莫名其妙的问题吗?试试总部提供的这个工具吧。

    Ansible-k3s-ansible.zip

    Ansible-k3s-ansible.zip,ansible playbook部署k3s-kubernetes集群通过ansibe使用k3s构建kubernetes集群。,ansible是一个简单而强大的自动化引擎。它用于帮助配置管理、应用程序部署和任务自动化。

    k3s-monitoring:快速入门指南,可通过Prometheus Operator和kube-prometheus-stack Helm Chart在k3s集群上获得完整的监视和警报堆栈并运行

    在这个快速入门指南中,我们将探讨如何在K3s集群上利用Prometheus Operator和kube-prometheus-stack Helm Chart来建立一个全面的监控和报警系统。 首先,Prometheus是一个开源的度量分析和时间序列数据库,广泛用于...

    actions-k3s:Github操作,用于旋转本地k3s实例并运行kubectl命令

    将KUBECONFIG环境变量设置为作为操作的一部分创建的k3s集群。 kubeconfig:Kubeconfig位置 用法示例 - uses : debianmaster/actions-k3s@master id : k3s with : version : ' v0.9.1 ' - run : | kubectl get ...

    k3s-arm64版本

    k3s是rancher®出品的一个简化、轻量的k8s,本篇博客记录k3s的安装及踩的部分坑。 从名字上也能看出,k3s比k8s少了些东西,详情可见其官网k3s.io。而k3s-arm64是arm64平台可用的k3s版本

    K3帮助_安装配置指南

    【K3帮助_安装配置指南】是一份详细指导如何安装和配置金蝶K/3 V12.3系统的文档。金蝶K/3是一款企业级的财务和企业管理软件,广泛应用于企业的日常运营中。这份指南涵盖了从安装前的准备到安装步骤,再到常见问题的...

    Windows_server_2008_R2安装金蝶K3WISE中间层安装与配置。

    本文旨在提供一个详尽的指南,帮助用户在Windows Server 2008 R2操作系统上完成金蝶K3 WISE中间层的安装与配置过程。金蝶K3 WISE是一款广泛应用于企业财务管理的软件,它提供了全面的企业资源规划(ERP)解决方案。...

    金蝶K3 V12.1 配置指南

    金蝶K3 V12.1配置指南的知识点如下: 1. 金蝶K3系统架构概览: 金蝶K/3 V12.1是一个整合了数据库服务、中间层服务部件、WEB服务器和客户端的创新管理平台。这个平台涵盖了企业资源计划(ERP)管理的需求,其架构...

    k3s-v1.25.6离线安装包

    标题 "k3s-v1.25.6离线安装包" 指的是k3s的一个特定版本,即v1.25.6,它是一个专为离线环境设计的安装包。k3s是Kubernetes的一个轻量级实现,适用于边缘计算、物联网(IoT)场景以及资源有限的环境。Kubernetes,简称...

    k3s 1.29 最新离线包

    【k3s 1.29 最新离线包】是一个专为x86架构设计的Kubernetes轻量级发行版,适用于那些无法或不希望连接到互联网进行在线安装的环境。K3s是由Rancher Labs开发的,旨在简化在边缘计算、物联网(IoT)设备以及对资源需求...

    K3 Cloud工作流环境配置指南

    消息队列是K3 Cloud工作流环境中不可或缺的一部分,它负责处理系统间的数据交换和服务调用。根据不同的操作系统版本,安装过程略有不同。 ##### 1. 在Windows Server 2008或2008 R2上安装消息队列4.0 - 打开服务器...

    k3s-selinux-1.3-1.el7.noarch.rpm

    k3s-selinux-1.3-1.el7.noarch.rpm

Global site tag (gtag.js) - Google Analytics