Pod ,Service, Volume 和 NameSpace 是 kubernetes集群中的四大基本对象
它们能够表示系统中部署的应用、工作负载、网络和磁盘资源,共同定义了集群的状态。Kubernetes 中很多其他的资源其实只对这些基本的对象进行了组合。
Pod -> 集群中的基本单元 Service -> 解决如何访问 Pod 里面服务的问题 Volume -> 集群中的存储卷 Namespace -> 命名空间为集群提供虚拟的隔离作用
kubectl 命令学习
- 工具使用参数
get 显示一个或多个资源
describe 显示资源详情
create 从文件或标准输入创建资源
update 从文件或标准输入更新资源
delete 通过文件名,标准输入,资源名或者label删除资源
log 数除pod中一个容器的日志
rolling-update 对指定的RC执行滚动升级
exec 在容器内执行命令
port-forward 将本地端口转发到Pod
proxy 为kubernetes API server 启动代理服务器
run 在集群中使用指定镜像启动容器
expose 将SVC 或pod暴露为新的kubernetes service
label 更新资源的label config 修改kubernetes 配置文件
cluster-info 显示集群信息
api-versions 数除服务端支持的API版本
version 数除服务端和客户端的版本信息
help 显示各个命令的帮助信息
ingress-nginx 管理ingress服务的插件
显示合并后的kubeconfig配置: kubectl config view
获取pod和svc的文档 kubectl explain pods,svc
创建资源对象
kubectl create -f xxx-rc.yaml -f xxx-service.yaml
kubectl create -f <目录> 根据目录下所有yaml进行创建
kubectl create -f git.io/XXXX 使用URL来创建资源
kubectl create -f ./pod.json
kubectl create -f docker-registry.yaml --edit -o json
查看资源对象
kubectl get nodes
kubectl get namespace
kubectl get --help
kubectl get pods 列出默认namesapce中的所有pod
kubectl get pods --namespace=test 指定namespace中的pod
kubectl get pods --all-namespaces 列出所有namesapce中的所有pod
列出所有pod并显示详细信息
kubectl get pods -o wide
kubectl get replicationcontroller web
kubectl get -k dir/
kubectl get -f pod.yaml -o json
kubectl get rc/web service/frontend pods/web-pod-12test3
kubectl get pods/app-prod-abcd123456-tetst7 --namespace=test -o wide
kubectl get -o template pod/web-pod-12test3 --template={{.status.phase}}
kubectl get pods,rc,services --include-uninitialized
kubectl get rc
kubectl get deployment
kubectl get deployment my-app 列出指定deployment
kubectl get svc
kubectl get service
kubectl get pods -n default 查看不同namespace下的pod对象
kubectl get pods --all-namespace
kubectl describe pods/nginx
kubectl describe pods my-pod
kubectl describe -f pod.json
kubectl describe nodes c1
kubectl describe pods
滚动更新pod frontend-v1
kubectl rolling-update frontend-v1 -f frontend-v2.json
kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2 更新资源名称并更新镜像
kubectl rolling-update frontend --image=image:v2 更新frontend pod中的镜像
kubectl rolling-update frontend-v1 frontend-v2 --rollback
kubectl replace --force -f ./pod.json 强制替换;删除后重新创建资源;服务会中断
kubectl label pods my-pod new-label=awesome 添加标签
kubectl annotate pods my-pod icon-url=http://xxxx 添加注解
kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}'
kubectl patch pod valid-pod -p 更新容器镜像
kubectl scale --replicas=3 rs/foo
kubectl delete -f xxx.yaml
kubectl delete pods -l name=
kubectl delete services -l name=
kubectl delete pods --all
kubectl delete service --all
kubectl delete deployment --all
kubectl edit svc/docker-registry 编辑名为docker-registry的service
kubectl exec mypod -- date 执行pod的date命令,默认使用pod的第一个容器执行
kubectl exec mypod -c ruby-container -- date 指定pod中某个容器执行date命令
kubectl exec mypod -c ruby-container -it -- bash 进入某个容器
kubectl logs mypod --namespace=test 不实时刷新查看日志