下面由WordPress教程欄目給大家介紹關(guān)于k8s 部署wordpress 官方例子方式,希望對需要的朋友有所幫助!
k8s 部署wordpress 官方例子方式
要使用k8s跑起一個wordpress說容易也容易,說難也難 難點是對基礎(chǔ)要求比較高,涉及到Service,persistentVolumeClaim,volumes
容易是在于官方有現(xiàn)成的例子(https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/)
按照教程,只需要幾行代碼就可以搞定
首先,創(chuàng)建一個 kustomization.yaml 文件 內(nèi)容如下
secretGenerator: - name: mysql-pass literals: - password=123456 resources: - mysql-deployment.yaml - wordpress-deployment.yaml
# 下載兩個配置文件 curl -LO https://k8s.io/examples/application/wordpress/mysql-deployment.yaml curl -LO https://k8s.io/examples/application/wordpress/wordpress-deployment.yaml # 最后運行 kubectl apply -k . # 查看暴露出來的IP kubectl get services wordpress
關(guān)于 kustomize
簡單說一個工具,減少維護(hù)多套環(huán)境yaml的工作量
kustomize 解決的痛點
一般應(yīng)用都會存在多套部署環(huán)境:開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境,多套環(huán)境意味著存在多套 K8S 應(yīng)用資源 YAML。而這么多套 YAML 之間只存在微小配置差異,比如鏡像版本不同、Label 不同等,而這些不同環(huán)境下的YAML 經(jīng)常會因為人為疏忽導(dǎo)致配置錯誤。再者,多套環(huán)境的 YAML 維護(hù)通常是通過把一個環(huán)境下的 YAML 拷貝出來然后對差異的地方進(jìn)行修改。一些類似 Helm 等應(yīng)用管理工具需要額外學(xué)習(xí)DSL 語法??偨Y(jié)以上,在 k8s 環(huán)境下存在多套環(huán)境的應(yīng)用,經(jīng)常遇到以下幾個問題:
如何管理不同環(huán)境或不同團(tuán)隊的應(yīng)用的 Kubernetes YAML 資源 如何以某種方式管理不同環(huán)境的微小差異,使得資源配置可以復(fù)用,減少 copy and change 的工作量 如何簡化維護(hù)應(yīng)用的流程,不需要額外學(xué)習(xí)模板語法 Kustomize 通過以下幾種方式解決了上述問題:
kustomize 通過 Base & Overlays 方式(下文會說明)方式維護(hù)不同環(huán)境的應(yīng)用配置 kustomize 使用 patch 方式復(fù)用 Base 配置,并在 Overlay 描述與 Base 應(yīng)用配置的差異部分來實現(xiàn)資源復(fù)用 kustomize 管理的都是 Kubernetes 原生 YAML 文件,不需要學(xué)習(xí)額外的 DSL 語法
注意
由于官方中使用service類型是LoadBalancer,這個只有部署到公有云上才有效,如果你使用自己搭建的k8s, 可以使用NodePort的service 提供一個參考的例子
apiVersion: v1 kind: Service metadata: name: service-wordpress labels: app: wordpress spec: selector: app: wordpress tier: frontend type: NodePort # service類型 ports: - port: 80 # 默認(rèn)情況下,為了方便起見,`targetPort` 被設(shè)置為與 `port` 字段相同的值。 nodePort: 30012 # 指定綁定的node的端口(默認(rèn)的取值范圍是:30000-32767), 如果不指定,會默認(rèn)分配 targetPort: 80