Kubernetes是一个软件系统,允许你在其上很容易的部署和管理容器话的应用。
Kubernetes的核心功能是:开发者把一个应用列表提交给主节点,Kubernetes会将他们部署到工作节点。应用被部署在哪些节点不用开发者和管理者关心。
Kubernetes帮助开发者聚焦核心功能、帮助运维团队获得更高的资源利用率。
Kubernetes的一个基本原则:不要告诉Kubernetes执行什么操作,而是声明性的改变系统的期望状态。
Kubernetes集群架构
一个Kubernetes集群由很多节点组成,这些节点分为两类:
- 主节点:他们承载着Kubernetes控制和管理整个集群的面板
- 工作节点:他们运行用户实际部署的应用
主节点
主节点用于控制集群并使它工作,主节点由多个组件组成,组件可以运行在单节点上或者通过副本部署在多个节点上保证可用性。这些组件是
- Kubernetes API服务器:其他组件都需要通过API服务器进行通信
- etcd:提供可靠的分布式持久存储。
- Scheduler:调度器,将应用部署到哪些节点
- Controller Manager:执行集群级别的功能,如组件复制、持续跟踪工作节点、处理节点失败等。
工作节点
工作节点是运行容器化应用的机器。由以下组件构成:
- Docker等容器
- Kubelet:与API服务期通信,并管理所在的节点容器。
- kube-proxy:负责组件之间的负载均衡网络流量。
别名与命令补全
kubectl命令需要经常使用,设置别名与命令补全比较方便。
安装 bash-completion
yum install bash-completion
设置别名与completion一起使用
alias k=kubectl
complete -F __start_kubectl k
bash中设置
echo "source <(kubectl completion bash)" >> ~/.bashrc
zsh中设置
echo "if [ $commands[kubectl] ]; then source <(kubectl completion zsh); fi" >> ~/.zshrc
最后记得source是更改生效
如何排查问题
一定要经常用以下命令
kubectl logs:查看日志
kubectl describe:显示资源的详细信息
kubectl explain:在准备描述文件的时候,可以使用此命令查看一些API对象属性的用法。