1. k8s常可能问的问题
  2. 1、为什么要用k8s
  3. 自我修复、pod水平自动伸缩、密钥和配置管理动态对应用进行扩容、缩容
  4. 服务发现、负载均衡
  5.  
  6. 1.1、自我修复
  7. 比如误删pod后会自动创建,用 kind: ReplicationController
  8. 1.2pod水平自动伸缩
  9. 这个功能就是根据CPU的使用情况周期性的调整Pod的副本数量
  10. 解释:首先创建HPA kind: HorizontalPodAutoscaler
  11. 设定目标CPU使用率限额,比如限定一个podcpu使用率50%,当超过50%时候,自动伸缩算法就会再创建一个pod分担压力,让cpu处于50%一下状态
  12. 1.3、动态对应用进行扩容、缩容
  13. 首先查看最原始的副本数为1
  14. 扩展为50
  15. kubectl scale --replicas=50 deployment/nginx-app
  16. 收缩为30
  17. scale --replicas=30 deployment/nginx-app
  18. 滚动镜像
  19. kubectl set image deployment/nginx-app nginx-app=nginx:1.9.1
  20. 回滚
  21. 查看版本历史
  22. [root@localhost 101]# kubectl rollout history deployment/nginx-app
  23. deployment.extensions/nginx-app
  24. REVISION CHANGE-CAUSE
  25. 1 <none>
  26. 2 <none>
  27. 回滚到上一次的版本
  28. [root@localhost 101]# kubectl rollout undo deployment/nginx-app
  29. deployment.extensions/nginx-app
  30. 查看回滚状态
  31. [root@localhost 101]# kubectl rollout status deployment/nginx-app
  32. 1.4、服务发现
  33. 服务发现在微服务架构里,服务之间经常进行通信,服务发现就是解决不同服务之间通信的问题。比如一个nginxpod,要访问一个mysql服务,就需要知道mysql服务的ipport,获取ipport的过程就是服务发现
  34. service:服务,是一个虚拟概念,逻辑上代理后端pod。众所周知,pod生命周期短,状态不稳定,pod异常后新生成的pod ip会发生变化,之前pod的访问方式均不可达。通过servicepod做代理,service有固定的ipportip:port组合自动关联后端pod,即使pod发生改变,kubernetes内部更新这组关联关系,使得service能够匹配到新的pod。这样,通过service提供的固定clusterip,用户再也不用关心需要访问哪个pod,以及pod是否发生改变,大大提高了服务质量。
  35. 1.5、负载均衡:
  36. 如果pod使用rc创建了多个副本,通过kube-proxy实现负载均衡
  37. 1.6K8s所有的ip以及作用
  38. nodeip:是k8s集群中每个节点的物理网卡的ip地址,是真实存在的物理地址,所有属于这个网络的服务器之间都能通过这个网络直接通信,不管它们中是否有部分节点不属于这个集群,这也表明集群之外的节点访问k8s集群之内的某个节点或者tcpip服务的时候,必须通过nodeip进行通信
  39. podip:每个会被分配一个单独的ip,每个pod都提供了一个独立的Endpoint( Pod ip + Container port )以被客户端访问
  40. clusterip:全局的唯一的虚拟ip,在整个service的声明周期内,一旦创建,就不会改变仅仅作用于service对象,由k8s管理和分配ip地址无法被ping,没有实体网络对象来响应必须结合service port 组成一个具体的通信端口,单独的cluster ip不具备tcp/ip通信协议
  41. 1.7、集群外部访问k8s
  42. 使用域名来实现需要配置ingress,然后kind: Servicename: http-test-ser绑定到kind: Ingress中的serviceName: http-test-ser,如下所示:
  43. apiVersion: v1
  44. kind: Service
  45. metadata:
  46. name: http-test-ser
  47. spec:
  48. ports:
  49. - port: 80
  50. targetPort: 80
  51. selector:
  52. name: http-test-dm
  53. ---
  54. apiVersion: extensions/v1beta1
  55. kind: Ingress
  56. metadata:
  57. name: grafana
  58. spec:
  59. rules:
  60. - host: prom.zhi.io
  61. http:
  62. paths:
  63. - path: /
  64. backend:
  65. serviceName: http-test-ser
  66. servicePort: 80

