原创:佛布朗斯基 程序员技术笔记
本文使用的是deployment用来部署应用的方式部署nginx,我们直接贴出deployment的配置
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
下面这个是Service的配置
apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
app: nginx
spec:
type: NodePort
selector:
app: nginx
ports:
- port: 80
targetPort: 80
nodePort: 30080
简单介绍说明
Kind:类型,有Deployment、Service、Pod、Ingress等,非常丰富;
metadata:用于定义一些组件信息,如名字、标签等;
labels:标签功能,非常有用,用于选择关联;但label不提供唯一性,可以使用组合来选择;
nodePort:对于需要给外部暴露的服务,有三种方式:NodePorts、LoadBalancer、Ingress,这里使用NodePorts;需要注意的是,默认它的端口范围是[3000-32767],需要其它范围则需要修改相关参数
我们创建一个命名为nginx-deployment-scale.yaml的文件,将上面两部分的配置放在一起,详细如下
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
app: nginx
spec:
type: NodePort
selector:
app: nginx
ports:
- port: 80
targetPort: 80
nodePort: 30080
保存之后,我们直接运行以下命令运行
kubectl apply -f nginx-deployment-scale.yaml
创建成功,我们可以直接访问访问->IP:30080,浏览器出现如下效果
这样就成功部署了nginx,如果想卸载不想部署了,直接输入以下命令
kubectl delete -f nginx-deployment-scale.yaml
以上就是简单的说明如何在k8s上部署nginx。