某不知名博客 某不知名博客
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carsaid

安全界的小学生
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前言

  • 学习建议

  • Docker命令大全
  • Kubernetes教程

    • Kubernetes(K8s)学习教程 - 前言
    • 第1章-Kubernetes集群部署
    • 第2章-便捷性设置以及集群插件的安装
      • 1. 命令行Tab自动补全
      • 2. vim配置
      • 3. 安装calico网络
      • 4. 安装metrics-server监控
      • 5. 小结
    • 第3章-基础操作
    • 第4章-集群升级
    • 第5章-Pod
    • 第6章-Pod生命周期与资源限制
    • 第7章-Pod与节点
    • 第8章-控制器Deployment
    • 第9章-Deployment镜像变更和滚动更新
    • 第10章-其他控制器-以及标签表达式
    • 第11章-控制器与节点驱逐
    • 暂缓更新
    • 练习题

    • 常用命令及yaml配置

  • CKS教程

  • 云原生安全
  • Kubernetes教程
clincat
2023-06-09
目录

第2章-便捷性设置以及集群插件的安装

原创

本博客原创文章,转载请注明出处

- name: 原创
  desc: 本博客原创文章,转载请注明出处
  bgColor: '#F0DFB1'
  textColor: '#1078E6'
1
2
3
4

# 第2章-便捷性设置以及集群插件的安装

在上一章中,我们已经成功部署了 K8s 集群。在本章中将进行一些额外的配置,使得今后的工作更加便捷和高效。

本章要点
配置命令行Tab自动补全
优化vim参数
掌握集群插件的部署

# 11. 命令行Tab自动补全

我们使用的 K8s 命令行工具主要有两个:kubeadm和kubectl。前者是集群的管理,后者是集群的应用。

默认情况下,这两个工具都不支持 Tab 键命令补全,如果能够使用该功能,则会为我们的命令输入带来极大的便捷性(听闻高版本的 K8s 已经自带了 Tab 补全,但经过测试并没有......还是得自己配置)。

1、编辑/etc/profile文件,在文件上方添加以下内容,然后刷新配置。

# 编辑文件
vim /etc/profile

# 在文件中添加以下内容,添加完成后保存退出!注意!符号 < 和 ( 之间没有空格
source <(kubeadm completion bash)
source <(kubectl completion bash)

# 刷新配置
source /etc/profile
1
2
3
4
5
6
7
8
9
Not Found Image Not Found Image

2、在命令行输入以下命令,边输入 边按 Tab 键,测试是否能够自动补全。

# 创建新的 token 并打印加入集群的命令
kubeadm token create --print-join-command
1
2

# 22. vim配置

我们经常使用 vim 来编辑文件,在 K8s 中也有大量的配置文件等着我们编写。

学习更多

vi/vim基本使用 (opens new window)

配置 vim 相关参数,让我们编辑得更加顺畅(也不一定非得 vim,你用别的编辑器也行)。

1、编辑~/.vimrc文件,添加以下内容。

  • set nu:编辑文件时,显示行号。
  • syntax on:开启文件着色。
  • set tabstop=X:设置制表符的长度为 X 个字符。
  • set shiftwidth=X:设置自动缩进的长度为 X 个字符
  • set expandtab:用相等数量的 空格 来替换 缩进。
  • set autoindent:自动缩进。
# 编辑文件
vim ~/.vimrc

# 在文件中添加以下内容,添加完成后保存退出
set nu
syntax on
set tabstop=4 shiftwidth=4 expandtab autoindent
1
2
3
4
5
6
7
Not Found Image

2、保存退出后,再次打开文件,左边已经显示了行号,说明刚刚的配置生效了。

Not Found Image

# 33. 安装calico网络

在 K8s 集群中,Pod 一般都部署在不同的主机上,想要实现 Pod 之间的跨主机通信,就必须安装 CNI 网络插件。

学习更多

K8s七大CNI网络插件用法和对比 (opens new window)

本篇教程选择 calico (opens new window) 网络。

1、安装之前,查看集群状态,所有节点的状态都为 “NotReady”(未准备就绪),说明存在问题。

kubectl get nodes
1
Not Found Image

2、在 master 节点上,下载 calico 的配置文件。然后使用grep命令筛选出 安装过程中需要用到的镜像名称。

筛选出了五个镜像条目,其中有两个是重复的,实际上只有 3 个镜像。

# 下载
wget https://raw.githubusercontent.com/projectcalico/calico/v3.26.0/manifests/calico.yaml

