前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >k3s集群部署

k3s集群部署

作者头像
行 者
发布2023-10-20 14:28:16
4960
发布2023-10-20 14:28:16
举报
文章被收录于专栏:运维技术迷

简介

轻量级 Kubernetes。安装简单,内存只有一半,所有的二进制都不到 100MB。

什么是K3s

K3s 是一个完全符合 Kubernetes 的发行版,有以下增强功能。

  • 打包为单个二进制文件。
  • 基于 sqlite3 的轻量级存储后端作为默认存储机制。 etcd3,MySQL,Postgres 仍然可用。
  • 封装在简单的启动程序中,该启动程序处理很多复杂的 TLS 和选项。
  • 默认情况下是安全的,对轻量级环境有合理的默认值。
  • 添加了简单但功能强大的“batteries-included”功能,例如:本地存储提供程序,服务负载均衡器,Helm controller 和 Traefik ingress controller。
  • 所有 Kubernetes 控制平面组件的操作都封装在单个二进制文件和进程中。这使 K3s 可以自动化和管理复杂的集群操作,例如分发证书。
  • 外部依赖性已最小化(仅需要现代内核和 cgroup 挂载)。 K3s 软件包需要依赖项,包括:
    • containerd
    • Flannel
    • CoreDNS
    • CNI
    • 主机实用程序 (iptables, socat, etc)
    • Ingress controller (traefik)
    • 嵌入式 service loadbalancer
    • 嵌入式 network policy controller

为什么叫 K3s?

我们希望安装的 Kubernetes 在内存占用方面只是一半的大小。Kubernetes 是一个 10 个字母的单词,简写为 K8s。所以,有 Kubernetes 一半大的东西就是一个 5 个字母的单词,简写为 K3s。K3s 没有全称,也没有官方的发音。

环境

系统:Centos7 Master:2H2G Node:2H1G

安装前猪准备

端口

协议

端口

描述

TCP

6443

K3s agent 节点

Kubernetes API

UDP

8472

K3s server 和 agent 节点

R 仅对 Flannel VXLAN 需要

TCP

10250

K3s server 和 agent 节点

kubelet

*我这边是自己的测试环境,所以就直接把防火墙关了,生产环境请放行上述端口。

关闭防火墙

代码语言:javascript
复制
systemctl stop firewalld

关闭SELINUX

代码语言:javascript
复制
[root@la ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 

修改主机名

代码语言:javascript
复制
hostnamectl set-hostname la.svr.lian.st
hostnamectl set-hostname oracle-jp-1
hostnamectl set-hostname oracle-jp-2

安装K3S

Master

代码语言:javascript
复制
curl -sfL https://get.k3s.io | sh -
systemctl start k3s
systemctl status k3s

Node

两台node分别执行下面的命令加入k3s集群。

代码语言:javascript
复制
k3s_url="https://master-ip:6443/" 
k3s_token="K10235c114df226beae70871ab80e94ff02377136e227e075269a12e5a7120a05d6::server:02ba7f8e86c540608ec70f816706c27f"
curl -sfL https://get.k3s.io | K3S_URL=${k3s_url} K3S_TOKEN=${k3s_token} sh -

查看状态

Master

登陆master执行如下命令查看群集

代码语言:javascript
复制
[root@la ~]# kubectl config get-clusters
NAME
default
[root@la ~]# kubectl cluster-info
Kubernetes master is running at https://127.0.0.1:6443
CoreDNS is running at https://127.0.0.1:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Metrics-server is running at https://127.0.0.1:6443/api/v1/namespaces/kube-system/services/https:metrics-server:/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
[root@la ~]# kubectl get  nodes
NAME             STATUS   ROLES    AGE   VERSION
la.svr.lian.st   Ready    master   23h   v1.19.3+k3s3
oracle-jp-1      Ready    <none>   23h   v1.19.3+k3s3
oracle-jp-2      Ready    <none>   23h   v1.19.3+k3s3
[root@la ~]# kubectl get namespaces
NAME              STATUS   AGE
default           Active   23h
kube-system       Active   23h
kube-public       Active   23h
kube-node-lease   Active   23h
[root@la ~]# kubectl get endpoints -n kube-system
NAME                    ENDPOINTS                                  AGE
kube-dns                10.42.0.5:53,10.42.0.5:53,10.42.0.5:9153   23h
metrics-server          10.42.0.3:443                              23h
traefik                 10.42.0.6:443,10.42.0.6:80                 23h
traefik-prometheus      10.42.0.6:9100                             23h
rancher.io-local-path   <none>                                     23h
[root@la ~]# kubectl get pods -n kube-system
NAME                                     READY   STATUS      RESTARTS   AGE
coredns-66c464876b-plmpz                 1/1     Running     0          23h
local-path-provisioner-7ff9579c6-b2l6h   1/1     Running     5          23h
metrics-server-7b4f8b595-pntrb           1/1     Running     5          23h
helm-install-traefik-mnnc5               0/1     Completed   5          23h
svclb-traefik-l5kkc                      2/2     Running     0          23h
traefik-5dd496474-drglt                  1/1     Running     0          23h
svclb-traefik-xb5p8                      2/2     Running     0          23h
svclb-traefik-tm4mf                      2/2     Running     0          23h

查看crictl

代码语言:javascript
复制
[root@la ~]# crictl ps
CONTAINER           IMAGE               CREATED             STATE               NAME                     ATTEMPT             POD ID
a0d277d944f0f       aa764f7db3051       24 hours ago        Running             traefik                  0                   d901b8d037c60
6a8c2e042b759       897ce3c5fc8ff       24 hours ago        Running             lb-port-443              0                   060080b214c82
fd4ec1592776c       897ce3c5fc8ff       24 hours ago        Running             lb-port-80               0                   060080b214c82
874ef012c371d       9dd718864ce61       24 hours ago        Running             metrics-server           5                   6ebb911f70806
a07c00dbf117a       e422121c9c5f9       24 hours ago        Running             local-path-provisioner   5                   da755a84fb168
88090d40c4757       4e797b3234604       24 hours ago        Running             coredns                  0                   e4f2d5f67b23d

参考资料

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
    • 什么是K3s
      • 为什么叫 K3s?
      • 环境
      • 安装前猪准备
        • 端口
          • 关闭防火墙
            • 关闭SELINUX
              • 修改主机名
              • 安装K3S
                • Master
                  • Node
                  • 查看状态
                    • Master
                      • 查看crictl
                      • 参考资料
                      相关产品与服务
                      对象存储
                      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档