pod

Kubenete study notes (Replication Controller)

只愿长相守 提交于 2020-04-03 17:01:22
Replication controller: ReplicationController schedules pod to one work node, kubelet application in node pulls image and create containers. Pod started by “kubectl run” is not created directly. ReplicationController is created by command and replicationController creates pod Create pod: kubectl run [replication controller name] --image=[image name] --port=[port number] --generator=run/v1 . Without --generate flag, it creates deployment instead of replicationController Replication controller is able to scale number of pods: kubectl scale rc [replication controller] --replicas=3 Replication

Kubenete study notes (Service)

牧云@^-^@ 提交于 2020-04-03 16:52:36
Service: Ways to create service: Kubectl expose created a Service resource with the same pod selector as the one used by the ReplicationController Kubectl create with service specs apiVersion: v1 kind: Service metadata: name: kubia spec: ports: - port: 80 targetPort: 8080 selector: app: kubia kubectl exec [pod name] -- [command name] to execute command within pod Kubenete service only supports 2 types of session affinity (none/client ip), since it deals with TCP/UDP packet, it does not know cookie Discover service: Use kubectl exec [pod name] env to find out service host/port: KUBERNETES

k8s中service发现相关说明

旧巷老猫 提交于 2020-04-03 04:04:35
service discory kubernetes中查找服务主要有两种方式:环境变量和DNS 环境变量 kubelet给每个pod中添加了每个service对应的一组环境变量,包括简单变量{SVCNAME}_SERVICE_HOST和Docker-links变量{SVCNAME}_PORT,变量中的service_name全部大写,中划线转为下划线。 我的一个svc相关变量如下: SVC_MALIBU_SERVICE_HOST=172.21.39.194 SVC_MALIBU_PORT_8080_TCP_ADDR=172.21.39.194 SVC_MALIBU_PORT_8080_TCP_PORT=8080 SVC_MALIBU_SERVICE_PORT=8080 SVC_MALIBU_PORT_8080_TCP=tcp://172.21.39.194:8080 SVC_MALIBU_PORT_8080_TCP_PROTO=tcp SVC_MALIBU_PORT=tcp://172.21.39.194:8080 注:在pod中使用这些变量的时候,一定要在pod运行前先创建好svc,不然pod里面读不到的 DNS 像coredns等集群感知的DNS server监视了kubernetes api,它会为新service创建一组dns记录。 A记录 除了Headless

kubernetes 部署Prometheus

南楼画角 提交于 2020-04-02 20:25:14
kubernetes 部署Prometheus 标签(空格分隔): kubernetes系列 一: 组件说明 二: Prometheus的部署 三: HPA 资源限制 一: 组件说明 1.1 相关地址信息 Prometheus github 地址:https://github.com/coreos/kube-prometheus 1.2 组件说明 1.MetricServer:是kubernetes集群资源使用情况的聚合器,收集数据给kubernetes集群内使用,如 kubectl,hpa,scheduler等。 2.PrometheusOperator:是一个系统监测和警报工具箱,用来存储监控数据。 3.NodeExporter:用于各node的关键度量指标状态数据。 4.KubeStateMetrics:收集kubernetes集群内资源对象数据,制定告警规则。 5.Prometheus:采用pull方式收集apiserver,scheduler,controller-manager,kubelet组件数据,通过http协议传输。 6.Grafana:是可视化数据统计和监控平台。 二: Prometheus的部署 mkdir Prometheus cd Prometheus git clone https://github.com/coreos/kube-prometheus

微服务交付至kubernetes流程

倾然丶 夕夏残阳落幕 提交于 2020-04-02 08:29:32
目录 1、微服务简介 2、K8s部署微服务考虑的问题 3、项目迁移到k8s流程 1、微服务简介 微服务优点 服务组件化 每个服务独立开发、部署,有效避免一个服务的修改引起整个系统重新部署 技术栈灵活 约定通信方式,是得服务本身功能实现对技术要求不再那么铭感 独立部署 每个微服务独立部署,加快部署速度,方便扩展 扩展性强 每个微服务可以部署多个,并且有负载均衡能力 独立数据 每个微服务有独立的基本组件,例如数据库、缓存等 微服务缺点 沟通成本 数据一致性 运维成本 内部架构复杂性 微服务和单体应用 单体应用,易于部署、测试,但是会使得代码膨胀,难以维护,构建和部署成本大,新人上手难 适用于微服务的框架:Spring Boots、Spring Cloud、Dubbo、Go-micro ..... 2、K8s部署微服务考虑的问题 微服务架构图 微服务流程图 微服务间如何通信? REST API、RPC、MQ(后两者主流)。 微服务如何发现彼此? 通过注册中心进行服务的注册与发现。 组件之间怎么个调用关系? 微服务内部处理逻辑。 那个服务作为整个网站入口? 网关,即gateway(也是单独的一个微服务)。 那些微服务需要对外访问? 只需要网关gateway入口对外即可, 一般都是先为gateway创建svc,然后由Ingress指定到该svc。 微服务怎么部署?更新?扩容?

KubeSphere排错实战(三)

