云计算百科
云计算领域专业知识百科平台

k8sday03搭建kubernetes集群(2/2)

今天继续完成k8s的集群搭建,没看上一篇的建议看看上一篇,有超详细的搭建思路哦~

创建多节点集群

1、编写kind文件

①注意事项:
  • 配置文件的编写工具:任何文本编辑器编写均可,eg、Notepad、Vs Code等等

    • 使用记事本编写,默认保存为 UTF-8 with BOM,可能导致 Kind 无法识别,只需要在保存文件的时候选择“另存为” → 编码选择 UTF-8

  • 文件保存格式:必须是 YAML 格式(后缀为 .yaml 或 .yml)

  • 配置文件保存位置:任意目录均可(当然你要记得住呀,待会利用配置文件创建集群的时候要用得着哦~)

②编写文件并保存
  • 【基础配置,只为搭建最简单的集群】在你的配置文件中写入:

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
– role: control-plane  # Master 节点
– role: worker         # Worker 节点 1
– role: worker         # Worker 节点 2

  • 【高级配置,应对你有特别需求】如我需要指定版本或暴露 Master 节点的端口等等

    在你的配置文件中写入:

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
– role: control-plane          # Master 节点
  extraPortMappings:
  – containerPort: 6443
    hostPort: 36443  # 宿主机端口,之后可以通过localhost:36443访问API Server
    protocol: TCP
  image: kindest/node:v1.27.3  # 指定版本
– role: worker                 # Worker 节点 1
  image: kindest/node:v1.27.3  # 指定版本
– role: worker                 # Worker 节点 2
  image: kindest/node:v1.27.3  # 指定版本

注意:Kind 对节点角色有严格的命名规范,不能自定义名称,也就是说你的配置文件中的角色名称不可 以自定义!!!

Kind 目前不支持动态扩容,如果要增加新的节点,需删除,然后修改你的配置文件并重建集群

之后如下图保存在你的任意目录中

2、使用配置文件创建集群

本步创建集群有两种方法,一种是使用绝对路径创建,一种是相对路径创建

Ⅰ、绝对路径

# 先进入你的Ubuntu或者是其他发行版
wsl -d Ubuntu

# 使用配置文件创建集群
kind create cluster –name my-multi-node-cluster1 –config "/mnt/e/cloud-native/k8s/kindconfigfile1.yaml"

Ⅱ、相对路径

# 先进入你的Ubuntu或者是其他发行版
wsl -d Ubuntu

# 先移到你的配置文件所在目录
cd /mnt/e/cloud-native/k8s/

# 使用配置文件创建集群
kind create cluster –name my-multi-node-cluster1 –config kindconfigfile1.yaml

–name :指的是你创建的多节点集群的名字,可自定义

-config :指的是你刚刚编辑的kind配置文件,后面要加入对应的路径(注意最好是使用Linux路径格式)


可能问题:Docker 无法从镜像仓库拉取 kindest/node:v1.29.2 镜像,这百分之八九十就是因为我们是在国内导致的网络问题,我们只要给我们的wsl2中的docker配置镜像源加速即可(你也可以将你Windows本地的docker中的镜像源复制加到Ubuntu中的docker),以下我提供一个简单的解决方法:

# 首先确认 Docker 服务正在运行
# 如果没启动报错就重启一下docker restart
docker ps

# 编辑 Docker 配置文件,一般在/etc/docker/daemon.json(若不存在则新建)
# 配置镜像源,加速下载,但可能仍下载比较慢,但还是可以下下来的
sudo tee /etc/docker/daemon.json <<EOF
{
 "registry-mirrors": [
   "https://docker.mirrors.ustc.edu.cn",
   "https://registry-1.docker.io"
],
 "insecure-registries": []
}
EOF

# 重启docker使修改生效
sudo systemctl restart docker

如果还是拉取失败,看看你有没有关闭 VPN 或代理工具,这些也可能有影响

拉取成功,集群创建成功可以得到类似如图提示:

3、验证节点状态

输入以下代码验证:

kubectl get nodes

你将会看到类似画面:

显示了 1 个 Master(control-plane)和 2 个 Worker 节点


可能问题:STATUS显示NOTREADY,这一般是多台虚拟机通过minikube或其他工具搭建集群容易遇到的问题,即网络问题,你可能需要配置部署一下CNI网络的一些插件,这也恰恰体现了kind的优势

4、查看主节点的核心组件

输入以下代码查看Pod:

# 记住要指定你要查看的Pod的指定的命名空间
kubectl get pods -n kube-system

如果正确搭建完成,可以看见如下输出:

5、kubectl核心基础命令

①常见资源类型
  • Pods—-po(别名)

  • deployments—-deploy(别名)

  • services—-svc(别名)

  • namespace—-ns(别名)

  • nodes—-no(别名)

②、Pod操作
  • 创建Pod:kubectl create -f pod.yaml

  • 获取 Pod 列表:kubectl get pods

  • 删除 Pod:kubectl delete pod <pod-name>

  • 进入 Pod 的容器:kubectl exec -it <pod-name> — /bin/sh

③、 Deployment 操作
  • 创建 Deployment:kubectl create -f deployment.yaml

  • 获取 Deployment 列表:kubectl get deployments

  • 更新 Deployment:kubectl set image deployment/<deployment-name> <container-name>=<new-image>

  • 删除 Deployment:kubectl delete deployment <deployment-name>

④. Service 操作
  • 创建 Service:kubectl create -f service.yaml

  • 获取 Service 列表:kubectl get services

  • 删除 Service:kubectl delete service <service-name>

⑤. Namespace 操作
  • 创建 Namespace:kubectl create namespace <namespace-name>

  • 获取 Namespace 列表:kubectl get namespaces

  • 删除 Namespace:kubectl delete namespace <namespace-name>

更多常见操作参考官方文档哈~

6、多节点使用kubectl【可选】

不建议在 Kubernetes Worker 节点上安装和使用 kubectl,安全风险高、维护复杂化、资源浪费,但如果你想,觉得方便也可以

但是我更建议仅在 Control Plane 或外部机器使用 kubectl

①、进入你要安装kubectl的容器
②、在 容器内安装 kubectl
③、复制主节点的 kubeconfig 到容器

整体下来如下:

docker exec -it <worker容器名称> /bin/bash

# 下载 kubectl(使用国内镜像加速)
curl -LO https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl

# 安装到可执行路径
chmod +x kubectl
mv kubectl /usr/local/bin/

# 验证安装
kubectl version –client

# 查看主节点的 kubeconfig
cat /etc/kubernetes/admin.conf

# 复制主节点的 kubeconfig
scp /etc/kubernetes/admin.conf

# 创建 .kube 目录
mkdir -p ~/.kube

# 粘贴内容到配置文件
cat > ~/.kube/config <<EOF
<paste kubeconfig content here>
EOF

# 设置权限
chmod 600 ~/.kube/config

赞(0)
未经允许不得转载:网硕互联帮助中心 » k8sday03搭建kubernetes集群(2/2)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!