打包docker镜像
部署到k8s
1、创建pod
mkdir k8stest
cd k8stest
vi app.yaml
app.yaml(pod、deployment写一起了)
imagePullPolicy: 表示镜像来源,IfNotPresent本地没有就从hub仓库拉取,Never表示只从本地
apiVersion: apps/v1
kind: Deployment
metadata:
name: web1 ##depolymet名
spec:
selector:
matchLabels:
app: web1
replicas: 1
template:
metadata:
labels:
app: web1 # pod名
spec:
containers:
- name: web
imagePullPolicy: IfNotPresent
image: registry.cn-hangzhou.aliyuncs.com/loongxl/sanic:v1
ports:
- containerPort: 8080
#创建pod运行
kubectl create -f app.yaml
## 查看pod
kubectl get pod
2、创建service
vim service.yaml
service.yaml
apiVersion: v1
kind: Service
metadata:
name: web1
spec:
ports:
- port: 8889 # 服务端口
protocol: TCP
targetPort: 8080 # 容器端口
selector:
app: web1 # 标签选择器,这里的app=web正是我们刚才建立app
#创建service服务
kubectl create -f service.yaml
#查看状态
kubectl get service
删除问题pod删除不了,永远又重新产生的pod
先删除depolyment,因为设置有pod数量
kubectl get deployment 查看
kubectl delete deployment web1 删除
kubectl delete pod *** 删除pod
kubectl delete service web1 删除service
3、最终效果
## ip映射(接下来就可以在任意节点通过ClusterIP负载均衡的访问后端应用了;通过 kubectl port-forward 端口转发的方式访问 K8S 中的应用)
kubectl port-forward service/web1 7001:8889
(service/web1,其中web1是指的service.yaml中的name)
## 浏览器访问
http://localhost:7001