kubernetes的yml
kubernetes的yml
1: 创建namespace
文件po.yml 内容如下
1 2 3 4 | apiVersion: v1 kind: Namespace metadata: name: po |
命令:
1 | kubectl apply -f po.yml |
删除namespace
1 | kubectl delete -f po.yml |
2: 创建pod
文件po-pods.yml 内容如下
1 2 3 4 5 6 7 8 9 10 11 12 | apiVersion: v1 kind: Pod metadata: name: tomcat9 labels: app: tomcat9 spec: containers: - name: tomcat9 image: tomcat:9.0.20-jre8-alpine imagePullPolicy: IfNotPresent restartPolicy: Always |
执行命令
1 | kubectl apply -f po-pods.yml |
3: 创建deployment
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: tomcat-deployment labels: app: tomcat-deployment spec: replicas: 3 selector: matchLabels: app: tomcat template: metadata: name: tomcat-deployment labels: app: tomcat spec: containers: - name: tomcat-deployment image: tomcat:9.0.20-jre8-alpine imagePullPolicy: IfNotPresent restartPolicy: Always
说明:
在Deployment中必须写matchLables 在定义模板的时候必须定义labels,
因为Deployment.spec.selector是必须字段,而他又必须和 template.labels对应
Deployment控制器:
具有上线部署、滚动升级、创建副本、回滚到以前某一版本(成功/ 稳定)等功能。
Deployment包含ReplicaSet,除非需要自定义升级功能或者根本不需要升级Pod,
否则还是建议使用 Deployment而不直接使用ReplicaSet 。
4: 创建service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | apiVersion: extensions/v1beta1 kind: Deployment metadata: name: tomcat-deploy labels: app: tomcat-deploy spec: replicas: 1 selector: matchLabels: app: tomcat-pod template: metadata: name: tomcat-deploy labels: app: tomcat-pod spec: containers: - name: tomcat-deploy image: tomcat:9.0.20-jre8-alpine imagePullPolicy: IfNotPresent ports: - containerPort: 8080 restartPolicy: Always --- apiVersion: v1 kind: Service metadata: name: tomcat-svc spec: selector: app: tomcat-pod ports: - port: 8888 targetPort: 8080 nodePort: 30088 protocol: TCP type: NodePort |
service.spec.selector.app选择的内容仍然是template.label.app内容。
而不是我们 deployment控制器的label内容
Service参数
port :访问service使用的端口
targetPort :Pod中容器端口
NodePort: 通过Node实现外网用户访问k8s集群内service(30000-32767)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY