Kubernetes

k8s之RBAC-基于角色的访问控制

删除回忆录丶 提交于 2021-02-16 23:41:35
一个在名称空间内的对象的完整url模板: Object_URL: /apis/<GROUP>/<VERSION>/namespaces/<NAMESPACE_NAME>/<KIND>[OJJECT_ID] role based access control , 将权限授权给角色role,让用户扮演某个角色,这样用户就会有对应的权限 . 许可授权:定义role时,会标明对哪些对象(object),做哪些操作(operations) 图解:名称空间级别的Role, 通过RoleBinding把用户user绑定到Role上 ,那么这个用户就有了管理整个名称空间的权限;集群级别的ClusterRole, 通过ClusterRoleBinding将用户user绑定到ClusterRole上 ,则该用户就有了管理整个集群的权限; 通过RoleBinding把用户user绑定到ClusterRole上,用户依然只有管理某个名称空间的权限 ,但这样做的好处是不用在每个ns中都创建Role了. 1.创建一个role kubectl create role pods-reader --verb=get,list,watch --resource=pods --dry-run -o yaml cat role-demo.yaml apiVersion: rbac.authorization.k8s.io

Alertmanager 安装(k8s报警)

 ̄綄美尐妖づ 提交于 2021-02-16 23:38:55
一、下载Alertmanager https://prometheus.io/download/ wget https://github.com/prometheus/alertmanager/releases/download/v0.16.0-alpha.0/alertmanager-0.16.0-alpha.0.linux-amd64.tar.gz #解压 tar xf alertmanager-0.16.0-alpha.0.linux-amd64.tar.gz mv alertmanager-0.16.0-alpha.0.linux-amd64 /usr/local/alertmanager #创建数据目录 mkdir -p /data/alertmanager #创建用户 useradd prometheus chown -R prometheus:prometheus /usr/local/alertmanager /data/alertmanager/ #添加启动服务 vim /usr/lib/systemd/system/alertmanager.service [Unit] Description=Alertmanager After=network.target [Service] Type=simple User=prometheus ExecStart=

安装kubernetes-dashboard

ぐ巨炮叔叔 提交于 2021-02-16 20:50:24
注意:以下的命令都是在kubernetes 1.15中执行的,如果是其他版本,不保证效果。 1、创建kubernetes-dashboard服务和对应的pod kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml 如果发现该链接失效,请访问 https://github.com/kubernetes/dashboard ,然后查找最新的链接。 2、查看创建的服务和pod 3、重新创建一个可以供外网访问的Service # cat kubernetes-dashboard.yaml apiVersion: v1 kind: Service metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kube-system spec: clusterIP: 10.97.14.63 externalTrafficPolicy: Cluster ports: - nodePort: 30443 port: 443 protocol: TCP targetPort: 8443

Error “pod has unbound immediate PersistentVolumeClaim” during statefulset deployment

痴心易碎 提交于 2021-02-16 20:26:33
问题 I am deploying stolon via statefulset (default from stolon repo). I have define in statefulset config volumeClaimTemplates: - metadata: name: data spec: accessModes: ["ReadWriteOnce"] storageClassName: stolon-local-storage resources: requests: storage: 1Gi and here is my storageClass: apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: stolon-local-storage provisioner: kubernetes.io/no-provisioner volumeBindingMode: WaitForFirstConsumer statefulset was created fine, but pod has

kubernetes 实战 2:Traefik 的安装和使用

旧城冷巷雨未停 提交于 2021-02-16 16:56:40
目前常用的k8s常用服务暴露方式有 LoadBalancer、NodePort、Ingress 三种; LoadBalancer 依赖云服务商的环境,需要使用云服务商提供的底层和资源的支持,比如阿里云的 SLB。 NodePort 个人感觉更适合个人学习、测试、或者某些特殊场景使用,因为服务一旦多了很难管理。 Ingress 主要提供反向代理和负载均衡功能,管理方便,可以作为集群服务的统一流量入口,目前有 traefik 和 nginx ingress,为什么这里我们要写 Traefik? 因为用的人多啊O.o,群众的眼睛是雪亮的...,Traefik 目前比 nginx ingress 要活跃很多,而且对后端节点的变化反应更迅速;nginx ingress 之前接触的时候还在beta版本,现在貌似是正式版了,也支持了grpc,后面有机会再尝试一下做个对比。 环境信息: kubernetes version: v1.15.1 traefik version: v1.7 一. 安装Traefik 安装方式有两种 Deployment 和 DaemonSet,官网比较有详细的解释,我就直接贴上了了: The scalability can be much better when using a Deployment, because you will have a Single-Pod