女生的网名这么多〃 提交于 2020-04-02 05:20:02
接上两篇: 《KubeSphere排错实战》 《KubeSphere排错实战二》 在之后使用kubesphere中也记录了一些使用问题,希望可以对其他人有帮助,一块体验如丝般顺滑的容器管理平台。 十四 异常容器删除 之前利用helm部署过consul,后面删除consul [root@master ~]# helm delete consul --purge 经查看consul的一个pod状态一直为 Terminating [root@master ~]# kubectl get pods -n common-service NAME READY STATUS RESTARTS AGE consul-1 1/2 Terminating 1 24d redis-master-0 1/1 Running 1 17d redis-slave-0 1/1 Running 1 8d redis-slave-1 1/1 Running 1 17d 查看状态 [root@master ~]# kubectl describe pods consul-1 -n common-service Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedSync 3m41s (x4861 over

cocoapods的安装和使用

落爺英雄遲暮 提交于 2020-04-01 19:30:08
安装CocoaPods 安装 $ sudo gem install cocoapods 在安装进程结束的时候,执行命令: $ pod setup ->>如果没有报错,就说明一切安装就成功了! 2>>>>>>、安装过程中可能遇到的问题: ①执行完install命令半天没反应 这有可能是因为Ruby的默认源使用的是cocoapods.org,国内访问这个网址有时候会有问题,网上的一种解决方案是将远替换成淘宝的,替换方式如下: $ gem sources --remove https://rubygems.org/ //等有反应之后再敲入以下命令 $ gem sources -a http://ruby.taobao.org/ 要想验证是否替换成功了,可以执行: $ gem sources -l 正常的输出是: *** CURRENT SOURCES *** http://ruby.taobao.org/ ②gem版本过老 gem是管理Ruby库和程序的标准包,如果它的版本过低也可能导致安装失败,解决方案自然是升级gem,执行下述命令即可: $ sudo gem update —system ③安装完成后,执行pod setup命令时报错: /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1

升级Kubernetes 1.18前,你不得不知的9件事

假装没事ソ 提交于 2020-04-01 14:32:13
本文来自 Rancher Labs 昨天Kubernetes最新版本v1.18已经发布,其包含了38项功能增强,其中15项为稳定版功能、11项beta版功能以及12项alpha版功能。在本文中,我们将探索其中一些功能,希望能帮助你决定是否需要升级。那么,我们现在开始吧! 将Service Account Token作为通用身份验证方法 Kubernetes使用service account来验证集群内的服务。例如,如果你想要一个pod来管理其他Kubernetes资源,如Deployment或者Service,你可以与Service Account相关联并创建必要的角色和角色绑定。Kubernetes Service Account(KSA)发送JSON Web Tokens(JWT)到API server以验证它们。这使API server成为service account身份验证的唯一来源。 那么,如果实体需要针对集群外的其他服务进行身份验证,该怎么办?为了使用其KSA,外部身份验证器必须联系API server以验证请求。但是,API server不应公开访问。因为这使你可以使用其他身份验证系统进行验证,这会增加复杂性。即使第三方服务位于可以访问API server的集群中,也会增加负载。 于是在Kubernetes 1.18中增加了一个功能(#1393),该功能使API

kubernetes Ingress、Ingress controller

牧云@^-^@ 提交于 2020-04-01 14:31:19
前言 拥抱开源,无私分享,共享技术,相互学习,共同进步,分享更多有深度的文章,欢迎转发分享 四层负载均衡调度器service回顾 使用四层负载均衡调度器service时,当客户端访问kubernetes集群内部的应用时,数据包走向如下面流程所示 client--->nodeip:port--->service ip:port--->podip:port 客户端-->node节点的ip:端口--->service的ip:端口--->pod的ip:端口 1.Ingress Controller Ingress Controller是一个七层负载均衡调度器,客户端的请求先到达这个七层负载均衡调度器,由七层负载均衡器在反向代理到后端pod,常见的七层负载均衡器有nginx,traefik等,以我们熟悉的nginx为例,假如请求到达nginx,会通过upstream反向代理到后端pod,但是后端pod的ip地址是一直在变化的,因此在后端pod前需要加一个service,这个service只是起到分组的作用,那么我们upstream只需要填写service地址即可 nginx:需要手动加载配置文件 traefik:定期自动加载配置文件,不需要手动干预,在微服务中几乎都会使用这种调度器 2.Ingress 官方: https://kubernetes.io/docs/concepts

kubernetes Ingress、Ingress controller

耗尽温柔 提交于 2020-04-01 14:30:55
前言 拥抱开源,无私分享,共享技术,相互学习,共同进步,分享更多有深度的文章,欢迎转发分享 四层负载均衡调度器service回顾 使用四层负载均衡调度器service时,当客户端访问kubernetes集群内部的应用时,数据包走向如下面流程所示 client--->nodeip:port--->service ip:port--->podip:port 客户端-->node节点的ip:端口--->service的ip:端口--->pod的ip:端口 1.Ingress Controller Ingress Controller是一个七层负载均衡调度器,客户端的请求先到达这个七层负载均衡调度器,由七层负载均衡器在反向代理到后端pod,常见的七层负载均衡器有nginx,traefik等,以我们熟悉的nginx为例,假如请求到达nginx,会通过upstream反向代理到后端pod,但是后端pod的ip地址是一直在变化的,因此在后端pod前需要加一个service,这个service只是起到分组的作用,那么我们upstream只需要填写service地址即可 nginx:需要手动加载配置文件 traefik:定期自动加载配置文件,不需要手动干预,在微服务中几乎都会使用这种调度器 2.Ingress 官方: https://kubernetes.io/docs/concepts