在Kubernetes上運行WordPress的好處是顯而易見的。首先是安裝很是簡單(在已有集羣的狀況下),其次是可靠性更高,第三是規模能夠伸縮。固然,能夠在多個雲之間更爲容易地遷移也是很是重要的一點。nginx
Kubernetes上運行WordPress是一個可伸縮性服務運行於雲原生集羣的典型案例,拿來學習也是極好的。git
Kubernetes是一個容器編排系統,能夠實現基於容器技術的大規模集羣調度、管理。步驟包括安裝關閉swap、清空ipTable、安裝Docker、添加Kubernetes安裝源、安裝Kubeadm//kubectl/kubelet基礎工具和服務、配置Kubernetes集羣、安裝Flannel網絡驅動、安裝Dashboard、安裝Helm軟件包管理工具等等。github
參考:web
在擴大系統的規模時,WordPress應用服務的Pod能夠增長運行的拷貝數量,遇到故障時Pod能夠轉移到其它節點。爲了浮動節點都可以訪問統一的存儲,咱們使用NFS來創建網絡存儲服務,固然在雲數據中心也可使用雲計算服務商提供的存儲卷。對於規模較大的站點,也能夠本身利用或部署Rook(Ceph)分佈式存儲系統。服務器
參考:網絡
使用Helm進行安裝。app
$ helm install --name blog stable/wordpres
其中,blog爲給WordPress創建的單獨的域名,Helm將會自動建立。執行完畢後,可使用 helm ls 查看安裝的部署實例。而後再到Kubernetes Dashboard中能夠看到新的命名空間和Pod的運行狀態。負載均衡
首先,須要安裝Ingress Controller,Kubernetes雖然提供了Ingress的規則配置項,並未提供缺省的執行器,須要單獨安裝。分佈式
參考:wordpress
而後,咱們將主機IP地址(或訪問路徑)映射到WordPress站點,以便外來客戶端的訪問。
piVersion: extensions/v1beta1 kind: Ingress metadata: name: k8s-wordpress namespace: blog annotations: # nginx.ingress.kubernetes.io/ssl-redirect: "true" nginx.ingress.kubernetes.io/rewrite-target: / # nginx.ingress.kubernetes.io/secure-backends: "true" spec: # tls: # - secretName: k8s-wordpress-secret rules: - http: paths: - path: / backend: serviceName: wordpress-wordpress servicePort: 80 - path: /web backend: serviceName: wordpress-wordpress servicePort: 443
將上面的內容保存到文件,名爲 wordpress-ingress.yaml,運行下面的命令安裝:
kubectl apply -f wordpress-ingress.yaml
申請域名,好比經過阿里雲能夠在控制檯查詢和申請域名。而後將域名解析記錄添加進去。
主要包括:
按照系統提示,要24小時左右才能訪問該域名。
可是,我用的阿里雲服務器,一下子之後,就能訪問到了。若是域名和主機在不一樣的地方,可能時間就須要長一些的了。
更高級的用法,留待後面實踐和分享。