Kubernetes(简称为K8s)是一个开源的容器编排引擎,用于自动化容器的部署、伸缩和操作。在Kubernetes中,资源指的是计算、存储和网络等可供容器使用的资源。

### K8s资源指什么

在Kubernetes中,资源指的是可供容器使用的计算、存储和网络等资源。这些资源可以通过定义Kubernetes资源对象来进行管理和分配。Kubernetes将集群中的资源抽象为资源对象,方便用户进行管理。

### K8s资源对象种类

Kubernetes提供了多种资源对象用于管理集群中的资源,常见的资源对象包括:

- Pod:Kubernetes最小的部署单元,可以包含一个或多个容器。
- Deployment:用于管理应用的部署,定义了Pod的副本数量和更新策略等信息。
- Service:用于定义一组需要访问的Pod的访问方式,可以通过Service访问集群中的应用。
- Namespace:用于将集群划分为不同的逻辑区域,方便进行资源隔离和管理。

### 操作步骤

以下是实现“K8s的资源指什么”的操作步骤及相应代码示例:

| 步骤 | 操作 | 代码示例 |
| --- | --- | --- |
| 1 | 安装Kubernetes集群 | |
| 2 | 创建一个Pod对象 | `kubectl apply -f pod.yaml` |
| 3 | 创建一个Deployment对象 | `kubectl apply -f deployment.yaml` |
| 4 | 创建一个Service对象 | `kubectl apply -f service.yaml` |
| 5 | 查看集群中的资源对象 | `kubectl get pods` |

### 代码示例

#### 1. 创建一个Pod对象

pod.yaml:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
spec:
containers:
- name: myapp-container
image: nginx
```

上述代码示例中,定义了一个名为`myapp-pod`的Pod对象,包含一个基于`nginx`镜像的容器。

#### 2. 创建一个Deployment对象

deployment.yaml:

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deployment
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: nginx
```

上述代码示例中,定义了一个名为`myapp-deployment`的Deployment对象,包含3个Pod副本,使用`nginx`镜像。

#### 3. 创建一个Service对象

service.yaml:

```yaml
apiVersion: v1
kind: Service
metadata:
name: myapp-service
spec:
selector:
app: myapp
ports:
- protocol: TCP
port: 80
targetPort: 80
```

上述代码示例中,定义了一个名为`myapp-service`的Service对象,用于访问标签为`app: myapp`的Pod,将容器端口映射到服务端口。

#### 4. 查看集群中的资源对象

通过以下命令可以查看集群中的Pod对象:

```bash
kubectl get pods
```

以上就是关于Kubernetes中资源的介绍及操作步骤和代码示例。希望通过这篇文章,你能够理解K8s中资源的概念和使用方法。如果有任何疑问,欢迎随时询问。