安装 Istio 0.2.12

介绍 Istio 是 Service Mesh 的具体实现,它使用十分简单的方式为微服务构建一层网络.这层网络具有可控性,而运行在这层网络上的微服务并不需要做出任何改动,即可无缝使用. Istio主要由Envoy、Pilot、Mixer组成,各自的有特定的功能: Envoy: 以 sidecar 的形式和应用服务运行与同一个 pod 中,通过修改 iptables 来代理应用程序的所有出入流量 Pilot: 类似控制中心,根据设定的指令,控制所有 Envoy 的行为 Mixer: 从 Envoy 处获取流量属性, 根据预设的规则对流量进行处理 部署 curl -SL -O https://github.com/istio/istio/releases/download/0.2.12/istio-0.2.12-linux.tar.gz tar -zxf istio-0.2.12-linux.tar.gz cd istio-0.2.12 # … “安装 Istio 0.2.12”

Read More

解决容器构建错误 E: List directory /var/lib/apt/lists/partial is missing. – Acquire (13: Permission denied)

使用Dockerfile构建一个镜像,如果使用的base image 设置了USER项,则之后的所有构建动作则切换到了USER指定的用户,且docker run该镜像后的用户也是USER指定的用户。 因此为了在base image上继续添加构建动作,则可以使用USER root切换到root用户执行构建,再在构建结束时使用USER someone切换为原用户. FROM someimage … … USER root … USER someone …

Read More

理解 Kubernetes的RBAC

前些天撸了Kubernetes 1.6 和 1.7 两个版本, 发现官方对它最大的改进在于权限. 自版本 1.6 起,Kubernetes 默认由 RBAC 授权. 在kube-apiserver这个服务的配置项中,有一参数项为–authorization-mode,这便是设置授权的模式,值项有: AlwaysAllow 总是允许 AlwaysDeny 总是拒绝 ABAC 基于属性的权限验证 Webhook 基于网络事件的回调钩子 RBAC 基于角色的权限验证 Node 基于节点验证. Kubernetes 1.7 新增 其他的不是重点,这里只需要理解 RBAC 这个权限授权模式. 之前发布的 1.8 的 alpha2 … “理解 Kubernetes的RBAC”

Read More

创建基于Calico网络的Kubernetes 1.7.6

Calico 网络的部署类似之前的 Flannel 网络,只需替换掉 Flannel,其他都无需修改便可生效. 准备环境 Master节点的配置建议 2U2G 起,Node 节点的配置建议 2U2G 起. 系统为 CentOS 7 ,需要配置各个节点的名称,IP,全部流程使用 root 权限,关闭 SELinux 与 Firewalld 服务. 节点名称和IP 三个Master节点,既为master也为node,一个纯Node节点. Node Name IP master1 192.168.85.141 master2 192.168.85.142 master3 192.168.85.143 将每个节点的Hostname改为对应的Node Name: … “创建基于Calico网络的Kubernetes 1.7.6”

Read More

创建基于Fannel网络的Kubernetes 1.7.6

准备环境 Master节点的配置建议 2U2G 起,Node 节点的配置建议 2U2G 起. 系统为 CentOS 7 ,需要配置各个节点的名称,IP,全部流程使用 root 权限,关闭 SELinux 与 Firewalld 服务. 节点名称和IP 三个Master节点,既为master也为node,一个纯Node节点. Node Name IP master1 192.168.85.141 master2 192.168.85.142 master3 192.168.85.143 将每个节点的Hostname改为对应的Node Name: # master1 hostnamectl –static set-hostname … “创建基于Fannel网络的Kubernetes 1.7.6”

Read More

kubctl get nodes 返回No resources found.解决记录

进行手动部署k8s的时候需要十分仔细和耐心,不然一步错那么将会是步步错. 使用命令kubectl get cs和kubectl gt csr返回正常,而到了kubectl get nodes的时候,返回No resources found. 则需要检查在部署kubelet是否配置正确且正常运行,检查kubelet.config配置文件是否生成.若是不存在配置文件,则需要检查kubelet运行状态\输出日志\启动配置,比如kubelet服务配置文件名就是kubelet.service,则可以使用命令systemctl status -l kubelet,journalctl -u kubelet 查看相关输出日志;以及可以查看iptables的规则是否正常.

Read More

Docker仓库Harbor配置LDAP并开启TLS认证

公司使用harbor很长一段时间了,一直用http协议.最近升级到1.1.2版本了,顺便开启https,因此记录一下. 获取安装包 可以到项目官方Github的Release发布地址下载离线安装包,也可以下载在线安装包,一般用离线. 使用命令tar -zxf harbor-offline-installer-xxx.tgz解压下载的离线安装包. 配置 进入目录cd harbor,修改harbor.cfg文件vi harbor.cfg 设置hostname项为你harbor服务的IP或者域名,但不要设置为localhost或者127.0.0.1. ## Configuration file of Harbor #设置hostname项为你harbor服务的IP或者域名. #因为需要使用外部链接来获取服务,所以不要设置为 `localhost` 或 `127.0.0.1`. hostname = harbor.example.com #连接方式默认为http,可以改为https. ui_url_protocol = http #mysql数据库的root密码,另有需求可以自行修改. db_password = root123 #最大并发数默认为3.如果是公司或者公共镜像,可以根据服务器资源适当加大,我这改成10. max_job_workers = … “Docker仓库Harbor配置LDAP并开启TLS认证”

Read More

创建基于Fannel网络的Kubernetes 1.6.8

准备环境 Master节点的配置建议 2U2G 起,Node 节点的配置建议 2U2G 起. 需要配置各个节点的名称,IP,全部流程使用 root 权限,关闭 SELinux 与 Firewalld 服务. 节点名称和IP 三个Master节点,既为master也为node,一个纯Node节点,系统为 CentOS 7. Node Name IP master1 192.168.85.141 master2 192.168.85.142 master3 192.168.85.143 将每个节点的Hostname改为对应的Node Name: # master1 hostnamectl –static set-hostname master1 … “创建基于Fannel网络的Kubernetes 1.6.8”

Read More