猫の手に余る

備忘録とねこ

再起動したらkubeletが起動しない問題

前回の再起動したらkubeletが起動しない問題 skane26.hatenablog.com

原因

sawp領域無効化が解除されていた

kubeadmのインストール | Kubernetes

Swapがオフであること。kubeletが正常に動作するためにはswapは必ずオフでなければなりません。

対策

swapファイル永遠にOFFにする

/etc/fstab を編集する

root@xxxx-virtual-machine:~# cat /etc/fstab 

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda5 during installation
UUID=64d594da-c607-4c0b-b33f-1d84fe6dd35b /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=9E92-B08B  /boot/efi       vfat    umask=0077      0       1
/swapfile                                 none            swap    sw              0       0
~                                                                                                                                                                                                          
~                      

/swapfile の行をコメントアウトする

root@xxxx-virtual-machine:~# vim /etc/fstab 

(略)

#/swapfile                                 none            swap    sw              0       0
~                                                                                                                                                                                                          
~                      

VMに作ったうぶんつにk8sを構築するめも

参考 qiita.com

インストールできるdockerの確認

CRIのインストール | Kubernetes

2021/04/01現在では

バージョン19.03.11が推奨されていますが、1.13.1、17.03、17.06、17.09、18.06、18.09についても動作が確認されています。 なので19.03.11をインストールする

apt-cache madison docker-ce で指定するバージョン名を確認

2列目の5:xx.xx.x~x-x~ubuntu-focalがバージョン名

root@xxxx-virtual-machine:~# apt-cache madison docker-ce

virtual-machine:~# apt-cache madison docker-ce
 docker-ce | 5:20.10.5~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.4~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.3~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.2~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.1~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.0~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.15~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.14~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.13~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.12~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.11~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.10~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.9~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages

sudo apt install docker-ce=5:19.03.11~3-0~ubuntu-focal

なんやかんやでとりあえず起動 f:id:skane_26:20210401044641j:plain

再起動すると動かない

xxxx@xxxx-virtual-machine:~$ kubectl get nodes
The connection to the server 192.168.37.128:6443 was refused - did you

以下の手順をやりなおす起動する

xxxx@xxxx-virtual-machine:~$ rm -r $HOME/.kube/
xxxx@xxxx-virtual-machine:~$  mkdir -p $HOME/.kube
xxxx@xxxx-virtual-machine:~$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
xxxx@xxxx-virtual-machine:~$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
xxxx@xxxx-virtual-machine:~$ kubectl get nodes
NAME                     STATUS   ROLES                  AGE    VERSION
sxxxx-virtual-machine   Ready    control-plane,master   111m   v1.20.5

なんとなくconfigが怪しそうなので気が向いたら調べる

xxxx@xxxx-virtual-machine:~$ kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://192.168.37.128:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

シフトレジスタ使ってフルカラーLEDの色を細かく制御する

使ったもの

配線

f:id:skane_26:20201231194111j:plain

コード

#define SRCLK   (5)//クロック
#define RCLK    (6)//ラッチ
#define SER     (7)

byte patterns[] = {
  B10000001,
  B10000001,
  B10000001,
  B10000001,
  B01000001,
  B01000001,
  B01000001,
  B01000001,
  B00100001,
  B00100001,
  B00100001,
  B00100001,
  B00010001,
  B00010011,
  B00010011,
  B00010011,
  B00001001,
  B00001011,
  B00001011,
  B00001011
};

void setup() {
  pinMode(SRCLK, OUTPUT);
  pinMode(RCLK,  OUTPUT);
  pinMode(SER,   OUTPUT);

}

void loop() {
  for ( int i = 0; i < sizeof(patterns); i++ ) {
    digitalWrite( RCLK, LOW );
    shiftOut( SER, SRCLK, LSBFIRST, patterns[i] );
    digitalWrite( RCLK, HIGH );
   }

}

v-on?v-bind?@(アットマーク)? :(コロン)?v-model?

v-on,@

  • イベントを発火させたいときに使う。
  • @はv-onの省略形

    構文

    v-on:イベント名
    @イベント名

<v-btn @click="clickMethod" />
<v-btn v-on:click="clickMethod" />

よく使うイベント

イベント名 発火タイミング
@click="" クリック時
@input="" インプット時
@change="" 変数に変更があった時

詳しくは↓

blog-asnpce.com

v-bind,:(コロン)

  • バインドするときに使う
  • :はv-bindの省略形

    構文

    v-bind="プロパティ名"
    :プロパティ名

例①:親→子

  • Parent.vue
<template>
    <div>
        <Child :value="message" />
    </div>
<template>

<script>
import Child from "./Child.vue";
export default {
    components:{
        Child
    },
    data(){
        return{
            message:"子コンポーネントで表示するメッセージ"
        }
    }
}
</script>
<template>
    <div>
        {{message}}
    </div>
<template>
<script>
export default {
    props:[messae]
}
</script>

 例②:属性値のバインディング(同一コンポーネント内)

<template>
    <div v-bind:class="{ active: isActive }">
        <p>てすと</p>
    </div>
</template>

<script>
export default {
    data(){
        return{
            isActive : true
        }
    }
}
</script>

isActiveがtrueの時てすとが表示されて、falseのときh 表示されない。

v-model

  • v-onとv-bindをまとめた書き方
コンポーネント 発火されるタイミング(v-on) バインドされる対象(v-bind)
テキストボックス、テキストエリア input value
チェックボックスラジオボタン change checked
セレクトボックス change value
カスタムコンポーネント input value

skane26.hatenablog.com

参考

Vueのデータバインディングを理解する - Qiita

Vueのデータバインドの基本 - Qiita

Vue.jsのv-modelを正しく使う - Qiita

input系の子コンポーネントを使った時の変数の扱い方

※使用しているUIフレームワークはBuefy(Buefy: lightweight UI components for Vue.js based on Bulma)

Parent.vue(親コンポーネント)

<template>
    <div>
        <InputField v-model="option.id"/>
        <InputField v-model="option.name"/>
        <InputField v-model="option.age"/>
    </div>
</template>

<script>
import InputField  from "./InputField"
export default {
    components:{
        InputField  
    },
    data(){
        option:{id:"", name:"", age:""}
    }
}
</script>

InputField.vue(子コンポーネント)

<template>
    <b-input @input="updateValue" :value="value">
</template>

<script>
export default {
 methods:{
        updateValue(value){
            this.$emit("input",value)
        }
    }

}
</script>

めも

skane26.hatenablog.com