重庆幸运农场中奖金额|重庆幸运农场官网
MyException - 我的異常網
當前位置:我的異常網» 操作系統 » 容器開啟數據服務之旅系列(一):Kubernetes怎么解

容器開啟數據服務之旅系列(一):Kubernetes怎么解自建PostgreSQL運維之痛

www.h0f1.com  網友分享于:2018-04-18  瀏覽:0次
容器開啟數據服務之旅系列(一):Kubernetes如何解自建PostgreSQL運維之痛
摘要:?通過阿里云Kubernetes容器服務,開啟你的數據服務之旅 (一)云上運維自建數據庫之痛,使用容器服務自動恢復數據庫postgresql實例 概述 本文為大家介紹一種容器化的數據服務 posgresql db on ACK,通過使用云盤自動掛載實現的塊存儲PVC來做到數據庫的免運維恢復。
?
容器開啟數據服務之旅系列(一):Kubernetes如何解自建PostgreSQL運維之痛
?
概述
?
本文為大家介紹一種容器化的數據服務 posgresql db on ACK,通過使用云盤自動掛載實現的塊存儲PVC來做到數據庫的免運維恢復。借助阿里云Kubernetes服務與阿里云存儲資源的深度整合,打造數據庫實例的免運維異地(ECS)恢復的不死神話。
?
先決條件
?
1.你已經通過阿里云容器服務創建了一個Kubernetes集群,詳細步驟參見創建Kubernetes集群
2.阿里云容器服務的存儲插件(默認情況存儲插件已經自動部署在阿里云Kubernetes容器服務)
?
從容器服務控制臺創建一個posgresql實例
?
使用三次點擊來創建一個postgresql的不死實例
1.登錄?https://cs.console.aliyun.com/
2.點擊 “應用目錄”
3.選擇 "postgresql"
?
4 (可選)選擇你的Kubernetes集群. e.g. k8s-gpu
5 (可選)選擇你的應用的命名空間。默認: default
6 給你的數據庫應用取個容易記住的名字。 e.g. postgresql-online
?
?
7 (可選) 點擊 “參數” 來定制你的數據庫實例
?
1.修改 persistence.size: 20Gi 增加數據庫云盤的容量 2.修改 persistence.storageClass: alicloud-disk-efficiency 調整數據卷所在云盤的性能。比如改為alicloud-disk-ssd 掛載ssd類型的
?
?
## Persist data to a persitent volume persistence: enabled: true ## A manually managed Persistent Volume and Claim ## Requires persistence.enabled: true ## If defined, PVC must be created manually before volume will be bound # existingClaim: ## database data Persistent Volume Storage Class ## if defined, user has to define storageClassName: alicloud-disk to support dynamic provision of alicloud-disk ## If defined, storageClassName: <storageClass> ## If set to "-", storageClassName: "", which disables dynamic provisioning ## If undefined (the default) or set to null, no storageClassName spec is ## set, choosing the default provisioner. (gp2 on AWS, standard on ## GKE, AWS & OpenStack) ## #storageClass: "alicloud-disk-ssd" storageClass: "alicloud-disk-efficiency" accessMode: ReadWriteOnce size: 20Gi subPath: "postgresql-db"
8 點擊 “部署”, 完成數據發布
9 點擊 “Kubernetes 控制臺”,查看部署實例
?
10 點擊容器組,點擊 postgresql-online-postgresql 查看數據庫實例密碼。容器實例啟動在節點:cn-hangzhou.i-bp1fazljd8u2ylk2otdo
?
?
11 測試postgresql數據庫的異地(ECS)恢復
?
1.添加測試數據
?
ssh <public ip of kubernetes master node >` # kubectl run my-pg-postgresql-client --rm --tty -i --image postgres \ --env "PGPASSWORD=$PGPASSWORD" \ --command -- psql -U postgres \ -h postgresql-online-postgresql postgres If you don't see a command prompt, try pressing enter. postgres=# create table t1 (id int); CREATE TABLE postgres=# insert into t1 values(10); INSERT 0 1 postgres=# select * from t1; id ---- 10 (1 row)
?
1.驅逐數據庫實例從ECS節點 i-bp1fazljd8u2ylk2otdo 到 i-bp1fazljd8u2ylk2otdp
?
#kubectl get pod -o wide | grep postgresql-online-postgresql postgresql-online-postgresql-78884fbcf6-6mfzz 1/1 Running 0 36m 172.30.4.4 cn-hangzhou.i-bp1fazljd8u2ylk2otdo #kubectl cordon cn-hangzhou.i-bp1fazljd8u2ylk2otdo #kubectl delete pod postgresql-online-postgresql-78884fbcf6-6mfzz pod "postgresql-online-postgresql-78884fbcf6-6mfzz" deleted # kubectl get pod -o wide|grep postgresql-online-postgresql #postgresql-online-postgresql-78884fbcf6-87ttg 0/1 Running 0 15s 172.30.3.5 cn-hangzhou.i-bp1fazljd8u2ylk2otdp
?
1.檢驗數據,實例遷移, 數據庫實例自動化恢復, 數據不丟失。
?
# kubectl get pod -o wide|grep postgresql-online-postgresql #postgresql-online-postgresql-78884fbcf6-87ttg 0/1 Running 0 15s 172.30.3.5 cn-hangzhou.i-bp1fazljd8u2ylk2otdp kubectl run my-pg-postgresql-client --rm --tty -i --image postgres \ > --env "PGPASSWORD=$PGPASSWORD" \ > --command -- psql -U postgres \ > -h postgresql-online-postgresql postgres If you don't see a command prompt, try pressing enter. postgres=# select * from t1; id ---- 10 (1 row)
?
CLI控: 使用命令行完成postgresql實例的創建,遷移驗證
?
login k8s master and deploy an postgresql db in seconds.
?
ssh <public ip of kubernetes master node > helm install -n postgresql-online --set'persistence.size=30Gi,persistence.storageClass=alicloud-disk-ssd' stable/postgresql
?
To get your user password run:
?
PGPASSWORD=$(kubectl get secret --namespacedefault my-pg-postgresql -o jsonpath="{.data.postgres-password}" | base64 --decode; echo)
To connect to your database run the following command (using the env variable from above):
kubectl run my-pg-postgresql-client --rm --tty -i --image postgres \--env "PGPASSWORD=$PGPASSWORD"\--command -- psql -U postgres \ -h postgresql-online-postgresql postgres
?
To connect to your database directly from outside the K8s cluster:
?
PGHOST=127.0.0.1 PGPORT=5432# Execute the following commands to route the connection:export POD_NAME=$(kubectl get pods --namespacedefault -l "app=my-pg-postgresql" -o jsonpath="{.items[0].metadata.name}") kubectl port-forward $POD_NAME 5432:5432#kubectl get pod -o wide | grep postgresql-online-postgresql postgresql-online-postgresql-78884fbcf6-6mfzz 1/1 Running 036m 172.30.4.4 cn-hangzhou.i-bp1fazljd8u2ylk2otdo #kubectl cordon cn-hangzhou.i-bp1fazljd8u2ylk2otdo #kubectl delete pod postgresql-online-postgresql-78884fbcf6-6mfzz pod "postgresql-online-postgresql-78884fbcf6-6mfzz" deleted # kubectl get pod -o wide|grep postgresql-online-postgresql#postgresql-online-postgresql-78884fbcf6-87ttg 0/1 Running 0 15s 172.30.3.5 cn-hangzhou.i-bp1fazljd8u2ylk2otdp
?
Test original postgresql db could be recovered on different node.
?
#kubectl get pod -o wide|grep postgresql-online-postgresql #postgresql-online-postgresql-78884fbcf6-87ttg 0/1 Running 015s 172.30.3.5cn-hangzhou.i-bp1fazljd8u2ylk2otdp kubectl run my-pg-postgresql-client --rm --tty -i --image postgres \>--env "PGPASSWORD=$PGPASSWORD"\>--command -- psql -U postgres \> -h postgresql-online-postgresql postgres If you don't see a command prompt, try pressing enter. postgres=# select * from t1; id ---- 10 (1 row)
?
原文鏈接
閱讀更多干貨好文,請關注掃描以下二維碼:?

文章評論

編程語言是女人
編程語言是女人
5款最佳正則表達式編輯調試器
5款最佳正則表達式編輯調試器
Java 與 .NET 的平臺發展之爭
Java 與 .NET 的平臺發展之爭
我的丈夫是個程序員
我的丈夫是個程序員
那些性感的讓人尖叫的程序員
那些性感的讓人尖叫的程序員
寫給自己也寫給你 自己到底該何去何從
寫給自己也寫給你 自己到底該何去何從
程序員和編碼員之間的區別
程序員和編碼員之間的區別
 程序員的樣子
程序員的樣子
程序員的一天:一寸光陰一寸金
程序員的一天:一寸光陰一寸金
旅行,寫作,編程
旅行,寫作,編程
2013年美國開發者薪資調查報告
2013年美國開發者薪資調查報告
60個開發者不容錯過的免費資源庫
60個開發者不容錯過的免費資源庫
為啥Android手機總會越用越慢?
為啥Android手機總會越用越慢?
我是如何打敗拖延癥的
我是如何打敗拖延癥的
我跳槽是因為他們的顯示器更大
我跳槽是因為他們的顯示器更大
“骯臟的”IT工作排行榜
“骯臟的”IT工作排行榜
Web開發人員為什么越來越懶了?
Web開發人員為什么越來越懶了?
程序員的鄙視鏈
程序員的鄙視鏈
什么才是優秀的用戶界面設計
什么才是優秀的用戶界面設計
2013年中國軟件開發者薪資調查報告
2013年中國軟件開發者薪資調查報告
程序員周末都喜歡做什么?
程序員周末都喜歡做什么?
要嫁就嫁程序猿—錢多話少死的早
要嫁就嫁程序猿—錢多話少死的早
十大編程算法助程序員走上高手之路
十大編程算法助程序員走上高手之路
每天工作4小時的程序員
每天工作4小時的程序員
漫畫:程序員的工作
漫畫:程序員的工作
10個調試和排錯的小建議
10個調試和排錯的小建議
“懶”出效率是程序員的美德
“懶”出效率是程序員的美德
Java程序員必看電影
Java程序員必看電影
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
那些爭議最大的編程觀點
那些爭議最大的編程觀點
代碼女神橫空出世
代碼女神橫空出世
程序員最害怕的5件事 你中招了嗎?
程序員最害怕的5件事 你中招了嗎?
中美印日四國程序員比較
中美印日四國程序員比較
Web開發者需具備的8個好習慣
Web開發者需具備的8個好習慣
一個程序員的時間管理
一個程序員的時間管理
為什么程序員都是夜貓子
為什么程序員都是夜貓子
Google倫敦新總部 猶如星級莊園
Google倫敦新總部 猶如星級莊園
10個幫程序員減壓放松的網站
10個幫程序員減壓放松的網站
程序員必看的十大電影
程序員必看的十大電影
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
看13位CEO、創始人和高管如何提高工作效率
看13位CEO、創始人和高管如何提高工作效率
程序員應該關注的一些事兒
程序員應該關注的一些事兒
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
當下全球最炙手可熱的八位少年創業者
當下全球最炙手可熱的八位少年創業者
如何成為一名黑客
如何成為一名黑客
老程序員的下場
老程序員的下場
親愛的項目經理,我恨你
親愛的項目經理,我恨你
初級 vs 高級開發者 哪個性價比更高?
初級 vs 高級開發者 哪個性價比更高?
如何區分一個程序員是“老手“還是“新手“?
如何區分一個程序員是“老手“還是“新手“?
軟件開發程序錯誤異常ExceptionCopyright © 2009-2015 MyException 版權所有
重庆幸运农场中奖金额