包含标签 k8s 的文章

Etcd集群运维

集群的备份和恢复 添加备份 #!/bin/bash IP=123.123.123.123 BACKUP_DIR=/alauda/etcd_bak/ mkdir -p $BACKUP_DIR export ETCDCTL_API=3 etcdctl --endpoints=http://$IP:2379 snapshot save $BACKUP/snap-$(date +%Y%m%d%H%M).db # 备份一个节点的数据就可以恢复,实践中,为了防止定时任务配置的节点异常没有生成备份,建议多加几个 恢复集群 #!/bin/bash # 使用 etcdctl snapshot restore 生成各个节点的数据 # 比较关键的变量是 # --data-dir 需要是实际 etcd 运行时的数据目录 # --name --initial-advertise-peer-urls 需要用各个节点的配置 # --initial-cluster initial-cluster-token 需要和原集……

阅读全文

Kubernetes之pod调度

Pod的调度在默认情况下是Scheduler Controller 采用默认算法的全自动调度,在实际使用中并不满足我们的需求,因为并不能事先掌握pod被调度到哪个Node之上,所以kubernetes又提供了好几种方式让我们自已选择调度到什么Node中,比如有NodeSelector(定向调度)、No……

阅读全文

灵雀云K8s集群对接Prometheus

安装helm 安装helm docker run -ti --rm -v /usr/local/bin/:/var/log/abc index.alauda.cn/claas/helm:v2.10.0-rc.2 sh -c "cp /systembin/helm /var/log/abc" 安装chart_repo源(我自己的平台已经安装,所以不需要操作) docker run -d \ -p 8088:8080 \ -e PORT=8080 \ -e DEBUG=1 \ -e STORAGE="local" \ -e STORAGE_LOCAL_ROOTDIR="/data" \ -e BASIC_AUTH_USER="chartmuseum" \ -e BASIC_AUTH_PASS="chartmuseum" \ -v /data:/data \ chartmuseum/chartmuseum:latest 检查确定安装成功 helm repo list NAME URL local http://127.0.0.1:8879/charts stable http://chartmuseum:chartmuseum@172.16.16.21:8088 执行helm init 初始化 helm init --stable-repo-url=http://chartmuseum:chartmuseum@172.16.16.21:8088 --tiller-image=index.alauda.cn/claas/tiller:v2.11.0 添加相关权限 kubectl create serviceaccount --namespace kube-system tiller kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}' kubectl create clusterrolebinding……

阅读全文

K8s默认的services ip不通

写在前边的话 今天团队的小测试集群突然挂掉,完全不能访问,紧急任务排查问题 问题现象 平台挂掉,集群内有一台master节点的容器全部down掉,其中大部分pod显示Evicted状态 排查 登录三台master节点分别get node发现其中有一台一直未返回,docker ps发现此节点的所……

阅读全文

Kubernetes的Kube Proxy的转发规则分析

概要 filter表 nat表 Chain KUBE-SERVICES Chain KUBE-NODEPORTS (1 references) Chain KUBE-POSTROUTING (1 references) 报文处理流程图 发送到Node的报文的处理过程 Node发出的报文的处理过程 概要 kube-proxy是kubernetes中设置转发规则的组件,通过iptables修改报文的流向。 以下是在一台kubernetes node节点上观察到的结果……

阅读全文

Kubernetes 滚动升级

run test deploy [root@k8s-master ~]# kubectl run --image=nginx --port=80 --replicas=2 test-nginx scale replica [root@k8s-master ~]# kubectl scale --replicas=1 deploy/test-nginx [root@k8s-master ~]# kubectl get deploy NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE busybox 2 2 2 2 39d busybox1 1 1 1 1 39d test-nginx 1 1 1 1 2h update image [root@k8s-master ~]# kubectl set image deploy/test-nginx test-nginx=nginx:alpine 查看升级历史 [root@k8s-master ~]# kubectl rollout history deploy/test-nginx deployments "test-nginx" REVISION CHANGE-CAUSE 1 <none> 2 <none> 回顾至上次版本 [root@k8s-master ~]# kubectl rollout undo deploy/test-nginx [root@k8s-master ~]# kubectl rollout history deploy/test-nginx deployments "test-nginx" REVISION CHANGE-CAUSE 2 <none> 3 <none> 回滚至指定版本 [root@k8s-master ~]# kubectl rolloutundo deployment/lykops-dpm --to-revision=2……

阅读全文

K8s容器一直重启问题排查

问题 昨天有个客户反馈服务不可访问,查看服务日志发现dns无法解析,通过kubectl查看kube-dns 这个pod一直在重启,客户只反馈了这一个问题,如图: 过了一会后发现kube-dns灾厄已经恢复,但是kube-flannel这个pod又开始一直重启。 根据自己以往的经验还以为是……

阅读全文

Kubernetes Eviction Manager工作机制分析

摘要 为了极限的压榨资源,很多时候Kubernetes集群会运行一些Best-Effort Task,这样就会存在资源超配的情况,Kubernetes是如何控制Node上资源的使用,在压榨资源使用的同时又能保证Node的稳定性?本文就为你介绍其背后运行机制。我的下一篇博文,会对Kub……

阅读全文

Kubernetes的使用技巧

1. bash针对kubectl命令的自动补充 这可能是在使用Kubernetes过程中最容易做的事,但它也是其中一个最有用的。要添加自动补充功能,如果使用bash,只需执行以下命令: echo "source <(kubectl completion bash)" >> ~/.bashrc 它将添加自动补全命令到你的.bashrc文件。因此每个你打开的shell窗口都支持该功能……

阅读全文

K8S的 QoS策略

QoS k8s中对容器的资源分配有三种策略: Guaranteed 。该策略下,pod.spec.containers[].resources中会存在cpu或memory的request和limit。顾名思义是该容器对资源的最低要求和最高使用量限制。如果我们配置了limit,没有配置request,默认会以……

阅读全文