版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 1. 前言 警告:本文仅用于萌叔自己总结之用,对其它人而言可能毫无营养,没有阅读价值。 本文使用的安装工具为easzlab/kubeasz 2. 步骤 2.1 修改docker目录 通过软连接的方式修改docker 数据存储路径 ansible new-node -i hosts -m shell -a ‘mkdir /data/docker’ ansible new-node -i hosts -m shell -a ‘cd /var/lib/ && ln -s /data/docker docker’ 2.2 安装gluster fs依赖 如果pod需要用到gluster fs才需要执行此步骤 ansible new-node -i… 继续阅读 K8S学习笔记(4)-增加node节点

版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 1. 引言 kt-connect是阿里开源的k8s的调试工具,它的作用类似于VPN,能够打通k8s集群和本地的网络。 传送门: alibaba/kt-connect 它有3种模式 * Connect 本地网络直接访问k8s集群网络 * Exchange 转发集群流量到本地 * Service Mesh 支持 另外它提供了一个Dashboard可以查看k8s集群内的所有可访问的service资源以及正在进行调试的Connect和Exchange数量, 用处不大。 2. 使用介绍 这里萌叔只简单介绍Connect和Exchange2种模式,更详细的使用说明见参考资料1 2.1 Connect模式 sudo ktctl -i ik8share/kt-connect-shadow:stable connect 注意: kt-connect 依赖sshuttle, 且运行时必须拥有root权限。另外sshuttle 又依赖了iptables(linux操作系统), ptctl(macOS) -i 参数指定镜像的地址 这里ik8share/kt-connect-shadow:stable是镜像的名字,阿里默认提供的镜像地址rdc-incubator/kt-connect-shadow在萌叔的测试k8s集群中无法正常拉取。这里提供了一个docker hub的镜像地址。 2.2 Exchange模式 sudo… 继续阅读 聊聊k8s调试工具kt-connect的实现

版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 1. 前言 警告:本文仅用于萌叔自己总结之用,对其它人而言可能毫无营养,没有阅读价值。 删除namespace出现下面的情况 ╰─$ kubectl get ns NAME STATUS AGE default Active 5d3h ingress-nginx Active 4d22h istio-system Active 4d3h kube-node-lease Active 5d3h kube-public Active 5d3h kube-system Active 5d3h kubernetes-dashboard Active 39m ns-helloworld Terminating 3h56m 2.解决方法 2.1 导出namespace配置 kubectl get namespace… 继续阅读 k8s学习笔记(2)-删除namespace失败处理

版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 1. 前言 警告:本文仅用于萌叔自己总结之用,对其它人而言可能毫无营养,没有阅读价值。 Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。 你可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源 (如 Deployment,Job,DaemonSet 等等)。 通过一段时间的使用感受而言,Dashboard虽然做的差强人意,但聊胜于无。 2. 安装&配置 wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml 建议脚本下载以后,先大致阅读以下 2.1 修改yaml kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard spec:… 继续阅读 k8s学习笔记(1)-安装dashboard

版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 1. 前言 本文存在的目的,是为了通过图例的方式更好的整理envoy存在的意义 2. 图示 namespace配置了自动注入(istio-injection:enabled)之后,每个POD都会自动生成1个Sidecar容器 istio-proxy(运行sidecar代理,实现方式为Envoy或MOSN 图示展示服务网格中的请求的情况 2.1 请求网格内部的服务 downstream和upstream是网格内的2个服务的容器 downstream调用upstream 对这种场景,请求穿过需要穿过2个envoy,1个是调用方POD中的envoy, 1个是被调用方POD中的envoy 2.2 请求网格外部的服务 External Service是网格外部的1个服务 对于这种场景,只穿过一次envoy 3. 支持的服务治理功能 请求分发, 按不同版本,以特定权重分发 负载均衡 URL重写 故障注入,包含增加延迟,或者直接拒绝 服务熔断,比如针对5XX执行熔断操作 限频 重试 超时控制 状态统计 QPS/流量/URL/延迟等 这部分信息最后会由prometheus统一收集,最终展现在Grafana和Kiali中 envoy实际是将原来应用中的拦截器以及网关实现的部分功能做了抽取和抽象,使得应用开发人员能够转注于业务逻辑开发。 后记(重要) istio默认不记录日志。如果需要记录请求日志,需要在ConfigMap istio中,增加 accessLogFile: /dev/stdout accessLogEncoding: JSON… 继续阅读 istio学习笔记(2)-envoy

版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 1. 前言 萌叔试图通过Gateway把服务暴露在服务网格外部,下面是笔者的一些总结。 2. 体系结构 很重要 gateway-controller <-> ingress-controller (实际的pod) istio-ingressgateway <-> nginx-ingress-controller (一种实现) gateway <-> ingress (配置) gateway-controller的一个实现是 istio-ingressgateway ingress-controller的一个实现是 nginx-ingress-controller nginx-ingress-controller相当于openresty, 配置ingress以后会生成对应nginx的配置文件。同样配置gateway之后, 会生成envoy对应的配置文件。 3. 配置 3.1 istio-ingressgateway 当安装了istio以后,服务中会有一个istio-ingressgateway 默认情况下, istio-ingressgateway对应的容器并没有暴露在服务网格之外。需要修改配置。 修改istio-ingressgateway的 Deployment 也可以直接修改helm的 deployment.yaml “dnsPolicy”: “ClusterFirstWithHostNet” # 修改(确保能够正确访问pilot) “hostNetwork”:… 继续阅读 istio学习笔记(1)-配置Gateway