1.可在服务器上面创建
https://kubernetes.io/docs/home/ #k8s官网
搜索Deployment 第一个就是例子
vi rs-mongodb.yaml
apiVersion: apps/v1
kind: Deployment #资源类型
metadata:
namespace: klvchen
name: mongodb
labels:
app: mongodb
spec:
replicas: 1
selector:
matchLabels:
app: mongodb
template:
metadata:
labels:
app: mongodb
spec:
nodeName: k8s-node1 # 固定在 k8s-node1 节点
containers:
- name: mongodb
image: mongo:4.2.9
resources:
limits: # 限定资源
cpu: 2000m
memory: 8Gi
requests:
cpu: 100m
memory: 8Gi
env:
- name: MONGO_INITDB_ROOT_USERNAME # 设置用户名
value: root
- name: MONGO_INITDB_ROOT_PASSWORD # 设置密码
value: 'klvchen123'
volumeMounts:
- mountPath: /data/db #容器的实际数据目录
name: mongodb-volume
volumes:
- name: mongodb-volume
hostPath:
path: /data/rs-mongodb-volume # 映射的宿主机目录
type: DirectoryOrCreate
--- #区分每个资源的开始
apiVersion: v1
kind: Service #资源类型,创建service
metadata:
namespace: klvchen
name: mongodb
spec:
type: ClusterIP
selector: #唯一性与Deployment上的保持一致性
app: mongodb
ports:
- port: 27017
targetPort: 27017
启动及访问
# 启动
kubectl apply -f rs-mongodb.yaml
# 查看
kubectl get pod -n klvchen -o wide
# 在 K8S 集群中的其他容器可以通过 FQDN 来访问
mongodb.klvchen.svc.cluster.local:27017
mongodb 简单操作
# 可以通过 kubectl -n klvhcen exec -it POD_NAME /bin/bash 进入容器
# 进入 mongodb 客户端
mongo admin
# 认证
db.auth('root','klvchen123')
# mongodb 创建 test 数据库,创建用户和密码
use test
db.createUser(
{
user: "test",
pwd: "test123",
roles: [ { role: "readWrite", db: "test" } ]
}
)
# 备份,会在当前目录下默认创建名为 dump 的备份文件夹
mongodump --host 127.0.0.1 --port 27017 -u test --authenticationDatabase test
# 恢复
mongorestore --host 127.0.0.1 --port 27017 -u test --authenticationDatabase recommend dump
2.也可以直接在阿里云的ack上创建
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: default
name: mongodb
labels:
app: mongodb
spec:
replicas: 1
selector:
matchLabels:
app: mongodb
template:
metadata:
labels:
app: mongodb
spec:
containers:
- name: mongodb
image: mongo:4.2.9
resources:
limits: # 限定资源
cpu: 500m
memory: 2Gi
requests:
cpu: 100m
memory: 2Gi
env:
- name: MONGO_INITDB_ROOT_USERNAME # 设置用户名
value: root
- name: MONGO_INITDB_ROOT_PASSWORD # 设置密码
value: 'znst@123'
volumeMounts:
- mountPath: /data/db #容器的实际数据目录
name: mongodb-volume
volumes:
- name: mongodb-volume
hostPath:
path: /data/rs-mongodb-volume # 映射的宿主机目录
type: DirectoryOrCreate
---
apiVersion: v1
kind: Service #资源类型,创建service
metadata:
namespace: default
name: mongodb
spec:
type: ClusterIP
selector: #唯一性与Deployment上的保持一致性
app: mongodb
ports:
- port: 27017
targetPort: 27017
--- #区分每个资源的开始
3.mongodb常用命令
mongo --port 27017 -u "root" -p "znst@123" #登录mongodb
show dbs #查看数据库
use test #创建数据库
db.demo.insert({"name":"测试数据库"}) #需要插入数据才能显示数据库
db.dropDatabase() #删除数据库,需要use test到需要删除的库
db #显示当前使用的数据。