自己docker镜像部署k8s

打包docker镜像

参考:https://blog.csdn.net/weixin_42357472/article/details/118897294
https://blog.csdn.net/weixin_42357472/article/details/118024673

部署到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


在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

おすすめ

転載: blog.csdn.net/weixin_42357472/article/details/118964117