使用k8s管理:
source use-k8s-cluster 加密字符串
Pod
创建pod配置文件:
创建pod资源:
kubectl create -f pod_nginx.yml
删除pod资源(删除文件并删除pod):
kubectl delete -f pod_nginx.yml
获取所有容器组:
kubectl get pods -o wide
进入容器组:
kubectl exec -it nginx-56b8c64cb4-t97vb -- /bin/bash
或者
kubectl exec -it nginx-56b8c64cb4-t97vb -- sh
查看pod详细信息:
kubectl describe pods <podname>
端口映射(会一直挂着,停止后,端口映射就会失败):
kubectl port-forword nginx 8080:80
ReplicaSet
利用replicaSet横向扩展pod:ReplicaSet(RS)是 RC 的升级版本,唯一区别是对选择器的支持,RS 能支持更多种类的匹配模式
kind从 Pod 变成 ReplicaSet,通过replicas指定数量。
旧版本不支持Replicas,改成ReplicationController即可。
或者改版本:v1->apps/v1
删除pod:
kubectl delete pods nginx-xxx
容器组pod挂掉后会重新启动一个。
水平扩展指定:
kubectl scale rc nginx --relicas=2 kubectl get rc
使用ReplicasSet的时候:
kubectl scale rs nginx --relicas=2 kubectl get rs
Deployment
deployment创建的pod和replicaSet,无法直接操作删除pod和replicaSet,需通过deployment操作。
kubectl get deployment
更新deloyment:
kubectl set image deployment nginx-deployment nginx=nginx:1.13
回滚(历史和撤销):
kubectl rollout history deployment nginx-deployment kubectl rollout undo deployment nginx-deployment
删除服务:
kubectl delete services nginx-deployment
暴露端口部署:
kubectl expose deployment nginx-deployment --type=Nodeport
查看服务:
kubectl get svc
编辑deployment的yml文件:
kubectl edit deployment service-test
Service
为了更好的管理pod。
pod的ip地址重启会变,但service的clusterip不会变。
ClusterIP:service在集群之内能通过该IP访问,该IP会负载均衡访问到各pod的ip。
查看node:
NodePort:分配端口进行服务访问
设置node的label:
查看label:
选择标签为hardware=good的node部署容器:
创建loadBalance类型:
loadbalance:分配单独的ip做负载均衡
三者使用建议:loadbalance、nodeport、clusterIP
推荐使用ingress;