Kubernetes学習と応用(05)——Kubernetesのインストール
19697 ワード
1.CRI-Oの取り付け
コンテナランタイムインタフェースContainer Runtime Interface(CRI):Kubernetesを再コンパイルすることなく、kubelet(podの作成とコンテナの起動に使用されるクラスタノードエージェント)にOCIと互換性の異なるコンテナランタイムを使用する能力を持たせるプラグインインタフェースです.この作業に基づいて、CRI-Oプロジェクト([原名OCID]13)は、Kubernetesに軽量レベルのランタイムを提供する準備をしています.
CRI-Oでは、不要なコードやツールを必要とせずにKubernetesからコンテナを直接実行できます.容器がOCI規格に合致する限り、CRI-Oはそれを実行し、外来のツールを除去し、容器に得意なことをさせることができます:あなたの次世代の原生雲プログラムを加速させることができます.modprobe overlay
modprobe br_netfilter
# kubernetes cri
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf
#
yum-config-manager --add-repo=https://cbs.centos.org/repos/paas7-crio-115-release/x86_64/os/
# CRI-O
yum install --nogpgcheck cri-o
# CRI-O
systemctl daemon-reload
systemctl start crio
2.containerdのインストール cat > /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
modprobe overlay
modprobe br_netfilter
#
yum install yum-utils device-mapper-persistent-data lvm2
# docker
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# ( docker )
yum update --skip-broken && yum install containerd.io
# containerd
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
# containerd
systemctl restart containerd
3.Kubernetesのインストール
swapを閉じるswapoff -a
vi /etc/fstab
注記swap# /dev/mapper/cl-swap swap swap defaults 0 0
次のコマンドを実行します.mount -a
echo "KUBELET_EXTRA_ARGS=--fail-swap-on=false" > /etc/sysconfig/kubelet
国内ソースでのインストールcat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
yum install -y kubelet-1.17.0 kubeadm-1.17.0 kubectl-1.17.0
systemctl enable kubelet && systemctl start kubelet
現在のKubernetesバージョンでサポートされているDockerバージョンを表示するには、「開く」をクリックします.https://github.com/kubernetes/kubernetes
対応バージョンCHANGELOG-1に進む.xx.md、dockerキーを検索すると関連情報が表示されます
4.サーバシステム環境変数の変更 vi /etc/profile
末尾に次の構成を追加export KUBECONFIG=/etc/kubernetes/admin.conf
終了後、コマンドを実行し、構成をすぐに有効にします.source /etc/profile
5.Kubernetesの初期化
コマンドを発行し、必要なミラーをロードし、Kubernetesを初期化します.kubeadm init --cri-socket /var/run/dockershim.sock --image-repository=registry.aliyuncs.com/google_containers --kubernetes-version=v1.17.0 --pod-network-cidr=192.168.16.0/20 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
初期化が完了すると、ノードに追加されたコマンドラインが生成され、印刷されます.kubeadm join 192.168.xx.xxx:6443 --token ryotic.bt5ms3fx0tku0gxd \
--discovery-token-ca-cert-hash sha256:94014c7543fd0ff86a847959e3f8e149691d4665b7dbc1abdf3d28c9c0ebf75d
このようなコマンドは、それをコピーする必要があります.その後、Kubernetesにコンテナを追加するときに使用する必要があります.
生成されたこのトークンは24時間有効で、期限が切れたらコマンドで再生成できます
コピーを忘れた場合は、次のコマンドで再印刷できます.kubeadm token create –print-join-command
その後adminが必要になる場合があります.confは鍵を生成し、次の操作で構成を指定した場所にコピーします.mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
6.検査状態 kubectl get cs
サービスが正常に起動したことを示すメッセージが表示されます.NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy {"health":"true"}
コマンドの入力kubectl get nodes
表示NAME STATUS ROLES AGE VERSION
master Ready master 12m v1.17.0
すべてのノードの動作状態を確認kubectl get pods --all-namespaces
表示できるNAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-9d85f5447-hccsk 1/1 Pending 0 33m
kube-system coredns-9d85f5447-jc7dd 1/1 Pending 0 33m
kube-system etcd-master 1/1 Running 0 33m
kube-system kube-apiserver-master 1/1 Running 0 33m
kube-system kube-controller-manager-master 1/1 Running 0 33m
kube-system kube-flannel-ds-amd64-gjp99 1/1 Running 0 11m
kube-system kube-proxy-t8rrj 1/1 Running 0 33m
kube-system kube-scheduler-master 1/1 Running 0 33m
CorednsノードのステータスはPendingです.これは、ネットワークプラグインがインストールされていないためです.Weaveがインストールされている場合、この2つのステータスにRunningが表示されます.
マスターノードの詳細の表示kubectl describe node master
7.クラスタネットワークWeave Netのインストール
ダウンロードyamlファイルcurl -L "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '
')" > weave.yaml
変更yaml構成vi weave.yaml
プロファイルで「/home/weave/launch.sh」を検索し、次のenvにIPALLOC_を追加します.RANGE、具体的には以下の通りです. spec:
containers:
- name: weave
command:
- /home/weave/launch.sh
env:
- name: HOSTNAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: IPALLOC_RANGE
value: 192.168.16.0/20
ここではIP割り当て範囲をローカルで指定した範囲にバインドします.192.168.16.0/20この値は初期化時のpod-network-cidr値と一致しなければなりません.そうしないと、サービスエラーにつながる可能性があります.
プラグインのインストールkubectl apply -f weave.yaml
プラグインの削除kubectl delete -f weave.yaml
少し待って、コマンドを入力してpodの運行状態を見て、weave-netの状態がRunningの中にあることを見ることができますkubectl get pod --all-namespaces -o wide
コンテンツの表示NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system coredns-9d85f5447-v9qld 1/1 Running 0 21m 10.244.0.3 master
kube-system coredns-9d85f5447-z22vf 1/1 Running 0 21m 10.244.0.2 master
kube-system etcd-master 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-apiserver-master 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-controller-manager-master 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-proxy-gn9gv 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-scheduler-master 1/1 Running 0 21m 192.168.10.161 master
kube-system weave-net-v97dl 2/2 Running 0 4m37s 192.168.10.161 master
現在のdockerミラーを表示するか、weaveを表示します.docker images
dockerミラーリストREPOSITORY TAG IMAGE ID CREATED SIZE
registry.aliyuncs.com/google_containers/kube-proxy v1.17.0 7d54289267dc 2 weeks ago 116MB
registry.aliyuncs.com/google_containers/kube-controller-manager v1.17.0 5eb3b7486872 2 weeks ago 161MB
registry.aliyuncs.com/google_containers/kube-apiserver v1.17.0 0cae8d5cc64c 2 weeks ago 171MB
registry.aliyuncs.com/google_containers/kube-scheduler v1.17.0 78c190f736b1 2 weeks ago 94.4MB
weaveworks/weave-npc 2.6.0 5105e13e253e 7 weeks ago 34.9MB
weaveworks/weave-kube 2.6.0 174e0e8ef23d 7 weeks ago 114MB
registry.aliyuncs.com/google_containers/coredns 1.6.5 70f311871ae1 7 weeks ago 41.6MB
registry.aliyuncs.com/google_containers/etcd 3.4.3-0 303ce5db0e90 2 months ago 288MB
registry.aliyuncs.com/google_containers/pause 3.1 da86e6ba6ca1 2 years ago 742kB
ネイティブネットワーク情報を表示すると、cni 0とflannelが追加されます.1ネットワークノード×2ifconfig
8.サービスのリセット
初期化に問題が発生した場合、または初期状態に戻って再構成する必要がある場合は、次のコマンドを実行します.kubeadm reset
ifconfig cni0 down
ifconfig flannel.1 down
ifconfig weave down
ip link delete cni0
ip link delete flannel.1
ip link delete weave
rm -rf $HOME/.kube/config
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /etc/kubernetes/
rm -rf /etc/cni/
kubernetesのこれらのデータを消去するほか、対応するdockerミラーを削除し、再初期化してもエラーが発生しない可能性があります.
modprobe overlay
modprobe br_netfilter
# kubernetes cri
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf
#
yum-config-manager --add-repo=https://cbs.centos.org/repos/paas7-crio-115-release/x86_64/os/
# CRI-O
yum install --nogpgcheck cri-o
# CRI-O
systemctl daemon-reload
systemctl start crio
cat > /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
modprobe overlay
modprobe br_netfilter
#
yum install yum-utils device-mapper-persistent-data lvm2
# docker
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# ( docker )
yum update --skip-broken && yum install containerd.io
# containerd
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
# containerd
systemctl restart containerd
3.Kubernetesのインストール
swapを閉じるswapoff -a
vi /etc/fstab
注記swap# /dev/mapper/cl-swap swap swap defaults 0 0
次のコマンドを実行します.mount -a
echo "KUBELET_EXTRA_ARGS=--fail-swap-on=false" > /etc/sysconfig/kubelet
国内ソースでのインストールcat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
yum install -y kubelet-1.17.0 kubeadm-1.17.0 kubectl-1.17.0
systemctl enable kubelet && systemctl start kubelet
現在のKubernetesバージョンでサポートされているDockerバージョンを表示するには、「開く」をクリックします.https://github.com/kubernetes/kubernetes
対応バージョンCHANGELOG-1に進む.xx.md、dockerキーを検索すると関連情報が表示されます
4.サーバシステム環境変数の変更 vi /etc/profile
末尾に次の構成を追加export KUBECONFIG=/etc/kubernetes/admin.conf
終了後、コマンドを実行し、構成をすぐに有効にします.source /etc/profile
5.Kubernetesの初期化
コマンドを発行し、必要なミラーをロードし、Kubernetesを初期化します.kubeadm init --cri-socket /var/run/dockershim.sock --image-repository=registry.aliyuncs.com/google_containers --kubernetes-version=v1.17.0 --pod-network-cidr=192.168.16.0/20 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
初期化が完了すると、ノードに追加されたコマンドラインが生成され、印刷されます.kubeadm join 192.168.xx.xxx:6443 --token ryotic.bt5ms3fx0tku0gxd \
--discovery-token-ca-cert-hash sha256:94014c7543fd0ff86a847959e3f8e149691d4665b7dbc1abdf3d28c9c0ebf75d
このようなコマンドは、それをコピーする必要があります.その後、Kubernetesにコンテナを追加するときに使用する必要があります.
生成されたこのトークンは24時間有効で、期限が切れたらコマンドで再生成できます
コピーを忘れた場合は、次のコマンドで再印刷できます.kubeadm token create –print-join-command
その後adminが必要になる場合があります.confは鍵を生成し、次の操作で構成を指定した場所にコピーします.mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
6.検査状態 kubectl get cs
サービスが正常に起動したことを示すメッセージが表示されます.NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy {"health":"true"}
コマンドの入力kubectl get nodes
表示NAME STATUS ROLES AGE VERSION
master Ready master 12m v1.17.0
すべてのノードの動作状態を確認kubectl get pods --all-namespaces
表示できるNAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-9d85f5447-hccsk 1/1 Pending 0 33m
kube-system coredns-9d85f5447-jc7dd 1/1 Pending 0 33m
kube-system etcd-master 1/1 Running 0 33m
kube-system kube-apiserver-master 1/1 Running 0 33m
kube-system kube-controller-manager-master 1/1 Running 0 33m
kube-system kube-flannel-ds-amd64-gjp99 1/1 Running 0 11m
kube-system kube-proxy-t8rrj 1/1 Running 0 33m
kube-system kube-scheduler-master 1/1 Running 0 33m
CorednsノードのステータスはPendingです.これは、ネットワークプラグインがインストールされていないためです.Weaveがインストールされている場合、この2つのステータスにRunningが表示されます.
マスターノードの詳細の表示kubectl describe node master
7.クラスタネットワークWeave Netのインストール
ダウンロードyamlファイルcurl -L "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '
')" > weave.yaml
変更yaml構成vi weave.yaml
プロファイルで「/home/weave/launch.sh」を検索し、次のenvにIPALLOC_を追加します.RANGE、具体的には以下の通りです. spec:
containers:
- name: weave
command:
- /home/weave/launch.sh
env:
- name: HOSTNAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: IPALLOC_RANGE
value: 192.168.16.0/20
ここではIP割り当て範囲をローカルで指定した範囲にバインドします.192.168.16.0/20この値は初期化時のpod-network-cidr値と一致しなければなりません.そうしないと、サービスエラーにつながる可能性があります.
プラグインのインストールkubectl apply -f weave.yaml
プラグインの削除kubectl delete -f weave.yaml
少し待って、コマンドを入力してpodの運行状態を見て、weave-netの状態がRunningの中にあることを見ることができますkubectl get pod --all-namespaces -o wide
コンテンツの表示NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system coredns-9d85f5447-v9qld 1/1 Running 0 21m 10.244.0.3 master
kube-system coredns-9d85f5447-z22vf 1/1 Running 0 21m 10.244.0.2 master
kube-system etcd-master 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-apiserver-master 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-controller-manager-master 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-proxy-gn9gv 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-scheduler-master 1/1 Running 0 21m 192.168.10.161 master
kube-system weave-net-v97dl 2/2 Running 0 4m37s 192.168.10.161 master
現在のdockerミラーを表示するか、weaveを表示します.docker images
dockerミラーリストREPOSITORY TAG IMAGE ID CREATED SIZE
registry.aliyuncs.com/google_containers/kube-proxy v1.17.0 7d54289267dc 2 weeks ago 116MB
registry.aliyuncs.com/google_containers/kube-controller-manager v1.17.0 5eb3b7486872 2 weeks ago 161MB
registry.aliyuncs.com/google_containers/kube-apiserver v1.17.0 0cae8d5cc64c 2 weeks ago 171MB
registry.aliyuncs.com/google_containers/kube-scheduler v1.17.0 78c190f736b1 2 weeks ago 94.4MB
weaveworks/weave-npc 2.6.0 5105e13e253e 7 weeks ago 34.9MB
weaveworks/weave-kube 2.6.0 174e0e8ef23d 7 weeks ago 114MB
registry.aliyuncs.com/google_containers/coredns 1.6.5 70f311871ae1 7 weeks ago 41.6MB
registry.aliyuncs.com/google_containers/etcd 3.4.3-0 303ce5db0e90 2 months ago 288MB
registry.aliyuncs.com/google_containers/pause 3.1 da86e6ba6ca1 2 years ago 742kB
ネイティブネットワーク情報を表示すると、cni 0とflannelが追加されます.1ネットワークノード×2ifconfig
8.サービスのリセット
初期化に問題が発生した場合、または初期状態に戻って再構成する必要がある場合は、次のコマンドを実行します.kubeadm reset
ifconfig cni0 down
ifconfig flannel.1 down
ifconfig weave down
ip link delete cni0
ip link delete flannel.1
ip link delete weave
rm -rf $HOME/.kube/config
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /etc/kubernetes/
rm -rf /etc/cni/
kubernetesのこれらのデータを消去するほか、対応するdockerミラーを削除し、再初期化してもエラーが発生しない可能性があります.
swapoff -a
vi /etc/fstab
# /dev/mapper/cl-swap swap swap defaults 0 0
mount -a
echo "KUBELET_EXTRA_ARGS=--fail-swap-on=false" > /etc/sysconfig/kubelet
cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
yum install -y kubelet-1.17.0 kubeadm-1.17.0 kubectl-1.17.0
systemctl enable kubelet && systemctl start kubelet
vi /etc/profile
末尾に次の構成を追加
export KUBECONFIG=/etc/kubernetes/admin.conf
終了後、コマンドを実行し、構成をすぐに有効にします.
source /etc/profile
5.Kubernetesの初期化
コマンドを発行し、必要なミラーをロードし、Kubernetesを初期化します.kubeadm init --cri-socket /var/run/dockershim.sock --image-repository=registry.aliyuncs.com/google_containers --kubernetes-version=v1.17.0 --pod-network-cidr=192.168.16.0/20 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
初期化が完了すると、ノードに追加されたコマンドラインが生成され、印刷されます.kubeadm join 192.168.xx.xxx:6443 --token ryotic.bt5ms3fx0tku0gxd \
--discovery-token-ca-cert-hash sha256:94014c7543fd0ff86a847959e3f8e149691d4665b7dbc1abdf3d28c9c0ebf75d
このようなコマンドは、それをコピーする必要があります.その後、Kubernetesにコンテナを追加するときに使用する必要があります.
生成されたこのトークンは24時間有効で、期限が切れたらコマンドで再生成できます
コピーを忘れた場合は、次のコマンドで再印刷できます.kubeadm token create –print-join-command
その後adminが必要になる場合があります.confは鍵を生成し、次の操作で構成を指定した場所にコピーします.mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
6.検査状態 kubectl get cs
サービスが正常に起動したことを示すメッセージが表示されます.NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy {"health":"true"}
コマンドの入力kubectl get nodes
表示NAME STATUS ROLES AGE VERSION
master Ready master 12m v1.17.0
すべてのノードの動作状態を確認kubectl get pods --all-namespaces
表示できるNAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-9d85f5447-hccsk 1/1 Pending 0 33m
kube-system coredns-9d85f5447-jc7dd 1/1 Pending 0 33m
kube-system etcd-master 1/1 Running 0 33m
kube-system kube-apiserver-master 1/1 Running 0 33m
kube-system kube-controller-manager-master 1/1 Running 0 33m
kube-system kube-flannel-ds-amd64-gjp99 1/1 Running 0 11m
kube-system kube-proxy-t8rrj 1/1 Running 0 33m
kube-system kube-scheduler-master 1/1 Running 0 33m
CorednsノードのステータスはPendingです.これは、ネットワークプラグインがインストールされていないためです.Weaveがインストールされている場合、この2つのステータスにRunningが表示されます.
マスターノードの詳細の表示kubectl describe node master
7.クラスタネットワークWeave Netのインストール
ダウンロードyamlファイルcurl -L "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '
')" > weave.yaml
変更yaml構成vi weave.yaml
プロファイルで「/home/weave/launch.sh」を検索し、次のenvにIPALLOC_を追加します.RANGE、具体的には以下の通りです. spec:
containers:
- name: weave
command:
- /home/weave/launch.sh
env:
- name: HOSTNAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: IPALLOC_RANGE
value: 192.168.16.0/20
ここではIP割り当て範囲をローカルで指定した範囲にバインドします.192.168.16.0/20この値は初期化時のpod-network-cidr値と一致しなければなりません.そうしないと、サービスエラーにつながる可能性があります.
プラグインのインストールkubectl apply -f weave.yaml
プラグインの削除kubectl delete -f weave.yaml
少し待って、コマンドを入力してpodの運行状態を見て、weave-netの状態がRunningの中にあることを見ることができますkubectl get pod --all-namespaces -o wide
コンテンツの表示NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system coredns-9d85f5447-v9qld 1/1 Running 0 21m 10.244.0.3 master
kube-system coredns-9d85f5447-z22vf 1/1 Running 0 21m 10.244.0.2 master
kube-system etcd-master 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-apiserver-master 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-controller-manager-master 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-proxy-gn9gv 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-scheduler-master 1/1 Running 0 21m 192.168.10.161 master
kube-system weave-net-v97dl 2/2 Running 0 4m37s 192.168.10.161 master
現在のdockerミラーを表示するか、weaveを表示します.docker images
dockerミラーリストREPOSITORY TAG IMAGE ID CREATED SIZE
registry.aliyuncs.com/google_containers/kube-proxy v1.17.0 7d54289267dc 2 weeks ago 116MB
registry.aliyuncs.com/google_containers/kube-controller-manager v1.17.0 5eb3b7486872 2 weeks ago 161MB
registry.aliyuncs.com/google_containers/kube-apiserver v1.17.0 0cae8d5cc64c 2 weeks ago 171MB
registry.aliyuncs.com/google_containers/kube-scheduler v1.17.0 78c190f736b1 2 weeks ago 94.4MB
weaveworks/weave-npc 2.6.0 5105e13e253e 7 weeks ago 34.9MB
weaveworks/weave-kube 2.6.0 174e0e8ef23d 7 weeks ago 114MB
registry.aliyuncs.com/google_containers/coredns 1.6.5 70f311871ae1 7 weeks ago 41.6MB
registry.aliyuncs.com/google_containers/etcd 3.4.3-0 303ce5db0e90 2 months ago 288MB
registry.aliyuncs.com/google_containers/pause 3.1 da86e6ba6ca1 2 years ago 742kB
ネイティブネットワーク情報を表示すると、cni 0とflannelが追加されます.1ネットワークノード×2ifconfig
8.サービスのリセット
初期化に問題が発生した場合、または初期状態に戻って再構成する必要がある場合は、次のコマンドを実行します.kubeadm reset
ifconfig cni0 down
ifconfig flannel.1 down
ifconfig weave down
ip link delete cni0
ip link delete flannel.1
ip link delete weave
rm -rf $HOME/.kube/config
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /etc/kubernetes/
rm -rf /etc/cni/
kubernetesのこれらのデータを消去するほか、対応するdockerミラーを削除し、再初期化してもエラーが発生しない可能性があります.
kubeadm init --cri-socket /var/run/dockershim.sock --image-repository=registry.aliyuncs.com/google_containers --kubernetes-version=v1.17.0 --pod-network-cidr=192.168.16.0/20 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
kubeadm join 192.168.xx.xxx:6443 --token ryotic.bt5ms3fx0tku0gxd \
--discovery-token-ca-cert-hash sha256:94014c7543fd0ff86a847959e3f8e149691d4665b7dbc1abdf3d28c9c0ebf75d
kubeadm token create –print-join-command
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get cs
サービスが正常に起動したことを示すメッセージが表示されます.
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy {"health":"true"}
コマンドの入力
kubectl get nodes
表示
NAME STATUS ROLES AGE VERSION
master Ready master 12m v1.17.0
すべてのノードの動作状態を確認
kubectl get pods --all-namespaces
表示できる
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-9d85f5447-hccsk 1/1 Pending 0 33m
kube-system coredns-9d85f5447-jc7dd 1/1 Pending 0 33m
kube-system etcd-master 1/1 Running 0 33m
kube-system kube-apiserver-master 1/1 Running 0 33m
kube-system kube-controller-manager-master 1/1 Running 0 33m
kube-system kube-flannel-ds-amd64-gjp99 1/1 Running 0 11m
kube-system kube-proxy-t8rrj 1/1 Running 0 33m
kube-system kube-scheduler-master 1/1 Running 0 33m
CorednsノードのステータスはPendingです.これは、ネットワークプラグインがインストールされていないためです.Weaveがインストールされている場合、この2つのステータスにRunningが表示されます.
マスターノードの詳細の表示
kubectl describe node master
7.クラスタネットワークWeave Netのインストール
ダウンロードyamlファイルcurl -L "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '
')" > weave.yaml
変更yaml構成vi weave.yaml
プロファイルで「/home/weave/launch.sh」を検索し、次のenvにIPALLOC_を追加します.RANGE、具体的には以下の通りです. spec:
containers:
- name: weave
command:
- /home/weave/launch.sh
env:
- name: HOSTNAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: IPALLOC_RANGE
value: 192.168.16.0/20
ここではIP割り当て範囲をローカルで指定した範囲にバインドします.192.168.16.0/20この値は初期化時のpod-network-cidr値と一致しなければなりません.そうしないと、サービスエラーにつながる可能性があります.
プラグインのインストールkubectl apply -f weave.yaml
プラグインの削除kubectl delete -f weave.yaml
少し待って、コマンドを入力してpodの運行状態を見て、weave-netの状態がRunningの中にあることを見ることができますkubectl get pod --all-namespaces -o wide
コンテンツの表示NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system coredns-9d85f5447-v9qld 1/1 Running 0 21m 10.244.0.3 master
kube-system coredns-9d85f5447-z22vf 1/1 Running 0 21m 10.244.0.2 master
kube-system etcd-master 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-apiserver-master 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-controller-manager-master 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-proxy-gn9gv 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-scheduler-master 1/1 Running 0 21m 192.168.10.161 master
kube-system weave-net-v97dl 2/2 Running 0 4m37s 192.168.10.161 master
現在のdockerミラーを表示するか、weaveを表示します.docker images
dockerミラーリストREPOSITORY TAG IMAGE ID CREATED SIZE
registry.aliyuncs.com/google_containers/kube-proxy v1.17.0 7d54289267dc 2 weeks ago 116MB
registry.aliyuncs.com/google_containers/kube-controller-manager v1.17.0 5eb3b7486872 2 weeks ago 161MB
registry.aliyuncs.com/google_containers/kube-apiserver v1.17.0 0cae8d5cc64c 2 weeks ago 171MB
registry.aliyuncs.com/google_containers/kube-scheduler v1.17.0 78c190f736b1 2 weeks ago 94.4MB
weaveworks/weave-npc 2.6.0 5105e13e253e 7 weeks ago 34.9MB
weaveworks/weave-kube 2.6.0 174e0e8ef23d 7 weeks ago 114MB
registry.aliyuncs.com/google_containers/coredns 1.6.5 70f311871ae1 7 weeks ago 41.6MB
registry.aliyuncs.com/google_containers/etcd 3.4.3-0 303ce5db0e90 2 months ago 288MB
registry.aliyuncs.com/google_containers/pause 3.1 da86e6ba6ca1 2 years ago 742kB
ネイティブネットワーク情報を表示すると、cni 0とflannelが追加されます.1ネットワークノード×2ifconfig
8.サービスのリセット
初期化に問題が発生した場合、または初期状態に戻って再構成する必要がある場合は、次のコマンドを実行します.kubeadm reset
ifconfig cni0 down
ifconfig flannel.1 down
ifconfig weave down
ip link delete cni0
ip link delete flannel.1
ip link delete weave
rm -rf $HOME/.kube/config
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /etc/kubernetes/
rm -rf /etc/cni/
kubernetesのこれらのデータを消去するほか、対応するdockerミラーを削除し、再初期化してもエラーが発生しない可能性があります.
curl -L "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '
')" > weave.yaml
vi weave.yaml
spec:
containers:
- name: weave
command:
- /home/weave/launch.sh
env:
- name: HOSTNAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: IPALLOC_RANGE
value: 192.168.16.0/20
kubectl apply -f weave.yaml
kubectl delete -f weave.yaml
kubectl get pod --all-namespaces -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system coredns-9d85f5447-v9qld 1/1 Running 0 21m 10.244.0.3 master
kube-system coredns-9d85f5447-z22vf 1/1 Running 0 21m 10.244.0.2 master
kube-system etcd-master 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-apiserver-master 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-controller-manager-master 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-proxy-gn9gv 1/1 Running 0 21m 192.168.10.161 master
kube-system kube-scheduler-master 1/1 Running 0 21m 192.168.10.161 master
kube-system weave-net-v97dl 2/2 Running 0 4m37s 192.168.10.161 master
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.aliyuncs.com/google_containers/kube-proxy v1.17.0 7d54289267dc 2 weeks ago 116MB
registry.aliyuncs.com/google_containers/kube-controller-manager v1.17.0 5eb3b7486872 2 weeks ago 161MB
registry.aliyuncs.com/google_containers/kube-apiserver v1.17.0 0cae8d5cc64c 2 weeks ago 171MB
registry.aliyuncs.com/google_containers/kube-scheduler v1.17.0 78c190f736b1 2 weeks ago 94.4MB
weaveworks/weave-npc 2.6.0 5105e13e253e 7 weeks ago 34.9MB
weaveworks/weave-kube 2.6.0 174e0e8ef23d 7 weeks ago 114MB
registry.aliyuncs.com/google_containers/coredns 1.6.5 70f311871ae1 7 weeks ago 41.6MB
registry.aliyuncs.com/google_containers/etcd 3.4.3-0 303ce5db0e90 2 months ago 288MB
registry.aliyuncs.com/google_containers/pause 3.1 da86e6ba6ca1 2 years ago 742kB
ifconfig
初期化に問題が発生した場合、または初期状態に戻って再構成する必要がある場合は、次のコマンドを実行します.
kubeadm reset
ifconfig cni0 down
ifconfig flannel.1 down
ifconfig weave down
ip link delete cni0
ip link delete flannel.1
ip link delete weave
rm -rf $HOME/.kube/config
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /etc/kubernetes/
rm -rf /etc/cni/
kubernetesのこれらのデータを消去するほか、対応するdockerミラーを削除し、再初期化してもエラーが発生しない可能性があります.