Nodes 节点

https://kubernetes.io/docs/co...

节点上的组件包括 kubelet容器运行时container runtime (like Docker)以及 kube-proxy

# 查看节点
kubectl get node

# 查看节点状态和其他信息
kubectl describe node <insert-node-name-here>

Pods

k8s中创建和管理的、最小的可部署的计算单元

K8S 通过编排 Pod 来调度容器,而不是直接操作容器,K8S 无法直接操纵容器

kubectl get pods
# 指定命令空间下的pod
kubectl get pods -n kube-system 
# 会显示所有命名空间下的pods
kubectl get pods --all-namespaces 
# 当前命名空间下的pod 会补充一些额外的信息
kubectl get pods -o wide 

kubectl get deployment xxx
# 查看pod相关事件列表
kubectl describe pod xxx
# 删除pod
kubectl delete pod xxx

# 输出node容器中的日志
kubectl logs $POD_NAME
# 在pod外执行容器命令 例如这里执行 env 命令
# exec的用户基本等同docker
kubectl exec $POD_NAME -- env
kubectl exec -ti $POD_NAME -- bash

Workloads

在 Kubernetes 上运行的应用程序,是一组相关pods的集合。

Deployment

一种控制器,可以用来创建、管理 Pod。如创建多副本 Pod,滚动更新 Pod

一般在yaml文件中 使用 kind: Deployment来创建 Pod

ReplicaSet

ReplicaSet 的目的是维护一组在任何时候都处于运行状态的 Pod 副本的稳定集合。 因此,它通常用来保证给定数量的、完全相同的 Pod 的可用性

# 查看创建的ReplicaSet(副本数)
kubectl get rs

# 扩容到4个副本
# xxx 对应 deployment name
kubectl scale deployments/xxx --replicas=4

Service

将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法

通过labels和selectors匹配pod

# 创建一个service并且expose  类型是NodePort
kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080
# 显示service详细信息 以下两个命令等同
kubectl describe services/kubernetes-bootcamp
kubectl describe services kubernetes-bootcamp
$ kubectl get deployments
NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
kubernetes-bootcamp   1/1     1            1           50s

READY shows the ratio of CURRENT/DESIRED replicas

AGE displays the amount of time that the application has been running.

一些命令

# 返回的client version是kubectl版本  Server version是k8s版本
kubectl version

# 显示运行中的Pod、Service、Deployment以及ReplicaSet的关键信息
kubectl get all 

# 端口暴露 
kubectl port-forward nginx 8080:80 --address=0.0.0.0

kubectl 查看和查找资源

https://kubernetes.io/docs/re...

minikube 相关

minikube start
minikube stop

minikube delete --all
minikube dashboard
# 添加代理 (外网访问使用)
kubectl proxy  --address='0.0.0.0' --accept-hosts='^.*'

tim_xiao
144 声望2 粉丝

后端程序员