kubernetes的yml
kubernetes的yml
1: 创建namespace
文件po.yml 内容如下
apiVersion: v1 kind: Namespace metadata: name: po
命令:
kubectl apply -f po.yml

删除namespace
kubectl delete -f po.yml
2: 创建pod
文件po-pods.yml 内容如下
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
执行命令
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
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)

浙公网安备 33010602011771号