HAOJX

HAOJX

杂施而不孙,则坏乱而不修 ; 独学而无友,则孤陋而寡闻

kubernetes RBAC
RBAC: Role Based Access Control Role Based Access Control is comprised of four layers: ClusterRole - permissions assigned to a role that apply to an entire cluster ClusterRoleBinding - binding a ClusterRole to a specific account Role - permissions assigned to a role that apply to a specific na...
kubernetes HPA
查看帮助 1kubectl explain hpa 先创建一个有资源限制的pod 1kubectl run myapp --image=ikubernetes/myapp:v1 --replicas=1 --requests='cpu=50m,memory=256Mi' --limits='cpu=50m,memory=256Mi' --labels='app=myapp' --expose --port=80 创建一个HPA 1kubectl autoscale --help //查看帮助 1kubectl autoscal...
kubernetes StatefulSet
[TOC] statefulset的特征 稳定唯一的网络标识符 稳定持久的存储 有序平滑的部署和扩展 有序平滑的删除终止 有序的滚动更新 pod的名字必须持久有效 , 比如一个pod销毁了 , 再次重新创建 , 还必须还是原来的名字 , 因为statefulset是根据pod名称有次序的进行更新等操作 , 次序还不能乱 , 比如创建的时候是1-9 那么更新的时候就是9-1 , 那么如何保证持久有效呢 ,得使用headless服务 直达ip地址 还得给pod配置一个唯一的名称, 每个节点得有自己专用的存储 , 使用volumeClaimTemolates 来生成一个专有的pvc 之后在...
kubernetes dashboard部署
部署123kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml//详细情况可以去github上去看 地址是https://github.com/kubernetes/dashboard 将Service改成NodePort1kubectl patch svc kubernetes-dashboard -p '{"spec":{&quo...
kubernetes service实现方法和类型
kube-proxy一直watch着api-service的变动 , 如果监听到了api-service关于service的任何变动 , kube-proxy就调度给后端 service实现方式 userspace: 请求——->serviceIP(iptables)—–>kube-proxy(kube-proxy是运行在用户空间的)—->serviceIP(iptables)—–>backend(后端pod) iptables 请求——>iptables——–>pod ipvs 请求——->iptables——->pod se...
kubernetes ingress controller的配置和工作过程
我们暴露外部服务一般用的是NodePort , 但是nodeport暴露服务有一个问题 , 就是每个node都会占一个端口去暴露, 而且前面没有统一的服务入口 没有负载均衡 ,nodeport是基于4层调度 这也是问题 NodePort的访问路径是 NodePort: client—–>NodeIP:NodePort—–>ClusterIP:ServicePort—->PodIP:containerPort 在访问NodeIP:NodePort 的时候 , 要加一个负载均衡 我们可以部署一个基于七层的pod调度器 , 运行在用户空间 , 来接管访问的流量 , 监听在宿...
kubernetes持久化存储卷:存储卷快照Snapshot详解
存储卷快照和pvc于pv创建的过程很类似 都是: PVC-—>StorageClass—->PV VolumeSnapshot—->VolumeSnapshotClass—–>VolumeSnapshotContent 在kubernetes中用VolumeSnapshotContent 和VolumeSnapshot这样的API资源去为用户和管理员创建卷快照 其中: VolumeSnapshotContent是从集群中指定的volume中获取的快照, 他很像PV资源一样 VolumeSnapshot是用户想从某个指定volume获取快照的一个请求 , 就像集...
kubernetes DaemonSet是如何保证pod只在一个节点上运行并且保证数量是1
首先DaemonSet Controller会从Etcd里获取node的节点列表, 之后一个一个区遍历检查,看看node是不是有一个特定的label(这个label是创建DaemonSet 时指定的,即spec.template.metadata.labels) , 如果有这个pod就不管,没有就创建, 多了就删 在创建pod的时候, 会指定pod在指定的node上创建, 即在创建pod的时候DaemonSet 会自动在pod的API对象上加一个nodeAffinity字段 , 这个字段的作用就是指定pod只能运行在当前节点 这个字段的具体增加是: 123456789101112131...
kubernetes DaemonSet是如何进行版本管理的
我们知道deployment是通过管理ReplicaSet来进行管理pod的, 但是DaemonSet控制器直接控制的就是pod,那么他是如何进行版本的维护呢 在kubernetes v1.7之后 有一个对象是ControllerRevision 是专门用来管理某种Controller对象的版本的 比如某个DaemonSet的名字为A 我们查看这个 DaemonSet controller的版本 1kubelet get controllerrevision -n kube-system -l name=A 这里会获得一个版本名字 , 命名规则是[controller-name]-[ha...
kubernetes deployment在滚动升级的时候如何控制新旧pod比例
在deployment有一个对象字段,叫RollingUpdateStrategy 12345678910111213apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-deployment labels: app: nginxspec:... strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 1 maxSurge指的是控制器还可以创建多个新的pod,maxUnavailable表示可以控...
avatar
HAOJX
It is the first step that costs