首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【K8s】专题五:Kubernetes 安装方法之 Kind

【K8s】专题五:Kubernetes 安装方法之 Kind

作者头像
行者Sun
发布2024-09-02 12:33:19
发布2024-09-02 12:33:19
1.9K0
举报
文章被收录于专栏:KubernetesKubernetes

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!

如果对您有帮助,烦请点赞、关注、转发!如果您有其他想要了解的,欢迎私信联系我~

Kind 简介

Kind 是一个在 Docker 容器中运行 Kubernetes 集群的工具,主要是为了测试 Kubernetes 本身而设计的,但也可以用于本地开发或 CI。

Kind 下载、安装

代码语言:javascript
复制
# AMD架构
wget -O /usr/bin/kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
chmod +x /usr/bin/kind
 
# ARM架构
wget -O /usr/bin/kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-arm64
chmod +x /usr/bin/kind
 
# 查看版本信息
kind version

Kind 部署 Kubernetes 集群

1、准备工作

代码语言:javascript
复制
# 关闭防火墙
systemctl disable --now firewalld
 
# 关闭 selinxu
setenforce 0
sed -i ’s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
 
# 清空 iptables 规则
iptables -F && iptables -t nat -F
 
# 禁用 swap 分区
swapoff -a
sed -i '/swap / s/^\(.*\)$/#\1/g' /etc/fstab
 
# 升级内核版本
🔔 部分低版本内核会出现报错 cgroup namespaces aren't enabled in the kernel: unknown
yum update -y
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
yum install -y --enablerepo=elrepo-kernel kernel-ml    # 安装新内核(例如,最新的稳定版本是 kernel-ml)
grub2-mkconfig -o /boot/grub2/grub.cfg                 # 更新 GRUB 引导菜单
grub2-set-default 0                                    # 修改默认引导顺序,使新内核成为默认引导
cat /proc/cmdline                                      # 重启服务器后查看是否生效
# 配置主机间 SSH 免密(详细过程略)
# 安装 docker、kubectl(详细过程略)
🔔 docker 需要安装 20 以上版本,否则会出现报错 unknown flag: --cgroupns

2、部署集群

  • 部署单节点集群
代码语言:javascript
复制
kind create cluster
 
🔔 可选配置项
# --image kindest/node:v1.xx.xx           # 指定集群版本
# --name xxx                              # 指定集群上下文名称(不指定则默认为 kind)
# --wait 5s / 5m                          # 指定安装超时时间
# --retain                                # 保留日志,并通过 kind export logs 导出
# --config xx.yaml                        # 创建多节点集群,需要指定 yaml 文件
  • 部署多节点集群
代码语言:javascript
复制
kind create cluster --config config.yaml
 
# config.yaml 配置示例(1 Master + 2 Node)
apiVersion: kind.x-k8s.io/v1alpha4
kind: Cluster
nodes:
- role: control-plane
  image: kindest/node:v1.27.3
- role: worker
  image: kindest/node:v1.27.3
- role: worker
  image: kindest/node:v1.27.3

3、实测结果

  • Kind 部署 Kubernetes 集群非常简单、方便
  • 可以提前下载 Kind 集群镜像,方便离线部署

Kind 常用命令

代码语言:javascript
复制
kind --help
kind creates and manages local Kubernetes clusters using Docker container 'nodes'
 
Usage:
  kind [command]
 
Available Commands:
  build       Build one of [node-image]
  completion  Output shell completion code for the specified shell (bash, zsh or fish)
  create      Creates one of [cluster]
  delete      Deletes one of [cluster]
  export      Exports one of [kubeconfig, logs]
  get         Gets one of [clusters, nodes, kubeconfig]
  help        Help about any command
  load        Loads images into nodes
  version     Prints the kind CLI version
 
Flags:
  -h, --help              help for kind
      --loglevel string   DEPRECATED: see -v instead
  -q, --quiet             silence all stderr output
  -v, --verbosity int32   info log verbosity, higher value produces more output
      --version           version for kind
 
Use "kind [command] --help" for more information about a command.
代码语言:javascript
复制
# 查看集群信息
kind get clusters
 
# 查看集群节点
kind get nodes
 
# 查看集群上下文
kind get kubeconfig
 
# 集群节点导入主机镜像
kind load docker-image <镜像名称>
 
# 集群节点导入打包镜像(tar文件)
kind load image-archive xxxx.tar
 
# 导出日志到指定目录
kind export logs somedir
.
├── docker-info.txt
├── kind-control-plane
│   ├── alternatives.log
│   ├── containerd.log
│   ├── containers
│   ├── images.log
│   ├── inspect.json
│   ├── journal.log
│   ├── kubelet.log
│   ├── kubernetes-version.txt
│   ├── pods
│   └── serial.log
└── kind-version.txt
 
# 删除集群
kind delete cluster
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档