Docs/CloudNative/Kubernetes/Base/k8s基础.md
2022-10-18 16:59:37 +08:00

4.2 KiB
Raw Blame History

端口:

master apiserver6443https 8080 etcd2379外部访问。client访问2380etcd集群互访 kubelet 10250 kube-schedulerhealthy10251 controler-managerhealthy10252 cloud-managerhealthy10253 kubulet api 10255 kube-proxyhealthy10256

k8s架构

masterapi serverschedulercontroller manager
nodekubeletkube-proxy

k8s最小调度单元pod

pod有标签label标签选择器label selector

pod分为自主式与控制器管理的pod

##控制器类型:
	RepllicationController
	ReplicaSet
	Deployment
	StatefulSet
	DaemonSet
	Job
	CronJob
	HPAHorizontalPodAutoscaler自动扩展

##CNI:
	flannel:网络配置
	calica:网络配置,网络策略
	...

资源对象:

负载类型资源podReplicaSetDeployment,serviceJobCronJob

pod生命周期

初始化容器init container
启动后start post
存活状态检测liveness probe
就绪检测readiness probe
停止前: pre stop

显示集群的运行信息kubectl cluster-info

显示集群各组件的运行信息kubectl get cs

显示apiserver各版本kubectl api-version

查看ReplicaSet的apiVersionkubelet explian rs

获取pod简单信息kubectl get pod

获取pod信息并显示labelkubectl get pod --show-labels

获取pod详细信息kubectl get pod -o wide

获取pod信息并显示为yaml格式kubectl get pod -o yaml

持续查看pod信息kubectl get pod -w (watch)

显示标签中含有xxx标签的podkubectl get pod -l xxx

为pod打标签kubectl label pod pod名称 标签key=标签value --overwrite

查看pod的描述信息kubectl describe xxx

扩缩容器数量kubectl scale --replicas=3 xxx

回滚到上一个版本kubectl rollout undo pod名称

修改配置信息kubectl edit

查看资源字段定义及使用kubectl explain 资源字段

从dockerhub中拉取最新的nginx镜像运行端口80一个副本kubectl run nginx-deploy --image=nginx --port=80 --relicas=1

查看pod日志kubelet logs pod名称 容器名称

进入pod中的容器里kubelet exec -it pod名称 -c 容器名称 -- /bin/sh

删除资源kubectl delete 删除指定配置资源清单kubectl delete -f xxx.yaml 删除指定资源kubelet delete 资源名称 -n namespace

禁止pod调度到该nodekubectl cordon

驱逐节点上的所有podkubectl drain

节点重新添加到集群kubectl uncordon

为节点设置污点kubectl taint nodes node1 key1=value1:NoSchedule


大部分资源的配置清单

apiVersiongroup/version # kubectl explain 资源类型

kind: 资源类别

metadata元数据 name资源名称 namespace资源命名空间 labels标签 annotations spec规格期望的状态 containers livenessProbe存活探针 httpGet: port:端口或容器中ports定义的端口对应的name path:/index.html exec: command:[命令或脚本] initialDelaySeconds:数字,延迟时间,秒 periodSeconds:数字,探测间隔,秒 readinessProbe就绪探针 httpGet: port:端口或容器中ports定义的端口对应的name path:/index.html exec: command:[命令或脚本] initialDelaySeconds:数字,延迟时间,秒 periodSeconds:数字,探测间隔,秒 - name名称 image镜像地址 args[entrypoint] lifecycle:存活钩子 postStart: exec: command - name名称 image镜像地址 imagePullPolicyAlways[总是去拉取镜像]Never[从来不去拉取],IfNotPresent[本地不存在,拉取] ports端口列表 - name端口名称 containerPort端口 - name端口名称 containerPort端口 protocol协议默认tcp command[命令]

restartPolicyAlways[总是重启]OnFailure[失败重启]Never[不重启]默认时Always

nodeSelector:{节点标签选择器}
nodeName节点名称
annotations:与label不同地方在于它不能用于挑选资源对象仅用于为对象提供“元数据”

status:状态只读字段,不需要定义