查看集群所有节点
kubectl get nodes
根据配置文件,给集群创建资源
kubectl apply -f xxxx.yaml
查看集群部署了哪些应用?
kubectl get pods -A === docker ps
运行中的应用在docker里面叫容器,在k8s里面叫Pod
kubectl get pods -A
创建删除名称空间
kubectl create ns hello
kubectl delete ns hello
运行一个nginx容器
kubectl run mynginx --image=nginx
每秒监控查看default名称空间的Pod
watch -n 1 kubectl get pod
或打印pod变化过程
kubectl get pod -w
查看描述pod的详细信息
kubectl describe pod Pod名字
删除pod
kubectl delete pod Pod名字
查看Pod的运行日志
kubectl logs Pod名字
查看pod的详细信息
kubectl get pod -owide
查看pod标签
kubectl get pod --show-labels
使用Deployment创建 拥有自愈能力
kubectl create deployment mytomcat --image=tomcat:8.5.68
使用Deployment创建多副本
kubectl create deployment my-dep --image=nginx --replicas=3
工作负载:
Deployment:无状态应用部署,比如微服务,提供多副本等功能
StatefulSet:有状态应用部署,比如redis,提供稳定的存储、网络等功能
DaemonSet:守护型应用部署,比如日志收集组件,在每个机器都运行一份
Job/CronJob:定时任务部署,比如垃圾清理组件,可以在指定时间运行
官方文档相关介绍:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/
扩缩容
kubectl scale --replicas=5 deployment/my-dep
滚动更新
kubectl set image deployment/my-dep nginx=nginx:1.16.1 --record
kubectl status deployment/my-dep
版本回退
#历史记录
kubectl rollout history deployment/my-dep
#查看某个历史详情
kubectl rollout history deployment/my-dep --revision=2
#回滚(回到上次)
kubectl rollout undo deployment/my-dep
#回滚(回到指定版本)
kubectl rollout undo deployment/my-dep --to-revision=2
Service将一组 Pods 公开为网络服务的抽象方法。
#暴露Deploy
kubectl expose deployment my-dep --port=8000 --target-port=80
#查看pod标签
kubectl get pod --show-lables
#使用标签检索Pod
kubectl get pod -l app=my-dep
ClusterIP 默认集群ip 只能内部访问
# 等同于没有--type的
kubectl expose deployment my-dep --port=8000 --target-port=80 --type=ClusterIP
NodePort 集群外部也可以访问
kubectl expose deployment my-dep --port=8000 --target-port=80 --type=NodePort
Ingress
Ingress 公开从集群外部到集群内服务的 HTTP 和 HTTPS 路由,Ingress 可为 Service 提供外部可访问的 URL、负载均衡流量、终止 SSL/TLS,以及基于名称的虚拟托管。 Ingress 控制器 通常负责通过负载均衡器来实现 Ingress,尽管它也可以配置边缘路由器或其他前端来帮助处理流量。
Ingress 不会公开任意端口或协议。 将 HTTP 和 HTTPS 以外的服务公开到 Internet 时,通常使用 Service.Type=NodePort 或 Service.Type=LoadBalancer 类型的 Service。
官网地址:https://kubernetes.github.io/ingress-nginx/
环境准备:下载
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.47.0/deploy/static/provider/baremetal/deploy.yaml
#修改镜像
vi deploy.yaml
#将image的值改为如下值:
registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/ingress-nginx-controller:v0.46.0
kubectl apply -f deplpy.yaml
检查安装的结果
kubectl get pod,svc -n ingress-nginx
最后别忘记把svc暴露的端口要放行