k8s 搭建方式有多种,如果你是内网环境,希望占用服务器资源少或是边缘系统(如ARM系统),强烈推荐您使用 k3s进行安装

k3s 简介

  • 轻量级 Kubernetes。安装简单,内存只有一半,所有的二进制都不到 100MB
  • K3s 是一个完全符合 Kubernetes 的发行版,有以下增强功能。

k3s架构

基本就是k8s的架构 k3s Server节点对应k8sMaster节点, Agent节点对应Worker节点
在这里插入图片描述

中文官方文档

https://docs.rancher.cn/docs/k3s/_index/

三台服务器快速搭建k8s集群

服务器环境:

  • 3台 阿里云 ECS云主机
  • ECS在同一个区域同一个内网下
  • 操作系统 Linux Centos8
  • 硬件配置 2核8G
  • 采用docker作为k3s的容器

安装说明

  1. 本次集群没有对master节点做高可用,主要是快速体验k8s集群环境

  2. 本次采用docker作为k3s的容器

k3s默认使用container,两者命令对比表:

idcontainerd 命令docker 命令备注
1ctr image lsdocker images获取image信息
2ctr image pull nginxdocker pull nginxpull 一个nginx的image
3ctr image tag nginx nginx-testdocker tag nginx nginx-testtag 一个nginx的image
4ctr image push nginx-testdocker push nginx-testpush nginx-test的image
5ctr image pull nginxdocker pull nginxpull 一个nginx的image
6ctr image import nginx.tardocker load<nginx.tar.gz导入本地镜像ctr不支持压缩
7ctr run -d --env 111 nginx-test nginxdocker run -d --name=nginx nginx-test运行的一个容器
8ctr task lsdocker ps查看运行的容器
  1. docker、containerd的关系

从k8s的角度看,可以选择 containerd 或 docker 作为运行时组件:Containerd 调用链更短,组件更少,更稳定,占用节点资源更少

链接:https://blog.csdn.net/x356982611/article/details/106683238

  1. 需要开发的端口

K3s Server节点的入站规则:

协议端口描述
TCP6443K3s agent 节点Kubernetes API Server
UDP8472K3s server 和 agent 节点仅对 Flannel VXLAN 需要
TCP10250K3s server 和 agent 节点Kubelet metrics

通常情况下,所有出站流量都是允许的。

步骤1 修改主机名,保持唯一

内网地址主机名称
172.20.167.19k8s-master
172.20.167.20k8s-node1
172.20.167.21k8s-node2

在每一台ECS 下添加hosts信息:

cat >> /etc/hosts << EOF
172.20.167.19 k8s-master
172.20.167.20 k8s-node1
172.20.167.21 k8s-node2
EOF

步骤2 安装docker

如果需要内网离线安装,可采用二进制方式安装:
https://blog.csdn.net/gzt19881123/article/details/109454467

如果可联网,可以采用官网提供方式安装:
https://blog.csdn.net/gzt19881123/article/details/97915765

步骤3 安装master节点


curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server --docker

cat /var/lib/rancher/k3s/server/node-token

步骤4 安装worker节点加入集群

在 master节点主机上查看 /var/lib/rancher/k3s/server/node-token的值即为 K3S_TOKEN 的值

https://k8s-master:6443 连接master主机

curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://k8s-master:6443 K3S_TOKEN=xxxxxx INSTALL_K3S_EXEC="--docker"  sh -  

步骤5 查看集群

在master上通过命令 kubectl get node查看集群节点

[root@k8s-master ~]# kubectl get node
NAME         STATUS   ROLES                  AGE   VERSION
k8s-master   Ready    control-plane,master   14h   v1.20.0+k3s2
k8s-node2    Ready    <none>                 13h   v1.20.0+k3s2
k8s-node1    Ready    <none>                 13h   v1.20.0+k3s2
[root@k8s-master ~]#

步骤6 部署 k8s仪表盘 dashboard

下面的文章可以部署成功,简单方便:
https://www.jianshu.com/p/026fd0165535

如果按照k3s官网的介绍的方式,则需要做如下工作:
raw.githubusercontent.com 无法访问,需在 hosts文件中添加ip映射:
199.232.96.133 raw.githubusercontent.com

Logo

开源、云原生的融合云平台

更多推荐