随笔分类 - Kubernetes
摘要:通过将身份认证令牌直接传给 API 服务器,可以避免使用 kubectl 代理,像这样:使用 grep/cut 方式: 通过将身份认证令牌直接传给 API 服务器,可以避免使用 kubectl 代理,像这样: 使用 grep/cut 方式: # 查看所有的集群,因为你的 .kubeconfig 文件
阅读全文
摘要:#查看证书过期时期 [root@node1 ~]# openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ' Not ' Not Before: Sep 4 08:29:00 2019 GMT Not After
阅读全文
摘要:使用jenkins动态slave的优势: 服务高可用,当 Jenkins Master 出现故障时,Kubernetes 会自动创建一个新的 Jenkins Master 容器,并且将 Volume 分配给新创建的容器,保证数据不丢失,从而达到集群服务高可用。 动态伸缩,合理使用资源,每次运行 Jo
阅读全文
摘要:为k8s预留系统资源 Kubernetes 的节点可以按照 Capacity 调度。默认情况下 pod 能够使用节点全部可用容量。 这是个问题,因为节点自己通常运行了不少驱动 OS 和 Kubernetes 的系统守护进程。 除非为这些系统守护进程留出资源,否则它们将与 pod 争夺资源并导致节点资
阅读全文
摘要:背景 监控是保障系统稳定性的重要组成部分,在Kubernetes开源生态中,资源类的监控工具与组件监控百花齐放。 cAdvisor:kubelet内置的cAdvisor,监控容器资源,如容器cpu、内存; Kube-state-metrics:kube-state-metrics通过监听 API S
阅读全文
摘要:有时我们的需求是多个域名指向同个后端服务,那ingress-nginx该怎么配置,很简单如下: spec: rules: - host: foobar.com http: &http_rules paths: - backend: serviceName: foobar servicePort: 8
阅读全文
摘要:由于 Ingress Nginx 是最受欢迎的 Ingress 控制器,因此接下来我们将介绍一些有关调试 ingress-nginx 的技巧。 调试 Ingress Nginx Ingress-nginx 项目有一个 Kubectl 的官方插件。 可以使用 kubectl ingress-nginx
阅读全文
摘要:etcd 执行删除命令报错: unexpected status code 401 原来是api版本不对默认是V2,,沃日~~~~~~~~~~~~~~~~~~~ export ETCDCTL_API=3
阅读全文
摘要:背景 Kubernetes中的调度是将待处理的pod绑定到节点的过程,由Kubernetes的一个名为kube-scheduler的组件执行。调度程序的决定,无论是否可以或不能调度容器,都由其可配置策略指导,该策略包括一组规则,称为谓词和优先级。调度程序的决定受到其在第一次调度时出现新pod时的Ku
阅读全文
摘要:背景 无法打开rancher服务,报错如下截图,可以看出是证书过期了无法连上k8s,注意这里的证书是rancher自身证书并非k8s证书。 解决方法 rancher升级:https://rancher2.docs.rancher.cn/docs/upgrades/upgrades/single-no
阅读全文
摘要:灾难恢复 etcd 被设计为能承受机器失败。etcd 集群自动从临时失败(例如,机器重启)中恢复,而且对于一个有 N 个成员的集群能容许 (N-1)/2 的持续失败。当一个成员持续失败时,不管是因为硬件失败或者磁盘损坏,它丢失到集群的访问。如果集群持续丢失超过 (N-1)/2 的成员,则它只能悲惨的
阅读全文
摘要:背景:最近在Azure上自建原生k8s集群,然后很不稳定有时雪崩,日志一直报如下, 网上查了很多资料说是etcd数据存储磁盘io影响etcd查查询慢。确实我这块存储盘是hdd,于是打算迁到ssd盘试下还会不会有这种情况。 etcdserver: read-only range request too
阅读全文
摘要:背景:执行kubectl命令返回结果慢,排查思路检查kube-system命名空间下pod日志。 报错截图: 解决方法: [root@node1 ~]# kubectl delete apiservice v1beta1.metrics.k8s.io
阅读全文
摘要:异常情况:集群是用kubespray部署的4个worknode,coredns默认部署2个deployment。今天发现部署了coredns的node上的pod正常解析内部域名,而另外2个未运行coredns的node却无法解析。 配置文件: 下图中我们看到coredns2个pod分别在node1与
阅读全文
摘要:kubectl patch 使用(patch)补丁修改、更新资源的字段。 支持JSON和YAML格式。 请参阅https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/docs/api-refe
阅读全文
摘要:k8s删除namespace一直处于terminating状态 当遇到删除ns是一直处于terminating情况可以用调k8s api进行删除。 1、创建api proxy。 [root@node1 ~]# kubectl proxy --port=8081 2、把ns追加到json文件。 [ro
阅读全文
摘要:Kubespray 是 Kubernetes incubator 中的项目,目标是提供 Production Ready Kubernetes 部署方案,该项目基础是通过 Ansible Playbook 来定义系统与 Kubernetes 集群部署的任务,具有以下几个特点: l 可以部署在 AWS
阅读全文
摘要:Ingress-Nginx配置修改 说明文档:https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/ 将键值对添加到config-map的data部分。例如: data: map-has
阅读全文
摘要:需求:我们知道搭完k8s集群会创建一个默认的管理员kubernetes-admin用户该用户拥有所以权限,有一天开发或测试的同学需要登录到k8s集群了解业务pod的状态等,我们不可能提供管理员的账户给他不安全如果他因为某个高管。。。删库跑路啥办??,所以建一个只读账户迫在眉睫。 kubectl co
阅读全文
摘要:1.安装bash-completion工具 yum install bash-completion -y 否则报错: -bash: _get_comp_words_by_ref: command not found 2.执行bash_completion source /usr/share/bash
阅读全文