deployment控制器yaml 部署nginx映象 kubectl apply -f
deployment.YAML
##########################
##不支援tab縮排,空格縮排
##開頭縮排2個空格
##字元後縮排1個空格,如冒號、逗號
##"---" 檔案開始
##"#"註釋
####示例
#####https://kubernetes.io/zh/docs/concepts/workloads/controllers/deployment/
#####deployment.yaml 格式如下#####
---------------------------控制器定義--------------------------
---
apiVersion: apps/v1 ###1版本號
kind: Deployment
metadata: ###1資源元資料
name: web
spec: ###1資源規格
replicas: 3 ###2副本數
selector: ###2標籤選擇器 metadata.labels 一致
matchLables:
app: web
---------------------------被控物件--------------------------
template: ###2pod模板
metadata: ###3pod元資料
labels:
app: web
spec: ###3pod規格
containers: ###4容器配置
- name: web
image: nginx
#####service.yaml 格式如下#####
apiVersion: apps/v1 ###1版本號
kind: Service ###1資源型別
metadata: ###1資源元資料
name: web
spec: ###1資源規格
ports:
- port: 80 ###3 Service埠
protocol: TCP
targetPort: 80 ###3 映象內服務埠;如nginx映象埠80
selector: ###2標籤選擇器 與Deployment中標籤一致
app: web
type: NodePort ###2 Service 型別
https://kubernetes.io/docs/concepts/services-networking/service/
1)、####kubectl get pods
2)、############deployment.yaml
vi deployment.yaml
#####https://kubernetes.io/zh/docs/concepts/workloads/controllers/deployment/
#############
apiVersion: apps/v1
kind: Deployment
metadata:
name: web2
spec:
replicas: 3
selector:
matchLabels:
app: nginx2
template:nginx
metadata:
labels:
app: nginx2
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
3)、############kubectl apply -f deployment.yaml#####新建、更新
#########另一方式###kubectl create deployment web --image=nginx --replicas=3########新建
#####檢視deployment.版本
4)、 埠暴露
###########name、app 與deployment.yaml 一致
###https://kubernetes.io/docs/concepts/services-networking/service/
vi service.yaml
--------------------------------------------------------------------
apiVersion: v1
kind: Service
metadata:
name: web2
spec:
selector:
app: nginx2
ports:
- protocol: TCP
port: 80
targetPort: 80
--------------------------------------------------------------------
############kubectl apply -f service.yaml#####新建、更新
######kubectl get service
######## deployment web 埠暴露另一方式#################
##另一方式######## #kubectl expose deployment web2 --port=80 --target-por80 --type=NodePort
5)、 kubectl get pods
kubectl get pods,service
kubectl get endpoints ##########service關聯的pod 負載均衡