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

160 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### 端口:
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 <none>
驱逐节点上的所有podkubectl drain <node>
节点重新添加到集群kubectl uncordon <node>
为节点设置污点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:状态只读字段,不需要定义
---