1、使用metric-server监控pod及节点负载
1.1 安装metrics-server
docker pull mirrorgooglecontainers/metrics-server-amd64:v0.3.6
1.2 所有节点上进行tag操作
docker tag mirrorgooglecontainers/metrics-server-amd64:v0.3.6 k8s.gcr.io/metrics-server-amd64:v0.3.6
1.3 下载metric-server
curl -Ls https://api.github.com/repos/kubernetes-sigs/metrics-server/tarball/v0.3.6 -o metrics-server-v0.3.6.tar.gz
1.4 解压文件
tar xf metrics-server-v0.3.6.tar.gz
1.5 进入特定目录
[root@master ~]# cd kubernetes-sigs-metrics-server-d1f4f6f/deploy/1.8+/
[root@master ~/kubernetes-sigs-metrics-server-d1f4f6f/deploy/1.8+]# ls
aggregated-metrics-reader.yaml auth-reader.yaml metrics-server-deployment.yaml resource-reader.yaml
auth-delegator.yaml metrics-apiservice.yaml metrics-server-service.yaml
1.6 编辑配置文件
[root@master ~/kubernetes-sigs-metrics-server-d1f4f6f/deploy/1.8+]# vim metrics-server-deployment.yaml
...末行添加
imagePullPolicy: IfNotPresent
command:
- /metrics-server
- --metric-resolution=30s
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
1.7 运行文件
kubectl apply -f .
1.8 查看容器运行状态
[root@master ~]# kubectl get pods -n kube-system | grep metric
metrics-server-bcfb98c76-5v794 1/1 Running 0 61s
1.9 查看节点负载
[root@master ~]# kubectl top nodes --use-protocol-buffers
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
master 72m 1% 0Mi 0%
node1 48m 1% 0Mi 0%
node2 41m 1% 0Mi 0%
node3 71m 1% 0Mi 0%
1.10 查看pod负载
[root@master ~]# kubectl top pods -n kube-system --use-protocol-buffers
NAME CPU(cores) MEMORY(bytes)
calico-kube-controllers-7cc8dd57d9-qzc2v 2m 21Mi
calico-node-74wx2 33m 157Mi
calico-node-759t9 38m 107Mi
calico-node-8qjzg 23m 154Mi
calico-node-jg4ld 27m 151Mi
coredns-545d6fc579-mt5v5 3m 19Mi
coredns-545d6fc579-sw8bz 4m 16Mi
etcd-master 13m 82Mi
kube-apiserver-master 42m 428Mi
kube-controller-manager-master 15m 62Mi
kube-proxy-5kdvd 1m 30Mi
kube-proxy-5mhh9 1m 19Mi
kube-proxy-c54vr 1m 25Mi
kube-proxy-mzrqv 1m 28Mi
kube-scheduler-master 3m 29Mi
metrics-server-bcfb98c76-5v794 1m 13Mi
1.11 查看pod地址
[root@master ~]# kubectl get pods -n kube-system -o wide | grep metri
metrics-server-bcfb98c76-5v794 1/1 Running 0 9m52s 10.244.104.1 node2
2、命名空间
Namespace为名称提供了一个范围,资源的Names在Namespace中具有唯一性。
如果有多个用户或项目使用同一个Kubernetes Cluster,可以使用Namespace对他们创建的Controller、Pod等资源进行隔离,Namespace可以将一个物理的Cluster分成多个Cluster,每个虚拟的Cluster就是一个Namespace,不同Namespace里的资源是完全隔离的。
名字空间为K8s集群提供虚拟的隔离作用,K8s集群初始有两个名字空间,分别是默认名字空间default和系统名字空间kube-system,除此之外,管理员可以创建新的名字空间满足需要。
2.1 查看命名空间
kubectl get namespaces 或 kubectl get ns
[root@master ~]# kubectl get namespaces
NAME STATUS AGE
default Active 9d
kube-node-lease Active 9d
kube-public Active 9d
kube-system Active 9d
[root@master ~]# kubectl get ns
NAME STATUS AGE
default Active 9d
kube-node-lease Active 9d
kube-public Active 9d
kube-system Active 9d
2.2 下载切换命名空间工具
ftp://ftp.rhce.cc/cka-tool/kubens
wget ftp://ftp.rhce.cc/cka-tool/kubens -P /bin/
chmod u+x /bin/kubens
2.3 查看Namespace
[root@master ~]# kubens
default
kube-node-lease
kube-public
kube-system
2.4 创建新的命名空间
使用kubectl create namespace XXX和kubectl create ns XXX都可以
[root@master ~]# kubectl create namespace ns1
namespace/ns1 created
[root@master ~]# kubectl create ns ns2
namespace/ns2 created
2.5 切换命名空间
使用kubectl命令
kubectl config set-context kubernetes-admin@kubernetes --namespace ns1
使用kubectl命令(不切换集群)
kubectl config set-context --current --namespace default
使用kubens工具
[root@master ~]# kubens ns1
Context "kubernetes-admin@kubernetes" modified.