kubernetes集群应用部署实例】的更多相关文章

今天,我们将要带来入门hello world示例,它是一个web留言板应用,基于PHP+Redis的两层分布式架构的web应用,前端PHP web网站通过访问后端Redis数据库完成用户留言的查询和添加功能,具备读写分离能力,留言板内容是从redis中查询到的,首页中添加留言并提交后,留言会被添加到redis中. 有三个前端节点:php-frontend,对网站的访问进行负载均衡 有两个redis后端节点:一个redis-master和两个redis-slave,两个redis-slave从re…
一.部署环境架构以及方式 第一种部署方式 1.针对于master节点 将API Server.etcd.controller-manager.scheduler各组件进行yum install.编译安装或者展开安装的方式手动直接安装在master节点主机上,作为系统级守护进程运行. 2.针对于node节点 将kube-proxy.kubelet.docker.flannel各组件进行yum install或下载已预制好的二进制程序包手动安装在node节点主机上,作为系统级守护进程运行. 此部署方…
KubeSphere 不仅支持部署在 Linux 之上,还支持在已有 Kubernetes 集群之上部署 KubeSphere,自动纳管 Kubernetes 集群的已有资源与容器. 前提条件 Kubernetes 版本: 1.13.0 ≤ K8s version < 1.16: Helm,版本 >= 2.10.0(不支持 helm 2.16.0 #6894),且已安装了 Tiller,参考 如何安装与配置 Helm: 集群的可用 CPU > 1 C,可用内存 > 2 G: 集群已…
参考文档: Github:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch Kubernetes推荐采用Fluentd+Elasticsearch+Kibana对系统与容器日志进行采集,查询并展现. 一.环境 1. 基础环境 组件 版本 Remark kubernetes v1.9.2   fluentd-elasticsearch v2.0.4   elastics…
参考文档: Github介绍:https://github.com/kubernetes/heapster Github yaml文件: https://github.com/kubernetes/heapster/tree/master/deploy/kube-config/influxdb 或者(source code):https://github.com/kubernetes/heapster/releases cAdvisor:https://github.com/google/cad…
etcd集群配置 master节点配置 1.安装kubernetes etcd [root@k8s ~]# yum -y install kubernetes-master etcd 2.配置 etcd 选项 [root@k8s ~]# cat /etc/etcd/etcd.conf #[Member] ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_PEER_URLS="http://172.19.15.92:2…
参考文档: Github:https://github.com/kubernetes/ingress-nginx Kubernetes ingress:https://kubernetes.io/docs/concepts/services-networking/ingress/ Ingress:https://mritd.me/2017/03/04/how-to-use-nginx-ingress/ 配置示例:https://www.cnblogs.com/iiiiher/p/8006801.…
参考文档: Github介绍:https://github.com/kubernetes/dns Github yaml文件:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dns DNS for Services and Pods:https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/ Kubedns原理1:https…
Ingress是kubernetes集群对外提供服务的一种方式.ingress部署相对比较简单,官方把相关资源配置文件,都已经集合到一个yml文件中(mandatory.yaml),镜像地址也修改为quay.io. 1.部署 官方地址:https://github.com/kubernetes/ingress-nginx 1.1 下载部署文件: ## mandatory.yaml为ingress所有资源yml文件的集合### 若是单独部署,需要分别下载configmap.yaml.namespa…
摘要: 集群其他组件全部完成后我们应当部署集群 DNS 使 service 等能够正常解析,1.11版本coredns已经取代kube-dns成为集群默认dns. 1)下载yaml配置清单 [root@k8s-master01 ~]# mkdir /opt/k8s/coredns [root@k8s-master01 ~]# cd /opt/k8s/coredns/ [root@k8s-master01 coredns]# wget https://raw.githubusercontent.c…
参考文档: Github介绍:https://github.com/kubernetes/dashboard Github yaml文件:https://github.com/kubernetes/dashboard/blob/master/src/deploy/recommended/kubernetes-dashboard.yaml 或者(各服务模块独立保存):https://github.com/kubernetes/kubernetes/tree/master/cluster/addon…
十二.部署kube-proxy 1. 创建kube-proxy证书 1)创建kube-proxy证书签名请求 # kube-proxy提取CN作为客户端的用户名,即system:kube-proxy. kube-apiserver预定义的 RBAC使用的ClusterRoleBindings system:node-proxier将用户system:kube-proxy与ClusterRole system:node-proxier绑定,该Role授予节点调用kube-apiserver pro…
十一.部署kubelet 接下来两个章节是部署Kube-Node相关的服务,包含:kubelet,kube-proxy. 1. TLS bootstrap用户授权 # kubelet采用TLS Bootstrapping 机制,自动完成到kube-apiserver的注册,在node节点量较大或者后期自动扩容时非常有用. # kubelet 启动时向 kube-apiserver 发送 TLS bootstrapping 请求,需要先将 bootstrap token 文件中的 kubelet-…
十.部署kube-scheduler kube-scheduler是Kube-Master相关的3个服务之一,是有状态的服务,会修改集群的状态信息. 如果多个master节点上的相关服务同时生效,则会有同步与一致性问题,所以多master节点中的kube-scheduler服务只能是主备的关系,kukubernetes采用租赁锁(lease-lock)实现leader的选举,具体到kube-scheduler,设置启动参数"--leader-elect=true". 1. 创建kube…
九.部署kube-controller-manager kube-controller-manager是Kube-Master相关的3个服务之一,是有状态的服务,会修改集群的状态信息. 如果多个master节点上的相关服务同时生效,则会有同步与一致性问题,所以多master节点中的kube-controller-manager服务只能是主备的关系,kukubernetes采用租赁锁(lease-lock)实现leader的选举,具体到kube-controller-manager,设置启动参数"…
八.部署kube-apiserver 接下来3章节是部署Kube-Master相关的服务,包含:kube-apiserver,kube-controller-manager,kube-scheduler. 3个组件部署在一个节点上,为1个部署单元. kube-apiserver是无状态的,客户端如kubelet可通过启动参数"--api-servers"指定多个api-server,但只有第一个生效,即指定的多个api-server并没有达到高可用的目的(可能在后续版本解决),所以可通…
七.部署flannel网络 kubernetes支持基于vxlan方式的flannel与weave网络,基于BGP路由的Calico网络,本节采用flannel网络. Flannel网络采用etcd等kv存储做集中控制,在每个host生成1个subnet,每个host上的subnet通过vxlan方式打通. 1. 创建flannel TLS证书与私钥 etcd集群启用了双向TLS认证,需要为flannel网络指定与etcd集群通信的CA与秘钥. 1)创建flannel证书签名请求 [root@k…
背景说明: 随着docker使用的逐步深入,docker的管理变得越来越麻烦,单纯的通过docker命令行的方式进行管理已经不能满足需求,同时也存在效率低下的问题.所以急需一个docker集群管理工具,要求是开源.稳定.持续发展.从上网看,开源的项目有很多,大部分都比较陈旧,个人感觉shipyard比较合适,简单实用,但是shipyard最近在github上通知关闭项目,不再维护,本来还想既然这个是开源项目,那就拿到源码自己改造也行,结果是用go写的,只会python,go搞不定.所以放弃了.…
集群部署好后,如果我们想知道集群中每个节点及节点上的pod资源使用情况,命令行下可以直接使用kubectl top node/pod来查看资源使用情况,默认此命令不能正常使用,需要我们部署对应api资源才可以使用此命令.从 Kubernetes 1.8 开始,资源使用指标(如容器 CPU 和内存使用率)通过 Metrics API 在 Kubernetes 中获取, metrics-server 替代了heapster.Metrics Server 实现了Resource Metrics API…
环境准备 一台部署节点,一台master节点,还有两台节点node1,node2 完好的k8s集群环境 思路一: 在node1和node2节点上通过宿主机与容器之间目录映射和端口映射上线静态网站(或动态),然后将映射的目录做成hostpath,通过nfs共享出去. 思路二: 在node1和node2节点上通过拷贝宿主机存放静态资源的目录到容器的apache根目录内实现静态网站的上线,并且能通过部署nodeport静态端口访问后端节点的静态网站. 这里我演示第二种方法: 部署节点操作: 1)编排h…
Dashboard是k8s的web界面,用户可以用 Kubernetes Dashboard 部署容器化的应用.监控应用.并对集群本身进行管理,在 Kubernetes Dashboard 中可以查看集群中应用的运行状态. 1.下载yaml配置文件 wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml 2.创建dash…
K8S Dashboard是官方的一个基于WEB的用户界面,专门用来管理K8S集群,并可展示集群的状态.K8S集群安装好后默认没有包含Dashboard,我们需要额外创建它. 首先我们执行命令: wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml 我们需要对kubernetes-dashboard.yaml进行一些用…
Elastic Cloud on Kubernetes (ECK) ---ECK是这个说法哈. 基本于k8s operator的官方实现. URL: https://www.elastic.co/guide/en/cloud-on-k8s/current/index.html https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-quickstart.html https://github.com/elastic/cloud-on-k8…
https://github.com/kubesphere/ks-installer/blob/master/README_zh.md https://kubesphere.com.cn/docs/installing-on-kubernetes/on-prem-kubernetes/install-ks-on-linux-airgapped/ https://kubesphere.com.cn/docs/quick-start/minimal-kubesphere-on-k8s/#部署-kub…
Harbor(https://goharbor.io)是一个功能强大的容器镜像管理和服务系统,用于提供专有容器镜像服务.随着云原生架构的广泛使用,原来由VMWare开发的Harbor也加入了云原生基金会(参考<Harbor最新进展,将由CNCF管理 >,项目地址已经变为 https://github.com/goharbor),成为云原生的生态系统的重要组成部分. 1.快速安装 Harbor可以支持容器部署和Kubernetes部署.从Harbor 1.6开始,项目提供了Kubernetes的…
转载请标明出处: http://blog.csdn.net/forezp/article/details/82730382 本文出自方志朋的博客 Kubespray是Google开源的一个部署生产级别的Kubernetes服务器集群的开源项目,它整合了Ansible作为部署的工具.项目地址:https://github.com/kubernetes-incubator/kubespray 部署历程 目前为止,对于Kubernetes集群的部署,我只谈的上是一个入门者,涉及到了众多的运维知识,对于…
Prometheus Operator不同于Prometheus,Prometheus Operator是 CoreOS 开源的一套用于管理在 Kubernetes 集群上的 Prometheus 控制器,它是为了简化在 Kubernetes 上部署.管理和运行 Prometheus 和 Alertmanager 集群. 官方提供的架构图: kubernetes也在官方的github上关于使用prometheus监控的建议: 地址:https://github.com/kubernetes/ku…
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具.这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点 $ kubeadm init # 将一个 Node 节点加入到当前集群中 $ kubeadm join <Master节点的IP和端口 > 1. 安装要求在开始之前,部署Kubernetes集群机器需要满足以下几个条件:一台或多台机器,操作系统 CentOS7.x-86_x64硬件配置:2GB或更多RAM,2个CPU或更…
官方提供的三种部署方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,仅用于尝试Kubernetes或日常开发的用户使用. 部署地址:https://kubernetes.io/docs/setup/minikube/ kubeadm Kubeadm也是一个工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群. 部署地址:https://kubernetes.io/docs/reference/set…
准备工作 满足安装 Docker 项目所需的要求,比如 64 位的 Linux 操作系统.3.10 及以上的内核版本: x86 或者 ARM 架构均可: 机器之间网络互通,这是将来容器之间网络互通的前提: 有外网访问权限,因为需要拉取镜像: 能够访问到gcr.io.quay.io这两个 docker registry,因为有小部分镜像需要在这里拉取: 单机可用资源建议 2 核 CPU.8 GB 内存或以上,再小的话问题也不大,但是能调度的 Pod 数量就比较有限了: 30 GB 或以上的可用磁盘…