摘要:spec: containers: - image: nginx name: nginx ports: - containerPort: 80 hostPort: 8080 iptables增加dnat规则,完成主机端口8080到容器端口80的映射。 优点:固定转发到本节点pod。缺点:占用节点端口
阅读全文
摘要:问题现象 多个kube-apiserver,重启单个kube-apiserver,会导致请求集中到其他kube-apiserver上,重启的kube-apiserver几乎没有收到请求。 问题分析 重启kube-apiserver,client因连接断开而重连到其他kube-apiserver。cl
阅读全文
摘要:cron表达式,每隔几小时即准点几时,0 */x * * *。以0-23范围%小时数是0时才有效,即1-4、6、8、12才有效。例如,12表示每天12点和0点各自执行1次。 # 每分钟执行一次 schedule: "* * * * *"或者schedule: "*/1 * * * *" # 每小时0
阅读全文
摘要:# 查看k8s管理面证书过期时间 kubeadm certs check-expiration # 生成加入k8s集群的token kubeadm token create --print-join-command 参考资料 https://kubernetes.io/zh-cn/docs/refe
阅读全文
摘要:k8s v1.15.0 调度缓存作用 1. 保证调度过程中,看到的快照(缓存信息拷贝一份)里面node信息前后一致。2. 调度过程中,不查询kube-apiserver,提升性能。3. pod走完Scheduling Cycle时,进入异步Binding Cycle前,预分配node资源给这个pod
阅读全文
摘要:前台级联删除:pod等从属对象删除之后,再删除所有者对象(比较慢)删除顺序:删除pod a -> 删除rs a-> 删除deploy a命令:kubectl delete deploy a --cascade=foreground 后台级联删除:删除所有者对象后返回,从属对象由垃圾回收器删除(比较快
阅读全文
摘要:# 登录k8s节点,获取kubelet根证书 grep "certificate-authority-data" /etc/kubernetes/kubelet.conf | awk '{print $2}' | base64 -d > kubelet-ca.crt # 通过证书来访问kube-ap
阅读全文
摘要:node statuscapacity: 节点上的总资源,固定值allocatable: 可供pod使用的总资源,固定值 kubectl get node kind-control-plane -oyaml 默认情况下,allocatable和capacity相等,pod可使用节点的所有资源。 为了
阅读全文
摘要:创建secret kubectl create secret docker-registry pull-image \ --docker-server=<domain> \ --docker-username=<username> \ --docker-password=<password> Pod
阅读全文
摘要:v0.0.30 vendor/sigs.k8s.io/sig-storage-lib-external-provisioner/v10/controller/controller.go syncClaim方法1. 如果pvc上存在注解volume.kubernetes.io/storage-prov
阅读全文
摘要:v1.19.0 kubelet是否自注册由参数register-node决定,默认是true。 pkg/kubelet/kubelet_node_status.goregisterWithAPIServer不断尝试创建node,直到成功。
阅读全文
摘要:kubectl edit cm coredns -n kube-system # ConfigMap coredns默认配置 # 非k8s域名通过宿主机上/etc/resolv.conf解析 forward . /etc/resolv.conf { max_concurrent 1000 } # 自
阅读全文
摘要:package main import ( "time" "k8s.io/client-go/util/workqueue" klog "k8s.io/klog/v2" ) func handleKey(startTime time.Time) { klog.Infof("handle key, i
阅读全文
摘要:kube-apiserver和kubelet日志级别默认是2,支持通过接口来动态更新日志级别。 kubectl proxy & PID=$! # 动态更新kube-apiserver日志级别 curl -X PUT http://127.0.0.1:8001/debug/flags/v -d "5"
阅读全文
摘要:k8s v1.26.0 删除pod前,增加finalizer kubernetes,方便看到kubelet是否会清空pod status podIP。 场景1:正常删除 没有清空。 场景2:kubelet重启 清空了。 场景3:节点重启 清空了。
阅读全文
摘要:k8s v1.19.0 结论 kubelet删除pod时,先停止业务容器,再完成cni del。如果cni del失败(非no such file or directory错误),那么kubelet会一直重试。 kubelet调用docker,才会打印"Calling network plugin"
阅读全文
摘要:下载k8s代码 cd kubernetes git checkout v1.19.0 提前拉取镜像 docker pull k8s.dockerproxy.net/build-image/kube-cross:v1.15.0-1 docker tag k8s.dockerproxy.net/buil
阅读全文
摘要:发送请求前,支持修改请求内容或者拦截。发送请求后,支持修改响应内容或者拦截。 结构体实例实现 package main import ( "context" "fmt" "net/http" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/clie
阅读全文
摘要:kube-apiserver启动参数--request-timeout,表示请求的超时时间。
阅读全文
摘要:k8s.io/client-go v0.28.2 创建clientcmd.ClientConfig对象 "k8s.io/client-go/tools/clientcmd" 方法1:NewNonInteractiveDeferredLoadingClientConfig方法 nonInteracti
阅读全文