K8S组件介绍
journalctl -f -u kubelet.service
systemctl status kubelet.service
一、pod
1、pod配置
kubectl explain pod.spec #查看k8s各资源清单
(1)使用yaml文件去创建pod,一级属性如下
apiVersion、kind、metadata、spec
(2)spec的常用子属性为containers、restartPolicy、nodeName和nodeSelector
(3)containers的常用子属性为 name、image、imagePullPolicy、command
2、pod生命周期
3、pod调度
(1)配置文件中声明nodeName或者nodeSelector——>定向调度 #重点掌握
(2)配置文件中声明affinity.nodeAffinity——>node亲和性调度
affinity.podAffinity——>pod亲和性调度
affinity.PodAntiAffinity——>pod反亲和性调度 #这3个还有多个难搞的子属性
以上两种方式是通过对pod添加属性来决定pod是否调度到指定node上,当然也可以对node添加属性 Taints和Toleration来控制pod的调度
(3)污点和容忍
设置污点
kubectl taint node node_name key=value:effect #key和value是污点的标签 effect是描述污点的作用 有3个值 如tag=zqm:PreferNoSchedule/NoSchedule/NoExecute
去除单个污点
kubectl taint node node_name key:effect-
去除所有污点
4、常用命令
kubectl get pod -n dev -o wide/yaml #dev是namespace的名称
kubctl describe pod pod_name -n dev #查看pod详细信息
kubcetl create/run pod xxx:xxx -n dev #直接创建pod
kubectl create -f xxx.yaml #使用yaml文件创建pod
kubectl delete -f xxx.yaml
kubectl delete pod pod_name -n dev --force --grace-period=0 #强制删除pod
kubectl exec -it pod_name -n dev -c containers_name /bin/sh #进入容器中
kubectl top pod -n ns_name #查看pod的cpu使用率 需先安装metrics-server
kubectl label nodes nodeName key=value #给节点打标签
二、pod控制器
Replicaset、Deployment、HPA、DaemonSet、Job和CronJob
pod扩缩容
命令行方式 kubcetl scale rs rs_name --replicas=2 -n ns_name
kubectl scale deploy delpoy_name --replicas=2 -n ns_name
文本编辑方式 kubectl edit rs rs_name -n ns_name
pod中容器镜像升降级
命令行 kubectl set image rs rs_name containers_name=xxx:xxx -n dev
kubectl set image deploy deploy_name containers_name=xxx:xxx -n dev #deploy控制器可指定两种升级策略Recreate和RollingUpdate
三、Service
四、volume数据存储
1、基本存储Emptydir——Hostpath——NFS(CIFS、GlusterFS...)
NFS需要先准备nfs服务器 企业中可能会单独去构建一个nfs集群
//基本存储都有致命缺陷 让用户直接操作nfs可能要求有点高 下面将该过程再细化
2、高级存储
pv是集群资源 没有ns pvs是有ns的
nfs支持三种访问模式 具体详见官网
pv和pvs的访问模式需保持一致 否则会绑定不上
删除pod和pvc查看pv状态
3、配置文件的存储Configmap和Secret
edit修改configmap内容会动态更新
———————————————————CKA认证———————————————————————
kubeadm upgrade apply v1.25.11 --etcd-upgrade=false
kubectl -n kube-system edit cm kubeadm-config -o yaml
apt install kubelet=1.26.2-00 kubectl=1.26.2-00
————————————————containerd常用命令————————————————
ctr version
crictl image
ctr image pull redis:latest
ctr images rm docker.io/library/redis:latest
