1. ホーム
  2. docker

[解決済み] Podをスケジュールするためのノードがない - VMを使用せずにローカルでKubernetesを実行する

2022-02-19 16:08:26

質問

私はKubernetesの初心者です。今まではdocker-composeを使っていました(1台のマシンで)。 今、私は自分の仕事をノードのクラスタに費やし、Kubernetesの機能(サービス発見、ロードバランシング、ヘルスチェックなど)を得たいと考えています。

私はローカルサーバ (RHEL7) で作業しており、最初の Kubernetes 環境を実行しようとしています (以下はその例です)。 このドキュメント ) が、うまくいきません。

走っています。

hack/local-up-cluster.sh

とすると、(別の端末で)。

cluster/kubectl.sh config set-cluster local --server=http://127.0.0.1:8080 --insecure-skip-tls-verify=true
cluster/kubectl.sh config set-context local --cluster=local
cluster/kubectl.sh config use-context local

そして

cluster/kubectl.sh create -f run-aii.yaml

私のrun-aii.yamlです。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: aii
spec:
  replicas: 1
  template:
    metadata:
      labels:
        run: aii
    spec:
      containers:
      - name: aii
        image: localhost:5000/dev/aii
        ports:
        - containerPort: 5144
        env:
        - name: KAFKA_IP
          value: kafka
        volumeMounts:
        - mountPath: /root/script
          name: scripts-data
          readOnly: true
        - mountPath: /home/aii/core
          name: core-aii
          readOnly: true
        - mountPath: /home/aii/genome
          name: genome-aii
          readOnly: true
        - mountPath: /home/aii/main
          name: main-aii
          readOnly: true
      - name: kafka
        image: localhost:5000/dev/kafkazoo
        volumeMounts:
        - mountPath: /root/script
          name: scripts-data
          readOnly: true
        - mountPath: /root/config
          name: config-data
          readOnly: true
      - name: ws
        image: localhost:5000/dev/ws
        ports:
        - containerPort: 3000
      volumes:
      - name: scripts-data
        hostPath:
          path: /home/aii/general/infra/script
      - name: config-data
        hostPath:
          path: /home/aii/general/infra/config
      - name: core-aii
        hostPath: 
          path: /home/aii/general/core
      - name: genome-aii
        hostPath: 
          path: /home/aii/general/genome
      - name: main-aii
        hostPath: 
          path: /home/aii/general/main

追加情報です。

[aii@localhost kubernetes]$ cluster/kubectl.sh describe pod aii-4073165096-nkdq6
Name:       aii-4073165096-nkdq6
Namespace:  default
Node:       /
Labels:     pod-template-hash=4073165096,run=aii
Status:     Pending
IP:     
Controllers:    ReplicaSet/aii-4073165096
Containers:
  aii:
    Image:  localhost:5000/dev/aii
    Port:   5144/TCP
    QoS Tier:
      cpu:  BestEffort
      memory:   BestEffort
    Environment Variables:
      KAFKA_IP: kafka
  kafka:
    Image:  localhost:5000/dev/kafkazoo
    Port:   
    QoS Tier:
      cpu:  BestEffort
      memory:   BestEffort
    Environment Variables:
  ws:
    Image:  localhost:5000/dev/ws
    Port:   3000/TCP
    QoS Tier:
      cpu:  BestEffort
      memory:   BestEffort
    Environment Variables:
Volumes:
  scripts-data:
    Type:   HostPath (bare host directory volume)
    Path:   /home/aii/general/infra/script
  config-data:
    Type:   HostPath (bare host directory volume)
    Path:   /home/aii/general/infra/config
  core-aii:
    Type:   HostPath (bare host directory volume)
    Path:   /home/aii/general/core
  genome-aii:
    Type:   HostPath (bare host directory volume)
    Path:   /home/aii/general/genome
  main-aii:
    Type:   HostPath (bare host directory volume)
    Path:   /home/aii/general/main
  default-token-hiwwo:
    Type:   Secret (a volume populated by a Secret)
    SecretName: default-token-hiwwo
Events:
  FirstSeen LastSeen    Count   From            SubobjectPath   Type        Reason          Message
  --------- --------    -----   ----            -------------   --------    ------          -------
  37s       6s      6   {default-scheduler }            Warning     FailedScheduling    no nodes available to schedule pods

dockerイメージです。

[aii@localhost kubernetes]$ docker images
REPOSITORY                                       TAG                 IMAGE ID            CREATED             SIZE
kube-build                                       build-47381c8eab    f221edba30ed        25 hours ago        1.628 GB
aii                                              latest              1026cd920723        4 days ago          1.427 GB
localhost:5000/dev/aii                           latest              1026cd920723        4 days ago          1.427 GB
registry                                         2                   34bccec54793        4 days ago          171.2 MB
localhost:5000/dev/ws                            latest              fa7c5f6ef83a        12 days ago         706.8 MB
ws                                               latest              fa7c5f6ef83a        12 days ago         706.8 MB
kafkazoo                                         latest              84c687b0bd74        2 weeks ago         697.7 MB
localhost:5000/dev/kafkazoo                      latest              84c687b0bd74        2 weeks ago         697.7 MB
node                                             4.4                 1a93433cee73        2 weeks ago         647 MB
gcr.io/google_containers/hyperkube-amd64         v1.2.4              3c4f38def75b        2 weeks ago         316.7 MB
nginx                                            latest              3edcc5de5a79        2 weeks ago         182.7 MB
gcr.io/google_containers/debian-iptables-arm     v3                  aca727a3023c        5 weeks ago         120.5 MB
gcr.io/google_containers/debian-iptables-amd64   v3                  49b5e076215b        6 weeks ago         129.4 MB
spotify/kafka                                    latest              30d3cef1fe8e        3 months ago        421.6 MB
gcr.io/google_containers/kube-cross              v1.4.2-1            8d2874b4f7e9        3 months ago        1.551 GB
wurstmeister/zookeeper                           latest              dc00f1198a44        4 months ago        468.7 MB
centos                                           latest              61b442687d68        5 months ago        196.6 MB
centos                                           centos7.2.1511      38ea04e19303        5 months ago        194.6 MB
hypriot/armhf-busybox                            latest              d7ae69033898        6 months ago        1.267 MB
gcr.io/google_containers/etcd                    2.2.1               a6cd91debed1        6 months ago        28.19 MB
gcr.io/google_containers/pause                   2.0                 2b58359142b0        7 months ago        350.2 kB
gcr.io/google_containers/kube-registry-proxy     0.3                 b86ac3f11a0c        9 months ago        151.2 MB

