本专栏均为楼主集体了解,适宜于初学者。可能很快帮忙0根底的同学疾速入门与落地一套k8s环境。

1.为什么应用k8s

在浏览本文章之前,倡议理解docker。
在以后软件环境下,即便是很小的公司会应用很多中间件,同时我的项目也会拆成很多微服务项目。例如楼主的公司,应用了redis,rabbitmq,elk中间件。在我的项目方面,把业务拆分成了6个微服务项目,同时还应用了在线预览等开源我的项目。如果楼主应用docker公布,这样初步算下来就须要10多个docker容器。

那么问题来了,这么多docker容器,我该如何治理呢,所以k8s应运而生。

论断

k8s作用是对容器的编排与治理,提供了很多性能如:相似部署,扩容,监控,负载平衡,日志记录等。

2.根底概念

  • node:每一台k8s服务器都被称为一台node。
  • deployment:用于管制治理pod。
  • pod:k8s最小的组成部门,能够了解为一个容器,如docker容器。
  • master:k8s的主机,用于治理其余的node。
  • cluster:除了master的其余node都被称为cluster,master能够管制其余的cluster。

    3.k8s的重要组件

  • kubelet:Node 和 Pod 的管制性能。
  • kube-proxy :K8S 运行于每个 Node 上的网络代理组件,用于服务发现和代理相干。
  • kubectl:用于运行Kubernetes集群命令的管理工具。
以上内容理解即可,下文装置时会有提及。

4.k8s常用命令

把握以下命令,就能够初步操作k8s了。

kubectl get pods --all-namespaces 获取所有命名空间kubectl delete namespaces kubernetes-dashboard 删除命名空间kubectl get clusterrolebinding  获取clusterrolebinding用户(角色与用户的绑定关系)kubectl delete clusterrolebinding dashboard-admin 删除bindingkubectl delete clusterrole            删除角色kubectl get nodes -o yaml  获取nodes详细信息sudo kubectl logs kubernetes-dashboard-6dccb458d5-x7xft --namespace=kubernetes-dashboard   systemctl status kubelet 查看kubelet状态systemctl start kubelet  启动kubelet systemctl daemon-reload && systemctl restart kubelet 重启kubeletsystemctl daemon-reload && systemctl stop kubelet  进行kubeletjournalctl -f -u kubelet.service/journalctl -xefu kubelet 查看kubelet日志  kubectl drain nodename --force --ignore-daemonsets --delete-local-datakubectl delete node nodename //去除节点  kubectl create -f  xxx.yaml  #创立pods 或 serviceskubectl delete -f xxx.yaml  #删除 pods 或 serviceskubectl delete pods --all --grace-period=0 --force  # 删除所有的podskubectl get services  #查看利用被映射到节点的哪个端口kubectl get pods   #查看以后pod删除k8skubeadm reset -fmodprobe -r ipiplsmodrm -rf ~/.kube/rm -rf /etc/kubernetes/rm -rf /etc/systemd/system/kubelet.service.drm -rf /etc/systemd/system/kubelet.servicerm -rf /usr/bin/kube*rm -rf /etc/cnirm -rf /opt/cnirm -rf /var/lib/etcdrm -rf /var/etcd