The following column WordPress Tutorial will introduce to you the official example method of deploying wordpress in k8s. I hope it will be helpful to friends in need!
k8s official example method of deploying wordpress
It is easier said than done to use k8s to run a wordpress, but it is also difficult to say that the difficulty is that the basic requirements are relatively high, involving Service, persistentVolumeClaim, volumes
The easy thing is that there are official ready-made examples (https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/)
Follow the tutorial, it only takes a few lines of code to get it done
First, create a kustomization.yaml file with the following content
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
About kustomize
Simple Talk about a tool that reduces the workload of maintaining multiple environment yaml
Pain points solved by kustomize
General applications will have multiple deployment environments: development environment, test environment, Production environment, multiple environments means there are multiple sets of K8S application resource YAML. There are only minor configuration differences between so many sets of YAML, such as different image versions, different labels, etc. YAML in these different environments often leads to configuration errors due to human negligence. Furthermore, YAML maintenance in multiple environments is usually done by copying the YAML in one environment and modifying the differences. Some application management tools such as Helm require additional learning of DSL syntax. To summarize the above, there are multiple environments for applications in the k8s environment, and we often encounter the following problems:
How to manage the Kubernetes YAML resources of applications in different environments or different teams How to manage the Kubernetes YAML resources of different environments in a certain way Small differences allow resource configurations to be reused, reducing the workload of copy and change. How to simplify the process of maintaining applications without additional learning of template syntax. Kustomize solves the above problems in the following ways:
kustomize through Base & Overlays method (explained below) maintains application configurations in different environments. kustomize uses the patch method to reuse the Base configuration, and realizes resource reuse in the difference between the Overlay description and the Base application configuration. kustomize manages all Kubernetes native YAML files. There is no need to learn additional DSL syntax
Note
Since the official service type is LoadBalancer, this is only valid when deployed on the public cloud. If you build it yourself For k8s, you can use NodePort's service to provide a reference example
apiVersion: v1 kind: Service metadata: name: service-wordpress labels: app: wordpress spec: selector: app: wordpress tier: frontend type: NodePort # service类型 ports: - port: 80 # 默认情况下,为了方便起见,`targetPort` 被设置为与 `port` 字段相同的值。 nodePort: 30012 # 指定绑定的node的端口(默认的取值范围是:30000-32767), 如果不指定,会默认分配 targetPort: 80
The above is the detailed content of Official example: k8s easily runs a wordpress. For more information, please follow other related articles on the PHP Chinese website!