k8s部署MongDB全過(guò)程
一、環(huán)境準(zhǔn)備
1.1 環(huán)境說(shuō)明
本文搭建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賬號(hào)/密碼
echo -n 'root' | base64 # cm9vdA== echo -n 'xiaoning' | base64 # eGlhb25pbmc= # 可自行修改為自己的賬號(hào)密碼,同時(shí)注意保存好,下文中創(chuàng)建Secret需要
二、創(chuàng)建Secret
Kubernetes專門有一種資源叫做Secret,用來(lái)解決密碼、token、密鑰等敏感數(shù)據(jù)的配置問(wèn)題,而不需要把這些敏感數(shù)據(jù)暴露PodTemplate的Spec信息中。
Secret也分三種類型,今天我們使用的是Opaque類型的Secret,它以base64編碼格式存儲(chǔ)密碼、密鑰等信息。
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

五、測(cè)試


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




從上圖中,我們已經(jīng)可以看出,我們部署成功了,而且也通過(guò)連接工具成功連接上來(lái)使用。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot配置Access-Control-Allow-Origin教程
文章介紹了三種配置Spring Boot跨域訪問(wèn)的方法:1. 使用過(guò)濾器;2. 在WebConfig配置文件中設(shè)置;3. 通過(guò)注解配置,作者分享了個(gè)人經(jīng)驗(yàn),并鼓勵(lì)讀者支持腳本之家2025-03-03
詳解Spring Security中權(quán)限注解的使用
這篇文章主要為大家詳細(xì)介紹一下Spring Security中權(quán)限注解的使用方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定參考價(jià)值,需要的可以參考一下2022-05-05
SpringBoot整合MyCat實(shí)現(xiàn)讀寫分離的方法
這篇文章主要介紹了SpringBoot整合MyCat實(shí)現(xiàn)讀寫分離的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
Spring Cloud之服務(wù)監(jiān)控turbine的示例
這篇文章主要介紹了Spring Cloud之服務(wù)監(jiān)控turbine的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
java使用httpclient發(fā)送post請(qǐng)求示例
這篇文章主要介紹了java使用httpclient發(fā)送post請(qǐng)求示例,依賴JSON、HTTPClient等jar包,需要的朋友可以參考下2014-02-02
項(xiàng)目管理利器-Maven(Windows安裝)圖文教程
下面小編就為大家?guī)?lái)一篇項(xiàng)目管理利器-Maven(Windows安裝)圖文教程。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
bootstrap實(shí)現(xiàn)多個(gè)下拉框同時(shí)搜索的實(shí)例
下面小編就為大家?guī)?lái)一篇bootstrap實(shí)現(xiàn)多個(gè)下拉框同時(shí)搜索的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07

