赞
踩
在 kubernetes 中,所有的内容都抽象为资源,用户需要通过操作资源来管理 kubernetes。
学习 kubernetes 的核心就是学习如何对集群中 pod、pod 控制器、service、存储等各种资源进行操作。
类型 | 操作对象 | 适用环境 | 优点 | 缺点 |
---|---|---|---|---|
命令式对象管理 | 对象 | 测试 | 简单 | 只能操作活动对象,无法审计、跟踪 |
命令式对象配置 | 文件 | 开发 | 可以审计、跟踪 | 项目大时,配置文件多,操作麻烦 |
声明式对象配置 | 目录 | 开发 | 支持目录操作 | 意外情况下难以调试 |
Kubectl 是 kubernetes 集群的命令行工具,通过它能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。
Kubectl 命令的语法如下:
Kubectl [command] [type] [name] [flags]
此外,用户可以通过
kubectl help
命令查找更多的帮助信息
kubectl get pods:查看所有 pod
kubectl get pod POD_NAME:查看某个 pod
kubectl get pod POD_NAME -o yaml:查看某个 pod,以 yaml 格式展示结果
Kubernetes 中所有的内容都抽象为资源,可以通过kubectl api-resources
查看
默认情况下,kubectl 命令输出格式为纯文本。但是,用户可以通过-o
或者--output
选项来指定其他的输出格式。
//创建一个namespace [root@master ~]# kubectl create namespace kk namespace/kk created //获取namespace [root@master ~]# kubectl get ns NAME STATUS AGE default Active 2d22h kk Active 29s kube-flannel Active 2d22h kube-node-lease Active 2d22h kube-public Active 2d22h kube-system Active 2d22h //在此namespace下创建并运行一个nginx的pod [root@master ~]# kubectl run pod1 --image=nginx -n kk pod/pod1 created //查看新创建的pod kubectl get pod1 -n kk //删除指定pod Kubectl delete pod pod-xxxxxx //删除指定的namespace [root@master ~]# kubectl delete ns kk namespace "kk" deleted
命令式对象配置就是使用命令配合配置文件一起来操作 kubernetes 资源
//创建一个nginxpod.yaml,内容如下 apiVersion: v1 kind: Namespace metadata: name: kk --- apiVersion: v1 kind: pod metadata: name: nginxpod namespace: kk spec: containers: - name: nginx-containers image: ngins:latest //执行create命令,创建资源 [root@master ~]# kubectl create -f nginxpod.yaml //此时发现创建了两个资源对象,分别是namespace和pod //执行get命令,查看资源 [root@master ~]# kubectl get -f nginxpod.yaml //这样就显示了两个资源对象的信息 //执行delete命令,删除资源 [root@master ~]# kubectl delete -f nginxpod.yaml //此时发现两个资源对象被删除了
总结:命令式对象配置的方式操作资源,可以简单的认为:命令 + yaml 配置文件(里面是命令需要的各种参数)
声明式对象配置跟命令式对象配置很相似,但是它只有一个命令 apply。
//首先执行一次kubectl apply -f yaml文件,发现创建了资源
[root@master ~]# kubectl apply -f nginxpod.yaml
//再执行一次kubectl apply -f yaml文件,发现说资源没有变动
[root@master ~]# kubectl apply -f nginxpod.yaml
总结:
其实声明式对象配置就是使用 apply 描述一个资源最终的状态(在 yaml 中定义状态)
使用 apply 操作资源:
kubectl create
;kubectl patch
。Kubectl 的运行是需要进行配置的,它的配置文件是$HOME/.kube
,如果想要在 node 节点运行此命令,需要将 master 上的.kube
文件复制到 node 节点上,即在 master 节点上执行下面操作
scp -r HOME/.kube node1:HOME/
kubectl apply -f XXX.yaml
kubectl delete -f XXX.yaml
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。