# 筛选需要的镜像名称
grep image calico.yaml
1
2
3
4
5
Not Found Image

3、在所有节点上,运行以下命令,将三个镜像下载到本地。

提示

集群内所有节点都需要下载镜像,保证每个 master 和 worker 节点上都有镜像

# 通过for循环拉取每一个镜像(时间可能较长,需要耐心等待)
for i in docker.io/calico/cni:v3.26.0 docker.io/calico/node:v3.26.0 docker.io/calico/kube-controllers:v3.26.0 ; do ctr -n k8s.io i pull $i ; done
1
2
Not Found Image

4、在 master 节点上,编辑calico.yaml文件,修改其中的 Pod 网段。

在上一章中, kubeadm 初始化时指定的网段为10.244.0.0/16,所以此处也要设置为相同的值。

Not Found Image Not Found Image

5、修改文件之后,在 master 节点上运行以下命令,安装 calico 网络。

kubectl create -f calico.yaml
1
Not Found Image

笔记

一些用户可能喜欢用kubectl apply来创建 calico 应用。

但官方文档 (opens new window)里提到:由于 CRD 捆绑包的大小很大,使用kubectl apply可能会超出请求限制。所以,请使用kubectl create或kubectl replace。

6、安装 calico 网络之后,等待一段时间,所有节点的状态都会变为 “Ready” 。

图:节点状态依次变为 Ready

Not Found Image

图:所有节点的状态都变为 Ready ,Pod 网络环境配置成功。

Not Found Image

# 44. 安装metrics-server监控

如果想查看 K8s 集群里每个 节点或Pod 的工作负载(例如 CPU、内存使用情况),则需要安装监控类插件。

此处选择 metrics-server (opens new window) 监控。

1、尝试运行kubectl top nodes和kubectl top pods命令,出现错误 “度量API不可用”

Not Found Image

2、在 master 主机上,下载 metrics-server 的配置文件。

wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
1
Not Found Image

3、查找所需镜像名称,然后通过阿里云源 下载相应镜像,并修改镜像名称。

提示

集群内所有节点都需要下载镜像,并修改镜像名称,保证每个 master 和 worker 节点上都有正确的镜像

# 查找所需镜像名称
grep image components.yaml

# 拉取镜像(对所有节点执行该操作)
ctr -n k8s.io i pull registry.aliyuncs.com/google_containers/metrics-server:v0.6.3

# 修改镜像名称(对所有节点执行该操作)
ctr -n k8s.io i tag registry.aliyuncs.com/google_containers/metrics-server:v0.6.3 registry.k8s.io/metrics-server/metrics-server:v0.6.3
ctr -n k8s.io i ls | grep metr
1
2
3
4
5
6
7
8
9

图:搜索和下载镜像

Not Found Image

图:修改镜像名称

Not Found Image

4、在 master 主机上,编辑components.yaml文件,添加两个运行参数。

hostNetwork: true,使用主机的物理 IP 地址,而非 Pod 虚拟网络地址。

  • 该参数是为了确保 集群内的节点 能够与 metrics-server 应用进行通信。

--kubelet-insecure-tls,允许不安全的 TLS 连接,不检查证书。

  • kubelet 证书需要由 集群证书颁发机构 签名,配置证书的步骤较为繁琐。但由于我们只是学习 K8s,所以忽略证书检查(在 生产环境 中不建议这样做,因为这不安全)。

如果不添加以上两个参数,则 metrics-server 无法正常运行。

Not Found Image Not Found Image

5、修改文件之后,运行以下命令,安装 metrics-server 监控。

kubectl apply -f components.yaml
1
Not Found Image

6、等待一段时间后,运行以下命令,查看 节点/pod 的工作负载。

# 查看节点工作负载
kubectl top nodes

# 查看所有Pod工作负载
kubectl top pods -A
1
2
3
4
5

成功查看 CPU和内存 使用情况。

Not Found Image

# 55. 小结

在本章中,我们完成了 K8s 集群的便捷性配置 以及 相关插件的安装,现在可以正式投入使用。

在下一章中,将介绍 K8s 的一些常用命令及操作。

编辑 (opens new window)
第1章-Kubernetes集群部署
第3章-基础操作

← 第1章-Kubernetes集群部署 第3章-基础操作→

最近更新
01
API测试笔记
04-30
02
msfvenom
03-29
03
Metasploit
03-29
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Carsaid | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式