(七)k8s部署应用

(七)k8s部署应用

基本流程

方式一:使用Deployment控制器部署镜像

部署应用相关的命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#使用Deployment控制器部署镜像
kubectl create deployment web --image=nginx --replicas=3
kubectl get deploy,pods
#使用Service将Pod暴露出去
kubectl expose deployment web --port=80 --target-port=80 --type=NodePort
kubectl get service
#浏览器访问应用
http://NodeIP:Port#端口随机生成,通过get svc获取

### 查看日志
#查看部署的pod
kubectl get pods
#查看当前pod的日志
kubectl logs web-76b56fd968-pnsph -f

方式二:使用yaml配置文件部署镜像

deployment.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
spec:
replicas: 3
selector:
matchLabels:
app: nginx1
template:
metadata:
labels:
app: nginx1
spec:
containers:
- name: nginx
image: nginx

删除部署应用
1
2
3
4
5
6
7
# 查看所有的deployment
kubectl get deployment
# 查看所有的service
kubectl get service
# 删除应用
kubectl delete deployment web
kubectl delete service web
部署应用
1
2
3
4
# yaml 配置文件发布应用
kubectl apply -f deployment.yml
# 将端口号暴露到公网(也可以创建service.yml)
kubectl expose deployment web --port=80 --target-port=80 --type=NodePort
创建service将应用对外暴露服务

service.yml

1
2
3
4
5
6
7
8
9
10
11
12
apiVersion: v1
kind: Service
metadata:
name: web
spec:
selector:
app: nginx1
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort

创建service

kubectl apply -f service.yml

查看service关联的容器对象

kubectl kubectl get endpoints