K8S(Kubernetes)
文章目录暴露应用,外部可访问到集群内扩展或缩放集群(增加或减少pod)修改应用镜像(升级为最新版本镜像)应用回滚到上一版本(新镜像不能用,有错误)暴露应用,外部可访问到集群内kubectl expose deployment/部署应用名 --type=“NodePort” --port 当前容器内部端口当前容器内部端口可通过kubectl describe deployment/部署应用名 查看扩
文章目录
重要定义
kubernetes
Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。
etcd
etcd 是兼具一致性和高可用性的键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库。
configMap
存储配置文件,实际内容存在 etcd 中,kubernetes通过ConfigMap来实现对容器中应用的配置管理。
使用时, Pods 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。
secret
类似configMap,用来保存敏感信息,例如密码、OAuth 令牌和 SSH 密钥
spec(Kubernetes 对象规约)
创建 Kubernetes 对象时,必须提供对象的规约,用来描述该对象的期望状态, 以及关于对象的一些基本信息(例如名称)。 当使用 Kubernetes API 创建对象时(或者直接创建,或者基于kubectl), API 请求必须在请求体中包含 JSON 格式的信息。 大多数情况下,需要在 .yaml 文件中为 kubectl 提供这些信息。 kubectl 在发起 API 请求时,将这些信息转换成 JSON 格式。
namespace(命名空间)
Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。命名空间是在多个应用之间划分集群资源的一种方法
Node(节点)
Kubernetes 中的工作机器称作节点。Kubernetes 通过将容器放入在节点(Node)上运行的 Pod 中来执行你的工作负载。 节点可以是一个虚拟机或者物理机器,取决于所在的集群配置。 每个节点包含运行 Pods 所需的服务;
deployment
Deployment 是管理应用副本的 API 对象,通常通过运行没有本地状态(无状态)的Pods来实现,Deployment 很适合用来管理你的集群上的无状态应用,Deployment 中的所有 Pod 都是相互等价的,并且在需要的时候被换掉。
statefulSet
StatefulSet 让你能够运行一个或者多个以某种方式跟踪有状态的 Pods。StatefulSet 用来管理某 Pod 集合的部署和扩缩, 并为这些 Pod 提供持久存储和持久标识符,用到了共享存储。类似运行一个MySQL集群,
DaemonSet
DaemonSet确保 Pod 的副本在集群中的一组节点上运行。确保集群中每个(部分)node运行一份pod副本,当node加入集群时创建pod,当node离开集群时回收pod。如果删除DaemonSet,其创建的所有pod也被删除,DaemonSet中的pod覆盖整个集群。
Job 、CronJob。
定义一些一直运行到结束并停止的任务。Job 是需要运行完成的确定性的或批量的任务。Job 用来表达的是一次性的任务。而 CronJob 会根据其时间规划反复运行。
操作命令
干净移除node节点
kubectl drain $node_name --delete-emptydir-data --force --ignore-daemonsets ##将节点标记为不可调度并驱逐所有负载
kubectl delete node $node_name ##删除
##在已移除节点上操作
kubeadm reset ##重置节点安装状态
解除node节点不可调度并驱逐所有负载的标记
kubectl uncordon $node_name
创建命名空间
kubectl create namespace 命名空间名字
暴露应用,外部可访问到集群内
kubectl expose deployment/部署应用名 --type=“NodePort” --port 当前容器内部端口
当前容器内部端口可通过 kubectl describe deployment/部署应用名 查看
扩展或缩放集群(增加或减少pod)
kubectl scale deployments/部署应用名 --replicas=最终的pod数量
修改应用镜像(升级为最新版本镜像)
kubectl set image deployments/部署应用名 部署应用名=新镜像
应用回滚到上一版本(新镜像不能用,有错误)
kubectl rollout undo deployments/部署应用名
创建configMap
kubectl create configmap 配置集合名 --from-literal(直接指定键值对) 键名=键值
kubectl create configmap 配置集合名 --from-file(使用现有文件内容)=配置文件地址
创建secret
kubectl create secret generic(通用的) 密钥集合名 --from-literal username=bob --from-literal password=bobpwd
参考文档: kubernetes官方文档
更多推荐
所有评论(0)