k8s 基础


1、k8s 安装

参考: https://github.com/opsnull/follow-me-install-kubernetes-cluster

2、k8s 常用指令

kubectl get all    # 查看所有
kubectl get all --all-namespaces
kubectl get pods|deployments.|replicasets.|service -o wide
kubectl get nodes --show-labels    # 查看node标签

kubectl describe pods|deployments.|replicasets.|service xxx_name
kubectl apply -f xxx.yml

kubectl delete pods|deployments.|replicasets.|service xxx_name
kubectl delete -f xxx.yml

kubectl edit daemonsets. kube-proxy --namespace=kube-system    # 编辑内存里配置文件.应该是及时修改后生效,但测试并未生效
kubectl edit service nginx-svc

kubectl logs pod_name    # 查看pod内进程输出 (查看最后200行 kubectl logs --tail=200 pod_name 或最后1小时 --since=1h  )
kubectl api-versions    # 查看k8s当前支持的api版本
kubectl run busybox --rm -it --image=busybox /bin/sh    # 临时启用一个工具箱
kubectl run -it --rm --image=mysql:5.6 --restart=Never mysql-client -- mysql -h mysql -ppassword    # 临时启动一个mysql客户端
kubectl apply -f httpd.v1.yml --record    # 登记到revision,用于回滚
kubectl rollout history deployment httpd    # 查看历史记录,为回滚做准备
kubectl rollout undo deployment httpd --to-revision=1   # 回滚到版本1
kubectl exec mypod-id touch /mydata/hello    # 到Pod的container里执行指令
kubectl exec mypod-id df | grep data    # 到Pod里执行指令
kubectl create configmap game-config --from-file=docs/gameconfig/    # 目录内含有多个配置文件(每个配置文件里可以有很多内容)
journalctl -l -u kubelet    # 查看kubelet日志

kubectl get pods -o yaml     # 配置yaml格式详情
kubectl get endpoints    # 查看终端服务节点

故障排查主要使用
kubectl logs pod_name     # 查看控制台输出(pod运行的报错信息)
kubectl describe pods|deployments.|replicasets.|service xxx_name

kubectl top node node1 --v=8  #开启debug模式输出.使用top指令查看资源情况,需部署heapster(1.8之前版本默认提供.之后修改为service-metric).参考https://github.com/helm/charts/tree/master/stable/heapster