k8s部署MongDB全過程
一、環(huán)境準(zhǔn)備
1.1 環(huán)境說明
本文搭建MongoDB,基于WMware虛擬機,操作系統(tǒng)CentOS 8,且已經(jīng)基于Kubeadm搭好了k8s集群,k8s節(jié)點信息如下:
服務(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= # 可自行修改為自己的賬號密碼,同時注意保存好,下文中創(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: 30017
3.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
五、測試
從上面兩個圖片可以看出,MongoDB服務(wù)的外網(wǎng)IP是192.168.31.8,端口是30017,是mongodb-server.yaml中的nodePort指定的;我們使用Robo 3T 這個工具,測試是否能正常連接和使用。
從上圖中,我們已經(jīng)可以看出,我們部署成功了,而且也通過連接工具成功連接上來使用。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot配置Access-Control-Allow-Origin教程
文章介紹了三種配置Spring Boot跨域訪問的方法:1. 使用過濾器;2. 在WebConfig配置文件中設(shè)置;3. 通過注解配置,作者分享了個人經(jīng)驗,并鼓勵讀者支持腳本之家2025-03-03詳解Spring Security中權(quán)限注解的使用
這篇文章主要為大家詳細(xì)介紹一下Spring Security中權(quán)限注解的使用方法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定參考價值,需要的可以參考一下2022-05-05SpringBoot整合MyCat實現(xiàn)讀寫分離的方法
這篇文章主要介紹了SpringBoot整合MyCat實現(xiàn)讀寫分離的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04Spring Cloud之服務(wù)監(jiān)控turbine的示例
這篇文章主要介紹了Spring Cloud之服務(wù)監(jiān)控turbine的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05java使用httpclient發(fā)送post請求示例
這篇文章主要介紹了java使用httpclient發(fā)送post請求示例,依賴JSON、HTTPClient等jar包,需要的朋友可以參考下2014-02-02