如何使用kubectl create deployment拉取并且要外部能访问这个镜像docker run -d –name=maxkb -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data 1panel/maxkb
要使用kubectl创建一个部署来拉取并在 Kubernetes 上运行一个镜像,并确保外部能够访问该镜像,你需要执行以下步骤:
- 编写 Deployment YAML 文件:首先,你需要编写一个 Deployment 的 YAML 文件来描述你的应用程序的配置。以下是一个简单的示例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: maxkb-deployment
spec:
replicas: 1
selector:
matchLabels:
app: maxkb
template:
metadata:
labels:
app: maxkb
spec:
containers:
- name: maxkb
image: 1panel/maxkb
ports:
- containerPort: 8080
volumeMounts:
- name: maxkb-data
mountPath: /var/lib/postgresql/data
volumes:
- name: maxkb-data
hostPath:
path: /root/.maxkb
- 应用 Deployment 文件:将上述 YAML 内容保存到一个文件中,例如
maxkb-deployment.yaml
,然后使用 kubectl 应用它:
kubectl apply -f maxkb-deployment.yaml
- 暴露服务:要确保外部能够访问该镜像,你需要将该服务暴露出去。你可以使用 Service 来做到这一点。以下是一个简单的 Service YAML 示例:
apiVersion: v1
kind: Service
metadata:
name: maxkb-service
spec:
selector:
app: maxkb
ports:
- protocol: TCP
port: 8080
targetPort: 8080
type: NodePort
- 应用 Service 文件:将上述 YAML 内容保存到一个文件中,例如
maxkb-service.yaml
,然后使用 kubectl 应用它:
kubectl apply -f maxkb-service.yaml
现在,你的镜像应该在 Kubernetes 上运行,并且通过 NodePort 方式暴露给外部访问。你可以使用 kubectl get services
命令来查看服务的端口,然后通过 <NodeIP>:<NodePort>
访问你的应用程序。
显示该 Pod 的详细信息,包括所在的节点
kubectl describe pod maxkb-deployment-5845fc54c6-kvvtp
查看 Service 的详细信息
kubectl get service maxkb-service
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容