本专栏均为楼主个人理解,适合于初学者。能够很快帮助 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 删除binding
kubectl 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 重启kubelet
systemctl daemon-reload && systemctl stop kubelet 停止kubelet
journalctl -f -u kubelet.service/journalctl -xefu kubelet 查看kubelet日志
kubectl drain nodename --force --ignore-daemonsets --delete-local-data
kubectl delete node nodename //去除节点
kubectl create -f xxx.yaml #创建pods 或 services
kubectl delete -f xxx.yaml #删除 pods 或 services
kubectl delete pods --all --grace-period=0 --force # 删除所有的pods
kubectl get services #查看应用被映射到节点的哪个端口
kubectl get pods #查看当前pod
删除k8s
kubeadm reset -f
modprobe -r ipip
lsmod
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd
复制代码
评论