导读
经过前面k8s系列的文章,这一系列已经基本完成,现在就用几篇文章说一下日常的集群维护。
目录
更新资源对象的Label
Namespace:集群环境共享与隔离
部署集群监控
部署Web UI管理集群:Dashboard
更新资源对象的Label
比如对Pod进行Label的增删改。
新增:
kubectl label pod pod-name key=value
修改:
kubelet label pod pod-name key=value --overwrite
删除
kubelet label pod pod-name label_key
Namespace:集群环境共享与隔离
不同的工作组可以在同一个k8s集群中工作,k8s通过命名空间和Context的设置对不同的工作组进行区分,让它们可以在同一个k8s集群中工作
(1)定义Context
需要为每个工作组分别设置一个Context,即运行环境,这个运行环境属于某个命名空间
通过kubectl context set-context命令定义Context,并将Context置于某个命名空间中
例如:创建一个名为context-test1的context,绑定命名空间context-text
创建一个集群名称:
kubectl config set-cluster kubernetes --server=https://localhost:8080
kubectl config set-context context-test1 --namespace=context-text --cluster=kubernetes
使用kubectl config view命令查看已定义的Context(不知道集群名也可以使用此命令查看)
kubectl config view
通过kubectl config命令在${HOME}/.kube目录下生成了一个名为config的文件,文件的内容为以kubectl config view命令查看到的内容。所以也可以通过手工编辑该文件的方式来设置Context。
(2)设置工作组在特定Context环境工作
使用如下命令设置当前运行环境
kubectl config use-context context-test1
之后所有操作都会在context-test1环境绑定的命名空间中完成。
部署集群监控
在Kubernetes新的监控体系中,Metrics Server用于提供核心指标(Core Metrics),包括Node、Pod的CPU和内存使用指标。对其他自定义指标(Custom Metrics)的监控则由Prometheus等组件来完成。
通过Metrics Server监控Pod和Node的CPU和内存资源使用数据。
Metrics Server在部署完成后,将通过Kubernetes核心API Server的“/apis/metrics.k8s.io/v1beta1”路径提供Pod和Node的监控数据。Metrics Server源代码和部署配置可以在GitHub代码库(https://github.com/kubernetes-incubator/metrics-server)找到。
首先,部署Metrics Server实例,
从https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml获取到最新的yaml文件,
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: system:aggregated-metrics-reader
labels:
rbac.authorization.k8s.io/aggregate-to-view: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-admin: "true"
rules:
- apiGroups: ["metrics.k8s.io"]
resources: ["pods", "nodes"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: metrics-server:system:auth-delegator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:auth-delegator
subjects:
- kind: ServiceAccount
name: metrics-server
namespace: kube-system
-