k8s常可能问的问题的更多相关文章

  1. [译]关于Java 字符串最常被问到的十个问题

    (说明,该文章翻译自Top 10 questions of Java Strings) 下面是关于Java字符串最常被问到的十个问题 1.怎么去比较字符串?使用==还是使用equals()? 简单来说 ...

  2. 面试题Redis最常被问到知识点总结

    1.什么是redis? redis是一个高性能的key-value数据库,它是完全开源免费的,而且redis是一个NOSQL类型数据库,是为了解决高并发.高扩展,大数据存储等一系列的问题而产生的数据库 ...

  3. Java面试常被问到的题目+解答

    第一,anonymousinnerclass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 不行,对于匿名内部类,看到的一句话说的 ...

  4. 常被问到的十个 Java 面试题

    在这篇文章中,我试图收录最有趣和最常见的问题.此外,我将为您提供正确的答案. 接下来,就让我们来看看这些问题. 1. 以满分十分来评估自己——你有多擅长 Java? 如果你并不完全确信你自己或是你对 ...

  5. [k8s]debug模式启动集群&k8s常见报错集合(on the fly)

    debug模式启动-支持sa 集群内(pod访问api)使用443加密 no1 no2 安装flanneld kubelet/kube-proxy m1 安装etcd/ api/contruller/ ...

  6. vue面试常被问到的问题整理

    1.Vue的双向数据绑定原理是什么? 答 : vue是采用数据劫持,并且使用发布-订阅者的开发模式.原理是观察者observer通过Object.defineProperty()来劫持到各个属性的ge ...

  7. Redis的最常被问到知识点总结

    1.什么是redis? Redis 是一个基于内存的高性能key-value数据库. 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库 ...

  8. 常被问到的八个 Java 面试题

    想要找到一份好的工作,面试是少不了的,可能你觉得自己技术应该不错了,但是面试却是一团糟.下面我收集了八个常常被问到的Java面试题.   1. 阐述 Java 7 和 Java 8 的区别. 实话说, ...

  9. Redis的最常被问到知识点总结 (转)

    1.什么是redis? Redis 是一个基于内存的高性能key-value数据库. 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库 ...

随机推荐

  1. machine learning(15) --Regularization:Regularized logistic regression

    Regularization:Regularized logistic regression without regularization 当features很多时会出现overfitting现象,图 ...

  2. eclipse转到idea过程中的基本设置...

    1.在写mapper.xml文件中有许多黄黄绿绿的警告 - 黄色的是没有用idea链接数据库,连上就ok,不连的话,这样:Prefernces ⇒ Editor ⇒ Inspections ⇒ SQL ...

  3. Core DOM、HTML DOM、XML DOM关系

    查看:https://blog.csdn.net/IamChuancey/article/details/78335443

  4. Python中日志logging模块

    # coding:utf-8 import logging import os import time class Logger(object): def __init__(self): # 创建一个 ...

  5. 使用jQuery快速高效制作网页交互特效第一章JavaScript基础

    JavaScript 一.JavaScript概念: JavaScript面向对象事件驱动具有安全性的脚本语言,面向对象 JavaScript特点: 1.解释性语言,边运行边解释 2.和HTML页面实 ...

  6. Codeforces Round #603 (Div. 2) A,B,C,D【E题待补】

    #include<bits/stdc++.h> using namespace std; #define int long long signed main(){ int _; cin&g ...

  7. 最短路--SPFA及其优化

    SPFA Shortest Path Faster Algorithm 最短路径最快算法 算法思想 SPFA 算法是 Bellman-Ford算法 的队列优化算法的别称,通常用于求含负权边的单源最短路 ...

  8. 2019年京东 PHP工程师面试题

    1. Apache与Nginx大访问下性能描述正确的是? A.Apache所采用的epoll网络I/O模型非常高效B.Nginx使用了最新的kqueue和select网络I/O模型C.Apache进程 ...

  9. learning scala extractor object

    package com.aura.scala.day01 import scala.util.Random object extractorObject { def main(args: Array[ ...

  10. 禁止打印调用(python)

    原文 : https://cloud.tencent.com/developer/ask/188486 import os, sys class HiddenPrints: def __enter__ ...