Podをスケジュールするためのノードがない」とはどういう意味ですか?また、物理マシンのIPはどこで、どのように指定すればよいのでしょうか?

EDIT

[aii@localhost kubernetes]$ kubectl get nodes
NAME        STATUS    AGE
127.0.0.1   Ready     1m

とします。

[aii@localhost kubernetes]$ kubectl describe nodes
Name:           127.0.0.1
Labels:         kubernetes.io/hostname=127.0.0.1
CreationTimestamp:  Tue, 24 May 2016 09:58:00 +0300
Phase:          
Conditions:
  Type      Status  LastHeartbeatTime           LastTransitionTime          Reason          Message
  ----      ------  -----------------           ------------------          ------          -------
  OutOfDisk     True    Tue, 24 May 2016 09:59:50 +0300     Tue, 24 May 2016 09:58:10 +0300     KubeletOutOfDisk    out of disk space
  Ready     True    Tue, 24 May 2016 09:59:50 +0300     Tue, 24 May 2016 09:58:10 +0300     KubeletReady        kubelet is posting ready status
Addresses:  127.0.0.1,127.0.0.1
Capacity:
 pods:      110
 cpu:       4
 memory:    8010896Ki
System Info:
 Machine ID:            b939b024448040469dfdbd3dd3c3e314
 System UUID:           59FF2897-234D-4069-A5D4-B68648FC7D38
 Boot ID:           0153b84d-90e1-4fd1-9afa-f4312e89613e
 Kernel Version:        3.10.0-327.4.5.el7.x86_64
 OS Image:          Red Hat Enterprise Linux
 Container Runtime Version: docker://1.10.3
 Kubelet Version:       v1.2.4
 Kube-Proxy Version:        v1.2.4
ExternalID:         127.0.0.1
Non-terminated Pods:        (0 in total)
  Namespace         Name        CPU Requests    CPU Limits  Memory Requests Memory Limits
  ---------         ----        ------------    ----------  --------------- -------------
Allocated resources:
  (Total limits may be over 100%, i.e., overcommitted. More info: http://releases.k8s.io/HEAD/docs/user-guide/compute-resources.md)
  CPU Requests  CPU Limits  Memory Requests Memory Limits
  ------------  ----------  --------------- -------------
  0 (0%)    0 (0%)      0 (0%)      0 (0%)
Events:
  FirstSeen LastSeen    Count   From            SubobjectPath   Type        Reason          Message
  --------- --------    -----   ----            -------------   --------    ------          -------
  1m        1m      1   {kube-proxy 127.0.0.1}          Normal      Starting        Starting kube-proxy.
  1m        1m      1   {kubelet 127.0.0.1}         Normal      Starting        Starting kubelet.
  1m        1m      1   {kubelet 127.0.0.1}         Normal      NodeHasSufficientDisk   Node 127.0.0.1 status is now: NodeHasSufficientDisk
  1m        1m      1   {controllermanager }            Normal      RegisteredNode      Node 127.0.0.1 event: Registered Node 127.0.0.1 in NodeController
  1m        1m      1   {kubelet 127.0.0.1}         Normal      NodeOutOfDisk       Node 127.0.0.1 status is now: NodeOutOfDisk
  1m        1m      1   {kubelet 127.0.0.1}         Normal      NodeReady       Node 127.0.0.1 status is now: NodeReady

でも、空き容量があるんです。

[aii@localhost kubernetes]$ df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   47G   42G  3.2G  93% /
devtmpfs               3.9G     0  3.9G   0% /dev
tmpfs                  3.9G  3.7M  3.9G   1% /dev/shm
tmpfs                  3.9G   17M  3.9G   1% /run
tmpfs                  3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/rhel-var   485M  288M  198M  60% /var
/dev/sda1              509M  265M  245M  52% /boot
tmpfs                  783M   44K  783M   1% /run/user/1000
/dev/sr0                56M   56M     0 100% /run/media/aii/VBOXADDITIONS_5.0.18_106667

ディスク容量はどのくらい必要ですか?(VMで作業しているのであまりありません)

解決方法は?

ポッドをスケジュールするための利用可能なノードがシステム内に存在しないことを意味します。以下の出力を提供してもらえますか? kubectl get nodeskubectl describe nodes ?

ローカルクラスタのドキュメントに記載されている手順を実行すると、単一ノードが得られるはずです。ノードがある(はず)のに、まだ準備ができていない場合、以下のログを見ることができます。 /tmp/kubelet.log (今後、ローカルクラスタを使用しない場合は /var/log/kubelet.log を参照し、原因を探ってください。