文章目录
一、通过yaml文件创建
- 创建命名空间
kubectl create namespace test #创建一个叫test的命名空间
- 创建一个
nginx-test.yaml
文件,编辑内容
vim nginx-test.yaml
将下述内容复制到yaml文件中
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
namespace: test # 指定命名空间,如果不想指定,可以将此行删除
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
imagePullPolicy: IfNotPresent
ports:
- name: http
protocol: TCP
containerPort: 80
resources:
limits:
cpu: "1.0"
memory: 512Mi
requests:
cpu: "0.5"
memory: 128Mi
---
apiVersion: v1
kind: Service
metadata:
annotations:
name: nginx-test-service
namespace: test # 指定命名空间,如果不想指定,可以将此行删除**
spec:
ports:
- port: 80
targetPort: 80
nodePort: 32001
protocol: TCP
selector:
app: nginx
sessionAffinity: None
type: NodePort
- 部署nginx应用
kubectl apply -f nginx-test.yaml
- 查看pod
kubectl get pods -n test # -n :指定命名空间,否则就是默认命名空间 -A:不指定,即所有的命名空间
kubectl get pods -n test -o wide # 部署节点的node详细信息
- 查看暴露的端口号
kubectl get pods,svc -n test # 记得指定命名空间
- 通过node节点IP+端口号访问
二、通过命令创建
- 生成nginx对应的yaml文件
kubectl create deployment nginx-test1 --image=nginx --dry-run -o yaml > nginx-test1.yaml
- 部署nginx应用
kubectl apply -f nginx-test1.yaml
- 查看pod
kubectl get pods
- 暴露端口号
# 生成svc的yaml文件
kubectl expose deployment nginx-test1 --port=80 --target-port=80 --type=NodePort --name=nginx-test1 -o yaml >nginx-test1-svc.yaml
# 执行svc的yaml文件
kubectl apply -f nginx-test1-svc.yaml
# 查看
kubectl get pods,svc
- 通过node节点IP+端口号访问