k8s部署MongDB全過程
一、環(huán)境準(zhǔn)備
1.1 環(huán)境說明
本文搭建MongoDB,基于WMware虛擬機(jī),操作系統(tǒng)CentOS 8,且已經(jīng)基于Kubeadm搭好了k8s集群,k8s節(jié)點(diǎn)信息如下:
| 服務(wù)器 | IP地址 |
| master | 192.168.31.80 |
| node1 | 192.168.31.8 |
| node2 | 192.168.31.9 |
如需知道k8s集群搭建,可跳轉(zhuǎn)我的文章《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= # 可自行修改為自己的賬號密碼,同時(shí)注意保存好,下文中創(chuàng)建Secret需要
二、創(chuàng)建Secret
Kubernetes專門有一種資源叫做Secret,用來解決密碼、token、密鑰等敏感數(shù)據(jù)的配置問題,而不需要把這些敏感數(shù)據(jù)暴露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服務(wù)
3.1 定義 MongoDB服務(wù)
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 服務(wù)
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

五、測試


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




從上圖中,我們已經(jīng)可以看出,我們部署成功了,而且也通過連接工具成功連接上來使用。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot啟動后卡住無日志的幾種情況小結(jié)
這篇文章主要介紹了springboot啟動后卡住無日志的幾種情況小結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
詳解PipedInputStream和PipedOutputStream_動力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了管道PipedInputStream和PipedOutputStream,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
slf4j?jcl?jul?log4j1?log4j2?logback各組件系統(tǒng)日志切換
這篇文章主要介紹了slf4j、jcl、jul、log4j1、log4j2、logback的大總結(jié),各個(gè)組件的jar包以及目前系統(tǒng)日志需要切換實(shí)現(xiàn)方式的方法,有需要的朋友可以借鑒參考下2022-03-03
JAVA中l(wèi)ist,set,數(shù)組之間的轉(zhuǎn)換詳解
以下是對JAVA中l(wèi)ist,set,數(shù)組之間的轉(zhuǎn)換進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-09-09
Java實(shí)現(xiàn)的Base64加密算法示例
這篇文章主要介紹了Java實(shí)現(xiàn)的Base64加密算法,結(jié)合實(shí)例形式分析了Java實(shí)現(xiàn)的base64編碼轉(zhuǎn)換相關(guān)使用方法及操作注意事項(xiàng),需要的朋友可以參考下2018-04-04
詳解SpringBoot 快速整合MyBatis(去XML化)
本篇文章主要介紹了詳解SpringBoot 快速整合MyBatis(去XML化),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-10-10
Java面試synchronized偏向鎖后hashcode存址
這篇文章主要為大家介紹了Java面試中synchronized偏向鎖后hashcode存址詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
什么是Spring Boot 應(yīng)用開發(fā)(最新推薦)
SpringBoot是Java生態(tài)系統(tǒng)中的一個(gè)強(qiáng)大框架,它簡化了企業(yè)級應(yīng)用的開發(fā)流程,通過約定優(yōu)于配置的原則減少了繁瑣的樣板代碼,本文給大家介紹什么是Spring Boot 應(yīng)用開發(fā),感興趣的朋友跟隨小編一起看看吧2025-12-12
Java?從json提取數(shù)組并轉(zhuǎn)換為list的操作方法
這篇文章主要介紹了Java?從json提取出數(shù)組并轉(zhuǎn)換為list,使用getJSONArray()獲取到j(luò)sonarray后,再將jsonArray轉(zhuǎn)換為字符串,最后將字符串解析為List列表,本文通過實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下2022-10-10

