k8s

18. k8s之Admission Controller及webhook

k8s之webhook 什么是Admission Controller admission controller是k8s api的拦截器,将拦截到的请求进行过滤或修改处理 Admission webhook是啥 webhook就是一个HTTP回调,接收admission请求,处理并返回 用户可以定义两种webhook: validating admission webhook对应的k8s资源为ValidatingWebhookConfiguration;用于对请求进行验证,是否允许调用 mutating admission webhook对应的k8s 资源为MutatingWebhookConfiguration;用于对请求进行修改,如注入一个Sidecar。webhook回调,接收API Server发送的admissionReview请求,并返回 admissionResponse。 使用webhook有什么要求? kubernetes版本最低是v1.9 api

  • k8s
1 min read
k8s

8. k8s集群环境搭建之集群检查

各服务启动是否正常 etcd kube-apiserver kube-controller-manager kube-scheduler kubelet kube-proxy flanneld docker node 是否都正常 kubectl get nodes 若为notready 则重启该节点上的kubelet systemctl restart kubelet pod中无法通过service ip访问其它容器 kubernetes service对应的endpoint是否正常,有时重启ip会变; kubectl describe service kubernetes 如果不对则重启master node 若service对应 endpointip 正确

  • k8s
2 min read
k8s

6. k8s集群环境搭建之用户及权限

用户密码访问api 配置apiserver 参考 apiserver添加启动参数 --basic-auth-file=SOMEFILE 新增 SOMEFILE 文件,文件内容如下 admin,admin,user-1 pwd,base-user,user-2 pwd,super-user,user-3 重启 kube-apiserver 通过RBAC为admin base-user super-user赋予不同的权限 apiserver添加入参 --authorization-mode=RBAC启动RBAC授权模式 在启动RBAC前,通过kubectl是可以访问api的,再这之后调用失败 [root@test-build ~]# kubectl

  • k8s
5 min read
k8s

14. k8s集群搭建之创建ingress

参考 前言 上一文《从零开始搭建Kubernetes集群(四、搭建K8S Dashboard)》介绍了如何搭建Dashboard。本篇将介绍如何搭建Ingress来访问K8S集群的Service。 Ingress简介 Ingress简单来讲,就是一个负载均衡的玩意,其主要用来解决使用NodePort暴露Service的端口时Node IP会漂移的问题。同时,若大量使用NodePort暴露主机端口,管理会非常混乱。 好的解决方案就是让外界通过域名去访问Service,而无需关心其Node IP及Port。那为什么不直接使用Nginx?这是因为在K8S集群中,如果每加入一个服务,我们都在Nginx中添加一个配置,其实是一个重复性的体力活,只要是重复性的体力活,我们都应该通过技术将它干掉。 Ingress就可以解决上面的问题,其包含两个组件Ingress Controller和Ingress: Ingress 将Nginx的配置抽象成一个Ingress对象,每添加一个新的服务只需写一个新的Ingress的yaml文件即可

  • k8s
1 min read
k8s

k8s容器业务实践

内容概括 k8s介绍 k8s基本概念 k8s架构 k8s监控及控制台及部署工具 k8s介绍 k8s是一个容器(如docker但不限于docker)编排工具,它的目标是管理容器的整个生命周期,如 创建、修改、更改实例数量、销毁等等 k8s基本概念 基本概念 namespace:资源隔离的一种手段 node: node节点 pod: 一组容器的一个“单一集合体” ReplicaSets:副本控制器,用于管理pod,对pod及其副本的集合的定义 deployment:用于在滚动升级的过程中管理 rs service:对一组pod提供一个对外的统一ip及服务

  • k8s
6 min read
k8s

16. k8s集群搭建之k8s疑难杂症

pod无法删除 添加参数 --grace-period=0 --force kubectl delete pod logging-fluentd-fluentd-v1-0-xtqdv -n kube-system --grace-period=0 --force 无法删除状态为Terminating的namespace edit namespace 删除finalizers内容 再次进行强制删除 pod无法删除-device or resource busy 使用上一方式可以将pod删除,但是需要查询不能删除的原因 查看kubelet日志 通过systemctl status kubelet查看日志,发现以下内容 Mar 05 19:

  • k8s
10 min read