干货 | 京东云Kubernetes集群+Traefik实战

放肆的年华 提交于 2021-02-16 16:41:03
摘要 Traefik支持丰富的annotations配置,可配置众多出色的特性,例如:自动熔断、负载均衡策略、黑名单、白名单。所以 Traefik对于微服务来说简直就是一神器。 利用Traefik,并结合京东云Kubernetes集群及其他云服务(RDS,NAS,OSS,块存储等), 可快速构建弹性扩展的微服务集群。 Traefik是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。它支持多种后台(Kubernetes,Docker,Swarm,Marathon,Mesos,Consul,Etcd,Zookeeper等)。 本文大致步骤如下: Kubernetes权限配置(RBAC); Traefik部署; 创建三个实例服务; 生成Ingress规则,并通过PATH测试通过Traefik访问各个服务; Traefik配置域名及TLS证书,并实现HTTP重定向到HTTS。 本文部署Traefik使用到的Yaml文件均基于Traefik官方实例,并为适配京东云Kubernetes集群做了相关修改: https://github.com/containous/traefik/tree/master/examples/k8s 基本概念 1 Ingress边界路由 虽然Kubernetes集群内部署的pod、server都有自己的IP,但是却无法提供外网访问

Location of Kubernetes config directory with Docker Desktop on Windows

人走茶凉 提交于 2021-02-16 15:18:05
问题 I am running a local Kubernetes cluster through Docker Desktop on Windows. I'm attempting to modify my kube-apiserver config, and all of the information I've found has said to modify /etc/kubernetes/manifests/kube-apiserver.yaml on the master. I haven't been able to find this file, and am not sure what the proper way is to do this. Is there a different process because the cluster is through Docker Desktop? 回答1: Is there a different process because the cluster is through Docker Desktop? You

Dynamically update prometheus scrape config based on pod labels

左心房为你撑大大i 提交于 2021-02-16 14:54:13
问题 I'm trying to enhance my monitoring and want to expand the amount of metrics pulled into Prometheus from our Kube estate. We already have a stand alone Prom implementation which has a hard coded config file monitoring some bare metal servers, and hooks into cadvisor for generic Pod metrics. What i would like to do is configure Kube to monitor the apache_exporter metrics from a webserver deployed in the cluster, but also dynamically add a 2nd, 3rd etc webserver as the instances are scaled up.

How to ssh into a Traefik pod?

冷暖自知 提交于 2021-02-16 14:52:38
问题 I am using GKE. I've launched the following traefik deployment through kubectl: https://github.com/containous/traefik/blob/master/examples/k8s/traefik-deployment.yaml The pod runs on the kube-system namespace. I'm not able to ssh into the pod. kubectl get po -n kube-system traefik-ingress-controller-5bf599f65d-fl9gx 1/1 Running 0 30m kubectl exec -it traefik-ingress-controller-5bf599f65d-fl9gx -n kube-system -- '\bin\bash' rpc error: code = 2 desc = oci runtime error: exec failed: container

Activiti7官方博客翻译3——12个factor的应用

你离开我真会死。 提交于 2021-02-16 10:39:17
要构建云本地应用程序和服务,仅仅在Docker映像中封装旧的整体并在Kubernetes中运行它是不够的。我们重视Heroku定义的被称为“ The Twelve-Factor App ”的原则:https://12factor.net(从关键的角度看 https://content.pivotal.io/ebooks/beyond-the-12-factor-app )。没有这些指导原则,就很难在分布式环境中进行扩展。Activiti Cloud对流程引擎进行了重新定位,以便更好地与此类分布式环境中的其他组件进行交互。Activiti Cloud成功的衡量标准是与其他微服务及其设计、构建和部署方式的低阻抗不匹配。 1.一个代码库,一个应用 我们的示例服务都位于不同的存储库中,每个存储库都表示一个Spring引导应用程序,Spring Cloud库也支持该应用程序。每个服务存储库都包含一组构件,这些构件使它们适合于CI/CD管道: Jenkinsfile:(或其他pipiline定义)管道,用于构建、部署和将当前服务提升到Kubernetes集群。 Maven项目:定义使用Spring Boot和Activiti Cloud starter构建的服务。 Dockerfile:定义如何为服务构建docker映像 HELM Charts:定义一组清单(kubernetes描述符)