Kubernetes(k3s)基础学习(一) -- 使用集群部署

Kubernetes(业界简称k8s) 确实难学。 部署困难, 概念繁重,由于业界文档乱七八糟,理解起来又特别吃力费解。
拿万事开头难,来形容K8s的部署安装 绝对是再适合不过了。正所谓连安装都解决不了,何谈体验。那时候就在我要放弃的时候,我找到了k3s。

什么是k3s? 你就当作是Rancher团队 体会到了k8s给企业和开发者带来了“重”的痛苦后,所开发出来又完全符合k8s标准的优化版本。
虽然说是优化,但它高度整合了k8s所有的概念,这意味着你在k3s所掌握的知识是可以完美兼容到k8s上。部署方式高效、优雅又简洁,起码你不需要再陷入在部署陷阱里无法自拨。
同时k3s 属于 kubernetes 官方认证的发行版,即使你在企业中使用,只要规模不上数十加百台服务,你完全不用担心k3s会给你带坑。

环境准备

本文的部署安装仅仅针对本机测试,本人使用的机器为Mac Air m1。如果配置环境不一致并遇上问题,请查看其他文献并进行调整。

在Mac机上可以通过Multipass 进行模拟集群环境,点击请移步Multipass - 在Mac book 上轻松搭建Linux 虚拟机

通过Multipass 构建了以下环境,其中server节点(192.168.64.2) 会作为Master。

1650190050987.jpg

马上在server节点安装k3s

k3s官网:https://k3s.io/
通过Multipass 进入server节点(192.168.64.2):

multipass shell server


#######
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-107-generic aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Sun Apr 17 18:36:50 CST 2022

  System load:             0.64
  Usage of /:              58.3% of 4.68GB
  Memory usage:            79%
  Swap usage:              0%
  Processes:               136
  Users logged in:         0
  IPv4 address for cni0:   10.42.0.1
  IPv4 address for enp0s1: 192.168.64.2
  IPv6 address for enp0s1: fd67:d40e:50d4:ad7b:5054:ff:fe98:d2a6

 * Super-optimized for small spaces - read how we shrank the memory
   footprint of MicroK8s to make it the smallest full K8s around.

   https://ubuntu.com/blog/microk8s-memory-optimisation

9 updates can be applied immediately.
To see these additional updates run: apt list --upgradable


Last login: Thu Apr 14 14:51:43 2022 from 192.168.64.1
ubuntu@server:~$ 

键入k3s master 端的安装命令并回车:

ubuntu@server:~$ curl -sfL https://get.k3s.io | sh -

#######成功的信息

[INFO]  Finding release for channel stable
[INFO]  Using v1.22.7+k3s1 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.22.7+k3s1/sha256sum-arm64.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.22.7+k3s1/k3s-arm64
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Skipping installation of SELinux RPM
[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
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s

要确保k3s成功安装,只需要运行如下命令:

ubuntu@server2:~$ k3s -v
######
k3s version v1.22.7+k3s1 (8432d7f2)
go version go1.16.10

接下来添加node1、node2 作为集群节点

  • 第一件事,先从server 节点获得token。
ubuntu@server2:~$ sudo cat /var/lib/rancher/k3s/server/node-token
K103cefa023d87f18ed7194edccd28808880684af1abf4daa2d50fdf34db2291283::server:f8761e328d46b6c3d3695c70b8b4697b

记下上面的token值:K103cefa023d87f18ed7194edccd28808880684af1abf4daa2d50fdf34db2291283::server:f8761e328d46b6c3d3695c70b8b4697b

  • 然后通过multipass 分别进入node1节点服务器:
multipass shell node1

在node1 的环境下,执行添加节点命令:

ubuntu@node1:~$ sudo curl -sfL https://get.k3s.io | K3S_URL=https://192.168.64.2:6443 K3S_TOKEN=K103cefa023d87f18ed7194edccd28808880684af1abf4daa2d50fdf34db2291283::server:f8761e328d46b6c3d3695c70b8b4697b sh -

#####
#其中K3S_URL 指向server节点,即192.168.64.2。必须要添加https前缀,可以忽略是否有在server节点安装了SSL证书。
#K3S_TOKEN 就是在server节点上获取的token
  • 把上述步骤也在Node2节点操作一遍后,验证集群是否安装成功,回到server节点执行如下命令:
ubuntu@server:~$ sudo kubectl get node -o wide
NAME     STATUS   ROLES                  AGE   VERSION        INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
server   Ready    control-plane,master   15d   v1.22.7+k3s1   192.168.64.2   <none>        Ubuntu 20.04.4 LTS   5.4.0-107-generic   containerd://1.5.9-k3s1
node2    Ready    <none>                 15d   v1.22.7+k3s1   192.168.64.4   <none>        Ubuntu 20.04.4 LTS   5.4.0-107-generic   containerd://1.5.9-k3s1
node1    Ready    <none>                 15d   v1.22.7+k3s1   192.168.64.3   <none>        Ubuntu 20.04.4 LTS   5.4.0-107-generic   containerd://1.5.9-k3s1
ubuntu@server:~$ 

#####
#查看集群状态的命令为kubectl get node -o wide
#STATUS 为Ready ,则代表已经添加成功。

通过上述安装后,已经代表k3s 在本机是正常执行,下一篇我们再讲解如何在k3s下建立起一个可访问的应用程序。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容