k8s部署MongDB全過程
一、環(huán)境準備
1.1 環(huán)境說明
本文搭建MongoDB,基于WMware虛擬機,操作系統(tǒng)CentOS 8,且已經基于Kubeadm搭好了k8s集群,k8s節(jié)點信息如下:
| 服務器 | IP地址 |
| master | 192.168.31.80 |
| node1 | 192.168.31.8 |
| node2 | 192.168.31.9 |
如需知道k8s集群搭建,可跳轉我的文章《kubeadm部署k8s集群》查看。
1.2 創(chuàng)建 namespace
kubectl create ns mongdb

1.3 創(chuàng)建mongdb賬號/密碼
echo -n 'root' | base64 # cm9vdA== echo -n 'xiaoning' | base64 # eGlhb25pbmc= # 可自行修改為自己的賬號密碼,同時注意保存好,下文中創(chuàng)建Secret需要
二、創(chuàng)建Secret
Kubernetes專門有一種資源叫做Secret,用來解決密碼、token、密鑰等敏感數據的配置問題,而不需要把這些敏感數據暴露PodTemplate的Spec信息中。
Secret也分三種類型,今天我們使用的是Opaque類型的Secret,它以base64編碼格式存儲密碼、密鑰等信息。
2.1 定義Secret 文件
cat > mongo-secret.yaml
2.2 生成mongo-secret.yaml
apiVersion: v1 kind: Secret metadata: name: mongodb-secret namespace: mongdb type: Opaque data: # echo -n 'username' | base64 mongo-root-username: cm9vdA== # echo -n 'password' | base64 mongo-root-password: eGlhb25pbmc=
2.3 執(zhí)行命令,生成Secret資源
kubectl create -f mongo-secret.yaml

三、創(chuàng)建mongodb服務
3.1 定義 MongoDB服務
cat > mongodb-server.yaml
3.2 生成mongodb-server.yaml
apiVersion: v1
kind: Service
metadata:
name: mongodb-service
namespace: mongdb
spec:
type: NodePort
selector:
app: mongodb
ports:
- protocol: TCP
port: 27017
targetPort: 27017
nodePort: 300173.3 執(zhí)行命令生成Service
kubectl create -f mongodb-server.yaml

四、創(chuàng)建Deployment
4.1 定義Deployment 服務
cat > mongodb-deployment.yaml
4.2 生成mongodb-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb-deployment
namespace: mongdb
labels:
app: mongodb
spec:
replicas: 1
selector:
matchLabels:
app: mongodb
template:
metadata:
labels:
app: mongodb
spec:
containers:
- name: mongodb
image: mongo
ports:
- containerPort: 21017
env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-username
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-password
volumeMounts:
- name: mongodb-storage
mountPath: /data/db
volumes:
- name: mongodb-storage
emptyDir: {}4.3 執(zhí)行名稱生成Deployment
kubectl create -f mongodb-deployment.yaml

五、測試


從上面兩個圖片可以看出,MongoDB服務的外網IP是192.168.31.8,端口是30017,是mongodb-server.yaml中的nodePort指定的;我們使用Robo 3T 這個工具,測試是否能正常連接和使用。




從上圖中,我們已經可以看出,我們部署成功了,而且也通過連接工具成功連接上來使用。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳解PipedInputStream和PipedOutputStream_動力節(jié)點Java學院整理
這篇文章主要為大家詳細介紹了管道PipedInputStream和PipedOutputStream,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05
slf4j?jcl?jul?log4j1?log4j2?logback各組件系統(tǒng)日志切換
這篇文章主要介紹了slf4j、jcl、jul、log4j1、log4j2、logback的大總結,各個組件的jar包以及目前系統(tǒng)日志需要切換實現(xiàn)方式的方法,有需要的朋友可以借鑒參考下2022-03-03
詳解SpringBoot 快速整合MyBatis(去XML化)
本篇文章主要介紹了詳解SpringBoot 快速整合MyBatis(去XML化),非常具有實用價值,需要的朋友可以參考下2017-10-10
Java面試synchronized偏向鎖后hashcode存址
這篇文章主要為大家介紹了Java面試中synchronized偏向鎖后hashcode存址詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05

