kubeadmはkubernetes 1をインストールする.9.1

11635 ワード

参考サイト:https://kubernetes.io/docs/setup/independent/install-kubeadm/ https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/

dockerのインストール


centos 7 dockerバイナリパッケージのインストールhttps://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker rpmパッケージをダウンロードdocker-ce-17.03.2をダウンロードしました.ce-1.el7.centos.x86_64.rpmとdocker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm実行コマンド
yum localinstall docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm

クベドのインストール


1、cniプラグインのインストール
CNI_VERSION="v0.6.0"
mkdir -p /opt/cni/bin
curl -L "https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/cni-plugins-amd64-${CNI_VERSION}.tgz" | tar -C /opt/cni/bin -xz

2、クbeadmクbeletクbectlを取り付ける
RELEASE="$(curl -sSL https://dl.k8s.io/release/stable.txt)"

mkdir -p /opt/bin
cd /opt/bin
curl -L --remote-name-all https://storage.googleapis.com/kubernetes-release/release/${RELEASE}/bin/linux/amd64/{kubeadm,kubelet,kubectl}
chmod +x {kubeadm,kubelet,kubectl}

curl -sSL "https://raw.githubusercontent.com/kubernetes/kubernetes/${RELEASE}/build/debs/kubelet.service" | sed "s:/usr/bin:/opt/bin:g" > /etc/systemd/system/kubelet.service
mkdir -p /etc/systemd/system/kubelet.service.d
curl -sSL "https://raw.githubusercontent.com/kubernetes/kubernetes/${RELEASE}/build/debs/10-kubeadm.conf" | sed "s:/usr/bin:/opt/bin:g" > /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

起動と起動の設定
systemctl enable kubelet && systemctl start kubelet

kubeadm取付k 8 s


k 8 sのdockerミラーk 8 s 1をダウンロードする.9.xバージョンで必要なdockerミラーはhttps://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init/説明があります.
#!/bin/bash

set -x
dockerimages=(k8s.gcr.io/kube-apiserver-amd64:v1.9.1
k8s.gcr.io/kube-controller-manager-amd64:v1.9.1
k8s.gcr.io/kube-scheduler-amd64:v1.9.1
k8s.gcr.io/kube-proxy-amd64:v1.9.1
k8s.gcr.io/etcd-amd64:3.1.10
k8s.gcr.io/pause-amd64:3.0
k8s.gcr.io/k8s-dns-sidecar-amd64:1.14.7
k8s.gcr.io/k8s-dns-kube-dns-amd64:1.14.7
k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64:1.14.7)

j=1
for i in ${dockerimages[@]}
do
    echo $i
    echo $j

    docker pull $i && docker save $i | xz $j.tar.xz
    docker rmi $i
    let j+=1
done
set +x


1、master構成ホストを初期化する192.168.122.1120はapiserverが傍受するアドレスであり、podを設定するセグメントは10.244.0/16である.
kubeadm init --apiserver-advertise-address=192.168.122.120  --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.9.1 --ignore-preflight-errors=Swap

2、root以外のユーザーがkubectlコマンドを使用するように構成する
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

rootユーザーはkubectlコマンドを使用
export KUBECONFIG=/etc/kubernetes/admin.conf

3、podネットワークをインストールここでcanalネットワークプラグインを使う
kubectl apply -f https://raw.githubusercontent.com/projectcalico/canal/master/k8s-install/1.7/rbac.yaml
kubectl apply -f https://raw.githubusercontent.com/projectcalico/canal/master/k8s-install/1.7/canal.yaml

4、masterを構成してpodをスケジューリングして実行することができる
kubectl taint nodes --all node-role.kubernetes.io/master-

5、加入ノードログインに加入する必要があるノードマシン上で、rootでkubeadm init実行後プロンプトのコマンドを実行する
kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>

kubeadmリセットk 8 s


まずすべてのk 8 sノードをメンテナンス状態にする
kubectl drain <node name> --delete-local-data --force --ignore-daemonsets
kubectl delete node <node name>

resetコマンドの実行
kubeadm reset
ifconfig cni0 down
ip link delete cni0
ifconfig flannel.1 down
ip link delete flannel.1
rm -rf /var/lib/cni/

問題


問題が発生したらまずクbeletプログラムを表示します
systemctl status kubelet
journalctl -xeu kubelet

エラーメッセージ1
kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd"

kubeletのプロファイル/etc/systemd/system/kubeletを編集します.service.d/10-kubeadm.confは–cgroup-driver=cgroupfsを–cgroup-driver=systemdエラープロンプト2に置き換えます
error: failed to run Kubelet: Running with swap on is not supported, please disable swap! or set --fail-swap-on flag to false

kubeletのプロファイル/etc/systemd/system/kubeletを編集します.service.d/10-kubeadm.confは–cgroup-driver=systemdに構成を加えて–cgroup-driver=systemd–fail-swap-on=falseになります