k8s常用命令
#查看所有资源
$ kubectl api-resources
#查看node
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 3h25m v1.16.2
k8s-slave1 Ready <none> 3h18m v1.16.2
k8s-slave2 Ready <none> 3h18m v1.16.2
namespaces
#查看命名空间
$ kubectl get namespaces
NAME STATUS AGE
default Active 84m
kube-node-lease Active 84m
kube-public Active 84m
kube-system Active 84m
kubernetes-dashboard Active 71m
#创建namespace
$ kubectl create namespace luffy
#快速获得资源和版本
$ kubectl explain pod
$ kubectl explain Pod.apiVersion
pod
#创建Pod
$ kubectl create -f pod.yaml
#进入容器
$ kubectl -n luffy exec -ti myblog -c myblog bash
#删除Pod服务
#根据文件删除
$ kubectl delete -f demo-pod.yaml
#根据pod_name删除
$ kubectl -n <namespace> delete pod <pod_name>
#更新服务版本
$ kubectl apply -f demo-pod.yaml
#查看pod调度节点及pod_ip
$ kubectl -n luffy get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
myblog 2/2 Running 0 4m57s 10.244.1.29 k8s-slave1 <none> <none>
#查看完整的yaml
$ kubectl -n luffy get po myblog -o yaml
#查看pod的明细信息及事件
kubectl -n luffy describe pod myblog
#查看全部namespace的pod
kubectl get pods -A 或者 kubectl get pods --all-namespace
#查看Pod里业务容器的命令
kubectl get pods myapp-pod -o jsonpath={.spec.containers[*].name}
#查看Pod里初始化容器的命令
kubectl get pods myapp-pod -o jsonpath={.spec.initContainers[*].name}
#查看Pod内容器日志,显示标准或者错误输出日志
$ kubectl -n <namespace> logs -f <pod_name> -c <container_name>
标签
#为节点打标签
kubectl label node k8s-slave1 component=mysql
#显示标签
$ kd get po --show-labels
NAME READY STATUS RESTARTS AGE LABELS
myblog-5c97d79cdb-jn7km 1/1 Running 0 6m5s app=myblog
mysql-85f4f65f99-w6jkj 1/1 Running 0 176m app=mysql
#根据标签查看pod
$ kd get pods -l app=mysql
configMap
#查看configMap
kubectl -n luffy get cm myblog -o yaml
#创建configMap
$ cat configmap.txt
MYSQL_HOST=192.168.136.11
MYSQL_PORT=3306
$ kubectl create configmap myblog --from-env-file=configmap.txt
或kubectl create -f configmap.yaml
secret
#查看secret
kubectl -n luffy get secret myblog -o yaml
创建secret
$ cat secret.txt
MYSQL_USER=root
MYSQL_PASSWD=123456
$ kubectl -n luffy create secret generic myblog --from-env-file=secret.txt
或kubectl create -f secret.yaml
deployment
#查看deployment
$ kubectl -n luffy get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
myblog 1/1 1 1 2m22s
mysql 1/1 1 1 2d11h
* `NAME` 列出了集群中 Deployments 的名称。
* `READY`显示当前正在运行的副本数/期望的副本数。
* `UP-TO-DATE`显示已更新以实现期望状态的副本数。
* `AVAILABLE`显示应用程序可供用户使用的副本数。
* `AGE` 显示应用程序运行的时间量。
#查看replicaSet
$ kubectl -n luffy get rs
#扩容副本
$ kubectl -n luffy scale deploy myblog --replicas=2
deployment.extensions/myblog scaled
更新
#重新打tag模拟服务更新。更新3种方式:
1. 修改yaml文件,使用`kubectl -n luffy apply -f deploy-myblog.yaml`来应用更新
2. `kubectl -n luffy edit deploy myblog`在线更新
3. `kubectl -n luffy set image deploy myblog myblog=192.168.136.10:5000/myblog:v2 --record`
回滚
#查看滚动更新事件
$ kubectl -n luffy describe deploy myblog
#查看当前
$ kubectl -n luffy rollout history deploy myblog
deployment.extensions/myblog
REVISION CHANGE-CAUSE
1 kubectl create --filename=deploy-myblog.yaml --record=true
2 kubectl set image deploy myblog myblog=192.168.136.10:5000/demo/myblog:v1 --record=true
#回滚到具体的REVISION:
$ kubectl -n luffy rollout undo deploy myblog --to-revision=1
deployment.extensions/myblog rolled back
service
#查看service
$kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
myblog ClusterIP 10.106.192.202 <none> 80/TCP 12m
#显示service详细信息和事件
$kubectl -n luffy describe svc myblog
Name: myblog
Namespace: luffy
Labels: <none>
Annotations: <none>
Selector: app=myblog
Type: ClusterIP
IP: 10.106.192.202
Port: <unset> 80/TCP
TargetPort: 8080/TCP
Endpoints: 10.244.0.68:8080
Session Affinity: None
Events: <none>
#查看endpoints
kubectl -n luffy get endpoints myblog
NAME ENDPOINTS AGE
myblog 10.244.0.68:8002,10.244.1.158:8002 7m
etcd
$ alias etcdctl='etcdctl --endpoints=https://[127.0.0.1]:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt --key=/etc/kubernetes/pki/etcd/healthcheck-client.key'
查看etcd集群的成员节点:
$ etcdctl member list -w table
#查看api
kubectl get nodes -v=6
#替换curl命令查数据的方法
kubectl get --raw /api/v1/nodes
kubectl get --raw /apis/v1/extensions/v1beta1|jq
kubectl get --raw /apis/metrics.k8s.io/v1beta1
搜索
复制

浙公网安备 33010602011771号