文章目录
1. k8s集群安装
一种是通过Play with K8S网站,在线体验k8s集群的使用,无需自行安装虚拟机及相关镜像文件。具体过程可参考:在线免费搭建k8s集群体验
另一种通过在虚拟机上自行安装多个系统并进行配置,其中可能会遇到多个虚拟机之间的网络通信问题等,主要可参考Blog①和②,在虚拟机上搭建k8s集群主要参考Blog③和④ ,本人使用的是CentOS 7 64位系统,k8s版本为v1.18.0。
参考Blog①:CentOs7网络配置
参考Blog②:虚拟机安装centos7并配置网络
参考Blog③:虚拟机从零搭建k8s集群
参考Blog④:kubernetes 集群搭建(kubeadm 方式)
XShell的安装和使用
2. K8S中的资源介绍
2.1 资源简介
K8S中所有的内容都抽象为资源,资源实例化之后叫做对象。
2.2 资源清单
K8S 中一般用 yaml 格式文件创建符合预期期望的 pod ,将 yaml 文件一般称为资源清单。关于YAML文件的格式查看其他文档。
资源清单格式
apiVersion: group/apiversion # 如果没有给定 group 名称,那么默认为 core,可以使用 kubectl apiversions # 获取当前 k8s 版本上所有的 apiVersion 版本信息( 每个版本可能不同 )
kind: Pod #资源类别
metadata: #资源元数据
name:
namespace:
lables:
annotations: # 主要目的是方便用户阅读查找
spec: # 期望的状态(disired state)
status:# 当前状态,本字段有 Kubernetes 自身维护,用户不能去定义
#---------------------可以看下面的一个例子
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
namespace: default
labels:
app: myapp
version: v1
spec:
containers:
- name: app
image: hub.aiguigu.com/library/myapp:v1
#创建pod.yaml文件之后,终端运行如下命令即可创建pod
kubectl apply -f pod.yaml
#或者采用如下命令
kubectl create -f pod.yaml
资源清单的常用命令
# 获取 apiversion 版本信息
kubectl api-versions
# 获取资源的 apiVersion 版本信息
kubectl explain pod
kubectl explain Ingres
# 获取字段设置帮助文档
kubectl explain pod
kubectl explain pod.version
### 字段配置格式
apiVersion <string> #表示字符串类型
metadata <Object> #表示需要嵌套多层字段
labels <map[string]string> #表示由k:v组成的映射
finalizers <[]string> #表示字串列表
ownerReferences <[]Object> #表示对象列表
hostPID <boolean> #布尔类型
priority <integer> #整型
name <string> -required- #如果类型后面接 -required-,表示为必填字段
通过定义清单文件创建 Pod
apiVersion: v1
kind: Pod
metadata:
name: pod-demo
namespace: default
labels:
app: myapp
spec:
containers:
- name: myapp-1
image: hub.atguigu.com/library/myapp:v1
- name: busybox-1
image: busybox:latest
command:
- "/bin/sh"
- "-c"
- "sleep 3600"
kubectl get pod xx.xx.xx -o yaml
# <!--使用 -o 参数 加 yaml,可以将资源的配置以 yaml的格式输出出来,也可以使用json,输出为json格式-->