kubectl生成deployment和expose service


https://www.katacoda.com/courses/kubernetes/kubectl-run-containers

來生成deployment和service吧

用命令生成deployment

kubectl create deployment http --image=katacoda/docker-http-server:latest --dry-run=true -o yaml > deployment.yaml

   此處 --dry-run=true是為了只生成deployment.yaml文件而不生成deployment

kubectl apply -f deployment.yaml

用kubectl get deployment 和kubectl get pot -o wide可以看到deployment和pod都已生成

用命令生成service

kubectl expose deployment http --name=httpsvc --external-ip=172.17.0.17 --port=8000 --targer-port=80

此處--name=httpsvc是要生成的service name

       --external-ip=172.17.0.17是給要生成的service設置的可訪問的external-ip

       --port=8000這個是service的端口

       --target-port=80這個是pod容器的端口

curl http://172.17.0.17:8000 如有返回證明此服務可以正常訪問

 如上圖,ens3網卡對應的是172.17.0.17, 所以curl http://172.17.0.17:8000 可以正常訪問。如果kubectl expose deployment http --name=httpsvc --external-ip=172.17.0.18 --port=8000 --targer-port=80, 將external-ip設置成一個無法訪問的地址,雖然service還是會生成,但curl http://172.17.0.18:8000會報連接錯誤

Scale replicas

kubectl scale deployment http --replicas=3

kubectl get pod會發現pod變成了3個

 

deployment.yaml的例子:

apiVersion: apps/v1
kind: Deployment
metadata:
name: webapp1
spec:
replicas: 4
selector:
matchLabels:
app: webapp1
template:
metadata:
labels:
app: webapp1
spec:
containers:
- name: webapp1
image: katacoda/docker-http-server:latest
ports:
- containerPort: 80

 

service.yaml的例子:

apiVersion: v1
kind: Service
metadata:
name: webapp1-svc
labels:
app: webapp1
spec:
type: NodePort
ports:
- port: 80
nodePort: 30080
selector:
app: webapp1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM