Kubernetes (K8s) 是一种用于自动化部署、扩展和管理容器化应用程序的开源平台。在K8s中,我们可以使用各种类型的数据库来存储数据,以满足不同的业务需求。本文将介绍K8s中常用的几种数据库,并给出相应的代码示例,帮助新手了解K8s如何使用数据库。

### K8s中常用的数据库
在K8s中,常用的数据库包括但不限于以下几种:
1. MySQL:关系型数据库管理系统,用于存储结构化数据。
2. Redis:内存数据库,用于缓存数据。
3. MongoDB:文档数据库,用于存储非结构化数据。

### 实现步骤
下面是实现“K8s用了哪些数据库”的步骤表格:

| 步骤 | 操作 |
| ------ | ------ |
| 步骤一:创建K8s集群 | 使用Minikube或者kubeadm创建一个单节点或者多节点的K8s集群。 |
| 步骤二:部署数据库 | 部署所需的数据库,如MySQL、Redis或者MongoDB。 |
| 步骤三:创建数据库服务 | 在K8s中创建数据库的Service对象,用于暴露数据库服务。 |
| 步骤四:创建数据库Pod | 创建数据库的Pod对象,用于运行数据库实例。 |
| 步骤五:设置数据持久化 | 设置数据库的数据持久化,以确保数据不会丢失。 |
| 步骤六:连接数据库 | 编写应用程序代码,连接K8s中运行的数据库实例。 |

### 代码示例
#### 步骤一:创建K8s集群
使用以下代码使用Minikube创建一个单节点K8s集群:
```bash
minikube start
```

#### 步骤二:部署MySQL数据库
使用以下代码部署一个MySQL数据库:
```yaml
apiVersion: v1
kind: Pod
metadata:
name: mysql-pod
spec:
containers:
- name: mysql
image: mysql:latest
ports:
- containerPort: 3306
```

#### 步骤三:创建MySQL Service
使用以下代码创建一个MySQL的Service对象:
```yaml
apiVersion: v1
kind: Service
metadata:
name: mysql-service
spec:
selector:
app: mysql
ports:
- protocol: TCP
port: 3306
targetPort: 3306
```

#### 步骤四:创建MySQL数据库Pod
使用以下代码创建一个MySQL数据库的Pod:
```bash
kubectl apply -f mysql-pod.yaml
```

#### 步骤五:设置数据持久化
使用以下代码设置MySQL数据库的数据持久化:
```yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /data/mysql
```

#### 步骤六:连接MySQL数据库
在应用程序中使用以下代码连接MySQL数据库:
```python
import mysql.connector

mydb = mysql.connector.connect(
host="mysql-service",
user="root",
password="password"
)

print(mydb)
```

通过以上步骤和代码示例,新手可以了解K8s中常用的数据库及其使用方法,帮助其在K8s平台上部署和管理不同类型的数据库。希望这篇文章对你有所帮助!