国庆假期前,给小伙伴们更行完了云计算CLOUD第一周目的内容,现在为大家更行云计算CLOUD二周目内容,内容涉及K8S组件的添加与使用,K8S集群的搭建。最重要的主体还是资源文件的编写。
(*^▽^*)
环境准备:
主机清单
主机名 | IP地址 | 最低配置 |
---|---|---|
harbor | 192.168.1.30 | 2CPU,4G内存 |
master | 192.168.1.50 | 2CPU,4G内存 |
node-0001 | 192.168.1.51 | 2CPU,4G内存 |
node-0002 | 192.168.1.52 | 2CPU,4G内存 |
node-0003 | 192.168.1.53 | 2CPU,4G内存 |
node-0004 | 192.168.1.54 | 2CPU,4G内存 |
node-0005 | 192.168.1.55 | 2CPU,4G内存 |
#不一定要那么多从节点 ,你自己电脑随便运行 3个 node结点机器就好。^_^
cloud 01
一、理解k8s架构
架构内容:
首先 有1台 客户机(client) 可以访问测试各个结点。
#为了方便就用云计算cloud一周目的跳板机(ecs-proxy)来,方便测试的同时,还可以同步上传软件到其他机器。
master控制节点机器(选一个台虚拟机),再搭建几台 Node 节点机器。(该操作在云计算 第二阶段ansible 时候讲过,不记得可以回去看 )。
#主机清单,和ansible.cfg文件的设置。方便运行自动化剧本和 节点测试。
私有镜像仓库(云计算cloud一周目结尾搭建的harbor镜像仓库)。
二、搭建k8s集群
6、设置 Tab 键
7、master 安装
#开始在主节点操作。设哪台为 master节点,最好给主机名取号,方便区分。
安装 calico 插件
安装计算节点
#从节点有自动化的方式可以配置,不懂可以请教AI。用到ansible自动化中的vars模块。
相关安装软件、配置系统环境、内核参数都可以自己转化剧本方式编写。
下面演示的是手动安装的操作。每个 node结点步骤都是一样的,
你也可以通过winterm的同步窗口一起编辑配置。
2、node 安装
#安装配置好后,加入master控制节点的 token凭证和 hash证书。
#每个节点配置好后,查看集群工作状态。
查看集群状态
cloud 02
#上节课讲了 安装和配置 K8S相关组件与集群搭建。 这节课讲具体的组件命令的使用。
接下来 ,我们一起去 熟悉k8s的具体操作。 O(∩_∩)O
一、熟悉 k8s中 kubectl 管理命令
k8s集群管理
信息查询命令
子命令 | 说明 |
---|---|
help | 用于查看命令及子命令的帮助信息 |
cluster-info | 显示集群的相关配置信息 |
api-resources | 查看当前服务器上所有的资源对象 |
api-versions | 查看当前服务器上所有资源对象的版本 |
config | 管理当前节点上的认证信息 |
二、 熟悉 pod 创建过程及相位状态
Pod 管理
创建 Pod
- 上传镜像到 harbor 仓库
rsync -av public/myos.tar.xz 192.168.1.50:/root/
# 导入镜像
[root@master ~]# docker load -i myos.tar.xz
# 上传镜像到 library 项目
[root@master ~]# docker images|while read i t _;do
[[ "${t}" == "TAG" ]] && continue
[[ "${i}" =~ ^"harbor:443/".+ ]] && continue
docker tag ${i}:${t} harbor:443/library/${i##*/}:${t}
docker push harbor:443/library/${i##*/}:${t}
docker rmi ${i}:${t} harbor:443/library/${i##*/}:${t}
done
Pod 创建过程(图解)
Pod 管理命令(1)
子命令 | 说明 | 备注 |
---|---|---|
run | 创建 Pod 资源对象 | 创建即运行,没有停止概念 |
get | 查看资源对象的状态信息 | 常用参数: -o 显示格式 |
create | 创建资源对象 | 不能创建 Pod |
describe | 查询资源对象的属性信息 | |
logs | 查看容器的报错信息 | 常用参数: -c 容器名称 |
Pod 管理命令(2)
子命令 | 说明 | 备注 |
---|---|---|
exec | 在某一个容器内执行特定的命令 | 可选参数: -c 容器名称 |
cp | 在容器和宿主机之间拷贝文件或目录 | 可选参数: -c 容器名称 |
delete | 删除资源对象 | 可选参数: -l 标签 |
三、熟悉资源清单文件
资源清单文件
#不记得咋写的,默写下面的格式三遍,试试唤醒记忆
cloud 03
一、属性 pod模版与版主手册
#学习前第一件事,默写资源清单最简单、最基本的格式2-3遍。
模板与帮助信息
二、pod多容器与嵌入式脚本
管理多容器 Pod
- 受到多容器影响的命令: ["logs", "exec", "cp"]
容器保护策略
案例4 自定义 pod 脚本
##########答案#####################
---
kind: Pod
apiVersion: v1
metadata:
name: mymem
spec:
restartPolicy: OnFailure
containers:
- name: linux
image: myos:8.5
command: ["sh"]
args:
- -c
- |
while sleep 5;do
use=$(free -m |awk '$1=="Mem:"{print $3}')
if (( ${use} < 1000 ));then
echo -e "\x1b[32mINFO:\x1b[39m running normally"
else
echo -e "\x1b[31mWARN:\x1b[39m high memory usage"
fi
done
三、Pod调度策略
基于名称调度
标签管理