原创 Shell - shell是必備的技能

shell魔力在於它可以將Linux中的工具直接寫到腳本里,在terminal中使用的命令可以直接寫到程序中,後面你會意識到這是一個多麼了不起的事情!所以學好shell,其實並不只是指shell語言本身,比如if、for等這些控制結構,還

原创 PostgreSQL - 主從熱備:可以分擔主庫流量,還能備份

常見的PG備份有三種方式:定時pg_dump,定時備份文件,還有基於WAL的備份,它們各有優劣,這篇文章我就對比一下這三種方法,總結一下三種的概念、做法,以及適合的場景。 概念 “pg_dump”很容易理解,對數據庫定期使用pg_dump

原创 GIS - 底圖,怎麼做怎麼選擇

底圖往往是一些基礎信息,比如行政區、街道、水系,它們變動較少,一般放在圖層最下方。底圖一般使用柵格瓦片,柵格瓦片有其自身侷限性: 地理信息內容改變,柵格瓦片無法做到實時更新。柵格瓦片需要預生成,生成以後不能改變,如果地理信息有變動,那麼需

原创 OpenLayers 3 之 使用地理數據傳輸格式GeoJSON

用戶請求地理數據或者其他數據,服務器要以一定的客戶端能夠識別的數據格式返回,數據格式是否高效,直接影響用戶的體驗!首先要求數據格式要是輕量級的,還要求客戶端處理數據方便快捷,相較於XML,JSON滿足這兩個要求,且目前應用廣泛,非

原创 Docker/Kubernetes - 調試

容器啓動失敗,單機環境下,我們可以這樣檢查原因: docker logs container_name docker inspect container_name 在kubernetes容器雲環境中,可以這樣檢查原因: kubectl l

原创 OpenLayers 3 之 使用矢量圖層(Vector)

更新 - 2018-05-25由於openlayers的版本升級迭代,本文程序已經不可運行,最新代碼可到這裏查看: https://github.com/QingyaFan/openlayers-examples/blob/master/

原创 Git - 把 issue 和 milestone 用起來

一個軟件很難一開始就能沒有問題的實現所有功能,都需要後期不斷進行迭代。如何讓這個迭代的過程井然有序,可以將git的ticket和milestone結合起來。 issue,也可以看做ticket,由自己和其他同事提出,可以有新功能,和bug

原创 Docker - Docker重啓!機器宕機!容器能自己恢復嗎?

能! 啓動容器的時候,可以指定容器在某些可預測(docker engine重啓)與不可預測(機器宕機重啓)時的重啓行爲,利用這個功能,我們可以放心當重啓docker engine,也不用擔心機器重啓導致應用不可用。 這個神奇的功能是“re

原创 Kubernetes - 如何在一個完全離線的環境中快速建立一個kubernetes集羣

  要做的是什麼 我們討論的是這樣一個任務,在一個完全隔絕外網環境的多臺機器(物理機或虛擬機)上自動化地建立kubernetes集羣,這個任務包含一下幾個要點: 純內網,與外網隔絕; 自動化,只需配置機器IP,即可安裝,安裝過程無需人工干

原创 Docker - 製作一個合格的docker鏡像,以及最佳實踐

  什麼是鏡像,什麼是容器 製作Docker鏡像之前,我們先明確一下鏡像是什麼,百度百科對於鏡像的定義如下: 鏡像(Mirroring)是一種文件存儲形式,是冗餘的一種類型,一個磁盤上的數據在另一個磁盤上存在一個完全相同的副本即爲鏡像。

原创 Kubernetes - 服務網格(service mesh)

1. 服務網格誕生的背景 服務網格並不是新概念,微服務架構被越來越多的機構採用是服務網格誕生的大背景。 微服務相對於多個服務一體的單體應用來說,有諸多好處,因而被越來越多的採用: 技術可異構,各個服務之間採用RPC或HTTP通信,約定好接

原创 Kubernetes - flannel的默認網卡設置

前兩天新配置了幾臺虛擬機,像往常一樣安裝集羣,但是在flannel這一步總是有問題,查看日誌: Failed to find any valid interface to use: failed to get default inter

原创 Kubernetes - 記一次所有機器重啓導致的集羣問題

最近給客戶部署的集羣由於機器重啓集羣不能啓動,首先執行kubectl get node,發現沒有可用的node,於是去看centos的系統日誌/var/log/message,日誌中有x509,證書無效或已過期,心想,爲啥重啓集羣會導致證

原创 Docker - 容器內應用和外部非容器應用互相訪問方法

Docker搭建開發環境用的非常多,通常開發機器上既有容器形式的應用,又有本機跑着或者調試的程序,它們之間互相依賴,如何讓它們之間通信順暢,有時候是一個挺困難的事情。容器應用和容器外應用互相訪問分爲三種情況: 容器內應用和容器內應用 容器

原创 Docker - 掛載宿主機目錄和Volume是不同的概念

一直一來,對於多個容器需要共享訪問同一數據目錄時,我們都是採用將宿主機的某一目錄掛載到容器內到相關目錄,使容器內到程序可以訪問到數據,這種方式能解決我們到問題,同時我們還經常使用這種方式備份數據庫鏡像到數據。然而這種方式也一直有一些缺點: