Linux下查看img文件内容

img 磁盘镜像文件

  1. 挂载分区
$ sudo mount -o loop,offset=201326592 sdcard.img /mnt/
  1. 查看分区内容
$ ls /mnt/
bin  boot  dev  etc  home  lib  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

安装Kubernetes Dashboard

过几分钟后您将看到 kubernetes-dashboard 名字空间下会有 Pod 运行。

kubectl get pods -n kubernetes-dashboard

NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-6b4884c9d5-27xf6   1/1     Running   0          4m
kubernetes-dashboard-7b544877d5-mfmbp        1/1     Running   0          4m
cat <<EOF | kubectl apply -f -
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
// ...

输入 Token 信息登录。完成后,我们可以看到 Kubernetes 集群信息。

在您的本地浏览器输入地址 http://loca

Kubernetes中的计算资源管理

容器内运行 top

kubectl exec -it requests-pod top
Mem: 369767748K used, 26208028K free, 51000K shrd, 3765588K buff, 294978160K cached
CPU:  3.1% usr  1.5% sys  0.0% nic 95.2% idle  0.0% io  0.0% irq  0.0% sirq
Load average: 1.44 1.65 1.66 4/6602 18
  PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
    1     0 root     R     1308  0.0  27  2.5 dd if /dev/zero of /dev/null
   13     0 root     R     1324  0.0  38  0.0 top

★ 在容器内看到的 CPU 和内存是节点的。

top 命令显示占用了 2.5% CPU,对于 40 核的系统来说显然是占用了一个核。requests 不会限制资源的使用数量,因为是单线程,最多也就能用满一个核。

容器内运行 top kubectl exec -it limits-pod top Mem: 370581688K used, 25394088K free, 50976K shrd, 3774664K buff, 292993444K cached

Docker SDK for Python Examples

import docker
import tarfile
import tempfile
import os

def simple_tar(path):
    f = tempfile.NamedTemporaryFile()
    t = tarfile.open(mode='w', fileobj=f)
    abs_path = os.path.abspath(path)
    t.add(abs_path, arcname=os.path.basename(path))
    t.close()
    f.seek(0)
    return f

client = docker.from_env()
// ...

minikube

# minikube delete
🔄  正在使用 kubeadm 卸载 Kubernetes v1.17.3…
🔥  正在删除 none 中的“minikube”…
💀  Removed all traces of the "minikube" cluster.
rm -rf ~/.minikube/
rm -rf ~/.kube/
rm -f /usr/local/bin/minikube

解决办法:

minikube start --force --driver=docker

在Kubernetes上安装Ingress

  1. 解压
tar xzvf ingress-nginx-3.3.0.tgz
cd ingress-nginx
  1. 替换镜像
vim values.yaml
    repository: k8s.gcr.io/ingress-nginx/controller
    digest: sha256:fc4979d8b8443a831c9789b5155cded454cb7de737a8b727bc2ba0106d2eae8b

替换为下面的内容

    repository: pollyduan/ingress-nginx-controller
    # digest: sha256:fc4979d8b8443a831c9789b5155cded454cb7de737a8b727bc2ba0106d2eae8b
  1. Helm 使用本地目录的 Chart 进行安装
cd ..
helm install ingress-nginx ./ingress-nginx