Kubernetes点滴
文章平均质量分 87
关于Kubernetes的源码分析、错误定位、Meetup分享。
styshoo
这个作者很懒,什么都没留下…
展开
-
下载外网容器镜像
个人常用第四种方法,第四种方法失败时会使用第三种方法。没梯子的情况下,还是用第二种吧,就是经常会失败。方法优点缺点挂载梯子,设置docker daemon代理简单受限于梯子的速度和稳定性,很可能会下载到一半超时。薅阿里云羊毛不用翻墙。编辑代码后,可自动触发拉取镜像。阿里云做了限制,一段时间内的构建次数有限;拉取后的镜像需要修改tag,digest值也会变更。挂载梯子,使用google cloud shell操作和shell界面完全一致。原创 2023-07-28 14:47:53 · 568 阅读 · 0 评论 -
Kubesphere之ks-installer介绍
Kubesphere提供两个部署工具,KubeKey和ks-installer。其中,ks-installer部署Kubesphere,KubeKey安装Kubernetes和ks-installer。代码框架controller:shell-operator的两个脚本deploy:部署ks-installer的yaml文件docs:文档env:变量playbooks:各个playbookalerting.yaml:部署报警模块auditing:部署审计模块common:部署通用模块,原创 2022-05-07 09:55:39 · 2575 阅读 · 1 评论 -
Kubernetes Krew简介
概念Krew是kubectl插件的包管理工具。借助Krew,可以轻松地使用kubectl plugin:发现插件、安装和管理插件。使用类似apt、dnf或者brew。对于kubectl用户:krew能帮助用户搜索、安装和管理kubectl插件;对于插件开发者:krew可以帮助你在多种平台上打包和发布插件。使用krew的使用:kubectl krew search ...原创 2019-01-11 11:01:49 · 4211 阅读 · 0 评论 -
Docker容器网络代理设置
之前已经讲过如何设置Docker守护进程如何设置网络代理,那么如何设置运行的Docker容器的网络代理呢?设置环境变量设置容器环境变量,这也是最直接的一种方式。启动容器时,通过设置–env的flag,将环境变量传入容器。变量名Dockerfile示例Docker run示例HTTP_PROXYENV HTTP_PROXY “http://127.0.0.1:3001”–env HTTP_PROXY=“http://127.0.0.1:3001”HTTPS_PROXYE原创 2020-05-18 11:21:40 · 41997 阅读 · 1 评论 -
HPA的target显示unknown
背景HPA显示异常,TARGETS部分显示unknown。[root@a1 ~]# kubectl get hpa -n istio-system NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGEistio-ingressgateway Deployment/istio-ingressgateway原创 2022-03-02 09:39:36 · 2488 阅读 · 1 评论 -
Kubernetes配置多个local-path-provisioner
背景常规的本地卷,一般使用hostpath和local volume,但hostpath问题较多( 参考),而local volume布置成动态卷,使用起来较为复杂。因此,rancher开发了 local-path,可以实现动态卷功能。但如果想实现IO隔离,就需要一套Kubernetes环境下部署多个local-path-provisioner。配置local-path-provisioner可设置环境变量PROVISIONER_NAME,只要该环境变量的值,与新创建local-pat.原创 2022-03-02 09:23:15 · 1585 阅读 · 0 评论 -
calicoctl命令简介
背景在calico中,有多种网络资源。以v1.6.1为例,网络资源包含:node,bgpPeer,hostEndpoint,workloadEndpoint,ipPool,policy,profile等。 下面我将讲解如何使用calicoctl命令行工具来控制这些网络资源。 用法create创建一个网络资源。比如说我们要创建一个“profile” 的网络资源,那么...原创 2018-03-01 05:41:36 · 11386 阅读 · 0 评论 -
Kubernetes服务之“运行单实例的有状态服务”
目标 在你的环境中创建一个PV 创建一个MySQl的Deployment 在集群中以DNS名称的方式,将MySQL暴露给其他的pod 开始之前 你需要一个Kubernetes集群,一个可以连接到集群的kubectl命令行工具。如果你没有集群,你可以使用Minikube来创建。 我们会创建一个PV(PersistentVolume)用于数据存储。点击这里来查看PV支持的类型,该原创 2017-07-11 06:57:11 · 2437 阅读 · 0 评论 -
Kubernetes服务之StatefulSets简介
StatefulSets在v1.5时还是个beta特性,它取代了v1.4的PetSets特性。PetSets的用户可以参考v1.5的升级指导,将正在运行的PeetSets升级到StatefulSets。 StatefulSet是一个给Pod提供唯一标志的控制器,它可以保证部署和扩展的顺序。 使用StatefulSet 当应用有以下任意要求时,StatefulSet的价值就体现出来了。原创 2017-06-26 06:25:20 · 16758 阅读 · 0 评论 -
Kubernetes存储之Persistent Volumes简介
注意 以下内容适用于Kubernetes v1.6.0及以下。简介 管理存储和管理计算有着明显的不同。PersistentVolume子系统给用户和管理员提供了一套API,从而抽象出存储是如何提供和消耗的细节。在这里,我们介绍两种新的API资源:PersistentVolume(简称PV)和PersistentVolumeClaim(简称PVC)。 PersistentVolume(持久卷原创 2017-05-16 06:32:00 · 11254 阅读 · 0 评论 -
Kubernetes v1.6开始支持RBAC
Kubernetes v1.6的一个亮点就是RBAC认证特性成为了beta版本。RBAC,基于角色的访问控制(Role-Based Access Control),是用于管理Kubernetes资源访问权限的认证机制。RBAC支持灵活的认证策略配置,使得集群在不重启的情况下就可以升级权限。 本文重点聚焦在一些有趣的新特性和实践上。 RBAC vs ABAC 当前Kubernetes已经支持原创 2017-04-20 06:54:29 · 1525 阅读 · 0 评论 -
Kubernetes DNS 简介
环境$ sudo lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 16.04.2 LTSRelease: 16.04Codename: xenial$ kubectl versionClient Version: version.Info{Major:原创 2017-04-10 07:01:54 · 11630 阅读 · 0 评论 -
Kubernetes volumes简介
容器中的磁盘文件生命周期比较短暂,在一些比较复杂的容器应用中会产生一些问题。一、容器crash后,kubelet会重启该容器,但这些文件会丢失掉。二、pod中的多个容器经常需要共享文件。因此,Kubernetes的Volume应然而生,用于解决这些问题。 背景 在Docker中,也有volumes这个概念,volume只是磁盘上一个简单的目录,或者其他容器中的volume。生命周期也不受管理,并原创 2017-04-07 06:31:08 · 19815 阅读 · 0 评论 -
使用Docker容器来源码编译etcd
背景 etcd是CoreOS公司开发的分布式键值对存储库。在Kubernetes中,我们需要使用etcd作为所有REST API对象的持久化存储。 不幸的是,在github的release中,CoreOS将etcd的二进制可执行文件都放在了亚马逊的S3存储上,在国内访问非常慢。因此,我们只能通过源码编译etcd。 过程 1. 下载etcd源码。 $ git clone https://原创 2017-03-27 07:02:52 · 1845 阅读 · 0 评论 -
Ubuntu上手动安装Kubernetes
背景 两台Ubuntu16.04服务器:ip分别为192.168.56.160和192.168.56.161。。 Kubernetes版本:1.5.5 Docker版本:1.12.6 etcd版本:2.2.1 flannel版本:0.5.6 其中160服务器既做Kubernetes的master节点,又做node节点;161服务器只做node节点。 master原创 2017-04-05 07:18:13 · 9389 阅读 · 3 评论