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)

 

posted @   __破  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示