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