kubectl 命令集合
k8s的实现核心实际上就是通过读写etcd数据库实现对资源的存储,管理和控制。k8s所有资源的本源都是存储在etcd中的一个个键值对。理论上可以观察到etcd数据库中的数据变化。具体的使用方式如下:用$K8SPATH/hack/local-up-cluster.sh启动一个k8s服务。这个可执行脚本中的68行定义了etcd的版本,默认是etcd3,可以修改为etcd2。
k8s的实现核心实际上就是通过读写etcd数据库实现对资源的存储,管理和控制。
k8s所有资源的本源都是存储在etcd中的一个个键值对。
理论上可以观察到etcd数据库中的数据变化。具体的使用方式如下:
用$K8SPATH/hack/local-up-cluster.sh启动一个k8s服务。这个可执行脚本中的68行定义了etcd的版本,默认是etcd3,可以修改为etcd2。
这个版本很重要,因为etcd3和etcd2是完全不同的两个东西,两者完全不兼容。
etcdctl工具是一个可以对etcd数据进行管理的命令行工具,这个工具在两个不同的etcd版本下的行为方式也完全不同。
export ETCDCTL_API=2
export ETCDCTL_API=3
以上两个语句分别将etcdctl访问的etcd版本调整为2或者3,下面分别说明两种不同的版本如何分别进行数据的访问。
etcd2
在etcd2的情况下,对etcd数据的访问如下:
etcdctl ls
可以逐级显示其当前的存储目录,直至到key-value
etcd3
etcdctl get / --prefix --keys-only
这条指令的意思是获取etcd中存储的所有key,并且前缀为 ‘/’,其结果类似于:
/registry/apiregistration.k8s.io/apiservices/v1.
/registry/apiregistration.k8s.io/apiservices/v1.authentication.k8s.io
对其中一个特定的键进行访问可以用一下方式进行:
etcdctl get /registry/apiregistration.k8s.io/apiservices/v1.
kubectl
source <(kubectl completion bash) #命令补全
启动-状态
master
systemctl daemon-reload
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
etcd
systemctl start etcd.service
client
systemctl start kube-proxy -l
systemctl start docker -l
systemctl start kubelet -l
status
systemctl status etcd.service
systemctl status kube-apiserver -l
systemctl status kube-controller-manager -l
systemctl status kube-scheduler
systemctl status kube-proxy -l
systemctl status docker -l
systemctl status kubelet -l
常用命令
kubectl get pods
kubectl get rc
kubectl get service
kubectl get componentstatuses
kubectl get endpoints
kubectl cluster-info
kubectl create -f redis-master-controller.yaml
kubectl delete-f redis-master-controller.yaml
kubectl delete pod nginx-772ai
kubectl logs -f pods/heapster-xxxxx -n kube-system #查看日志
kubectl scale rc redis-slave --replicas=3#修改RC的副本数量,来实现Pod的动态缩放
etcdctl cluster-health #检查网络集群健康状态
etcdctl --endpoints=https://192.168.71.221:2379 cluster-health #带有安全认证检查网络集群健康状态
etcdctl member list
etcdctl set/k8s/network/config '{ "Network": "10.1.0.0/16" }'
etcdctl get/k8s/network/config
基础进阶
kubectl get services kubernetes-dashboard -n kube-system #查看所有service
kubectl get deployment kubernetes-dashboard -n kube-system #查看所有发布
kubectl get pods --all-namespaces #查看所有pod
kubectl get pods -o wide --all-namespaces #查看所有pod的IP及节点
kubectl get pods -n kube-system | grep dashboard
kubectl describe service/kubernetes-dashboard --namespace="kube-system"
kubectl describe pods/kubernetes-dashboard-349859023-g6q8c --namespace="kube-system"#指定类型查看
kubectl describe pod nginx-772ai#查看pod详细信息
kubectl scale rc nginx --replicas=5# 动态伸缩
kubectl scale deployment redis-slave --replicas=5#动态伸缩
kubectl scale --replicas=2-f redis-slave-deployment.yaml #动态伸缩
kubectl exec-it redis-master-1033017107-q47hh /bin/bash #进入容器
kubectl label nodes node1 zone=north #增加节点lable值 spec.nodeSelector: zone: north #指定pod在哪个节点
kubectl get nodes -lzone #获取zone的节点
kubectl label pod redis-master-1033017107-q47hh role=master #增加lable值 [key]=[value]
kubectl label pod redis-master-1033017107-q47hh role-#删除lable值
kubectl label pod redis-master-1033017107-q47hh role=backend --overwrite #修改lable值
kubectl rolling-update redis-master -f redis-master-controller-v2.yaml #配置文件滚动升级
kubectl rolling-update redis-master --image=redis-master:2.0#命令升级
kubectl rolling-update redis-master --image=redis-master:1.0--rollback #pod版本回滚
更多推荐
所有评论(0)