Centos7インストールk8sクラスター1.15.0バージョン

バージョンの説明##

インストール前の手順##

kubeadmを使用してk8sをインストールする方が、以前にコンポーネントを1つずつインストールするよりもはるかに簡単です。国内のネットワークの問題のために、Googleのものが壁に囲まれているだけなので、インストールするのがより面倒に感じます。したがって、ksをインストールするための鍵は、イメージをプルする方法です。これを解決するには、次の4つの方法があります。

CNCFによって公式に認定されたgithubにk8sプロジェクトのグラフィカルインストールがあります。 【イメージインターフェースインストールk8s】(https://github.com/wise2c-devops/breeze/blob/master/README-CN.md)

機械計画##

マシン名 ipアドレス 役割 yumによってインストールされたコンポーネント
k8s-master 10.1.69.101 master docker、kubelet、kubeadm、kubectl
k8s-node1 10.1.69.102 node docker、kubelet、kubeadm
k8s-node2 10.1.69.103 node docker、kubelet、kubeadm

わかりやすいリマインダー:仮想マシンの下にインストールします。IPアドレスを修正するのが最善です。特にマスターノード。インストールにはIPアドレスが必要であり、ドメイン名は使用できません。次回IPアドレスが変更された場合、クラスターが使用できなくなる可能性があります

準備オーケー##

1. 前提条件のソフトウェアをインストールします###

yum install -y wget vim net-tools epel-release

2. スワップを閉じる###

swapoff -a

# 完全に無効にし、開く/etc/fstabはスワップラインをコメントアウトしました。
sed -i 's/.*swap.*/#&/'/etc/fstab

3. selinuxを閉じる###

# selinuxを一時的に無効にする
setenforce 0
# 恒久的に近い変更/etc/sysconfig/selinuxファイル設定
sed -i 's/SELINUX=permissive/SELINUX=disabled/'/etc/sysconfig/selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g"/etc/selinux/config

4. ファイアウォールをオフにします###

systemctl disable firewalld
systemctl stop firewalld

Dockerをインストールし、プロキシを構成します##

1. yum source ###を構成します

## デフォルトのソースを構成する
## バックアップ
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

## Aliyuanをダウンロード
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

## 更新
yum makecache fast

## k8sソースを構成する
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=0
EOF

## yumキャッシュを再構築する
yum clean all
yum makecache fast
yum -y update

コードをコピーする

2. docker ###をインストールします

yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce
systemctl enable docker
systemctl start docker

3. kubeletで使用されるcgroupドライバーがDocker ###のcgroupドライバーと一致していることを確認してください

cat >/etc/docker/daemon.json <コードをコピーする

4. Dockerプロキシを設定します(コアステップ-プロキシがある場合)###

手順5を実行するエージェントはありません

mkdir /etc/systemd/system/docker.service.d
touch /etc/systemd/system/docker.service.d/http-proxy.conf

[ Service]
Environment="HTTP_PROXY=http://xxx"
Environment="HTTPS_PROXY=http://xxx"
Environment="NO_PROXY=localhost,127.0.0.1,localaddress,.localdomain.com"

systemctl daemon-reload && systemctl restart docker

5. 国内倉庫からミラーイメージを引き出します(コアステップ-エージェントがいない場合)###

## クラスタの初期化に必要な画像と対応する依存バージョン番号を表示します。リストされているのは、ダウンロードする必要のある画像です。
kubeadm config images list
コードをコピーする
#! /bin/bash

## 次のスクリプトを使用して、国内のミラーをダウンロードし、タグをgoogleのタグに変更します
set-e

KUBE_VERSION=v1.15.0
KUBE_PAUSE_VERSION=3.1
ETCD_VERSION=3.3.10
CORE_DNS_VERSION=1.3.1

GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers

images=(kube-proxy:${KUBE_VERSION}
kube-scheduler:${KUBE_VERSION}
kube-controller-manager:${KUBE_VERSION}
kube-apiserver:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd:${ETCD_VERSION}
coredns:${CORE_DNS_VERSION})for imageName in ${images[@]};do
 docker pull $ALIYUN_URL/$imageName
 docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName
 docker rmi $ALIYUN_URL/$imageName
done

6. ネットワークプロキシの構成(オプション)###

 ## 構成/etc/プロファイルファイル、特にhttpsは、xxxを自分または会社のプロキシアドレスに置き換えます
 http_proxy=xxx
 https_proxy=xxx
 HTTP_PROXY=xxx
 HTTPS_PROXY=xxx
コードをコピーする

k8sのインストールを開始します##

1. kubeadm、kubeletなどをインストールします。###

yum -y install kubelet kubeadm kubectl kubernetes-cni
systemctl enable kubelet && systemctl start kubelet

2. クラスターの初期化###

## マスターノードは以下を実行します。
sudo kubeadm init \
 - - apiserver-advertise-address 10.1.69.101 \
 - - kubernetes-version=v1.15.0 \
 - - pod-network-cidr=10.244.0.0/16
コードをコピーする

フレンドリーなリマインダー:画像が事前にプルされていない場合、このステップは遅くなります。プロキシが構成されている場合は、次を実行します。kubeadmconfig images pull、画像を個別にプル

kubeadm resetをアンインストールしてからインストールすると、エラーが報告される場合があります。次のパラメータを追加します:-ignore-preflight-errors = all

返信を受け取る:

(... 省略)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

## コマンドを保存します。失われた場合、取得するのは困難です。ノードが参加するときに必要
kubeadm join 10.1.69.101:6443--token ou5pvo.qseafc4s8licblzy \
 - - discovery-token-ca-cert-hash sha256:de9c10f11c50c074f212698b9d514fc12a9c1c4ffe70961aff89ac5e585f0663
コードをコピーする

3. 構成をコピーし、kubectlに###を使用します

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

4. フランネルネットワークをインストールする###

sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

## フランナルが正常にインストールされているかどうかを確認します

sudo kubectl -n kube-system get po -l app=flannel -o wide
コードをコピーする

5. ノードノードがクラスターに参加します##

他のノードは実行します:

kubeadm join 10.1.69.101:6443--token ou5pvo.qseafc4s8licblzy \
 - - discovery-token-ca-cert-hash sha256:de9c10f11c50c074f212698b9d514fc12a9c1c4ffe70961aff89ac5e585f0663

クリーンインストール##

sudo kubeadm reset

ダッシュボードプラグインのインストール##

1. プラグインをダウンロードして###を構成します

apiVersion: v1 kind: ServiceAccount metadata: name: dashboard namespace: kube-system --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: dashboard subjects: - kind: ServiceAccount name: dashboard namespace: kube-system roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io

2. インストールを実行します###

イメージのダウンロードには一定の時間がかかります。ポッドが実行されている場合、インストールは成功しています。kubectlget pod -n kube-system | grep kubernetes-dashboard

3. ログインインターフェイスビュー###

ログインインターフェイストークンを取得しますkubectl-n kube-system describe $(kubectl -n kube-system \ get secret -n kube-system -o name | grep namespace)| grepトークン

発生した問題##

保存のエクスポート時にイメージタグが指定されていない

kubeadm initの場合、apiserverのアドレスが間違っています

echo "1">/proc/sys/net/bridge/bridge-nf-call-iptables

kubeadmリセット、ノードのリセット、再参加

Recommended Posts

Centos7インストールk8sクラスター1.15.0バージョン
CentOS7.3.1611はk8s1.5.2クラスターを展開します
CentOS6インストールcouchdb2クラスター
CentOS7はk8sクラスターを展開します
Centos7.2 /7.3クラスターインストールKubernetes1.8.4 +ダッシュボード
CentosはハイバージョンGCCをインストールします
CentOS 8.0.1905インストールZABBIX4.4バージョン(検証済み)
Centos7.6はMySQL + Redis(最新バージョン)をインストールします
1.5Centos7をインストールする
CentOS6ミニナルインストールCouchDB2詳細バージョン
k8sプラクティス(1):Centos 7.6デプロイメントk8s(v1.14.2)クラスター
centos7でk8sクラスターをインストールおよび構成するための詳細な手順
Centos6はPython2.7.13をインストールします
Centos7.3はnginxをインストールします
CentOS7.2はMysql5.7.13をインストールします
Centos7はPython3.6をインストールします。
CentOS7はMySQLをインストールします
Centos7インストールprotobuf
CentOS7はDockerをインストールします
CentOS7はGlusterFSをインストールします
CentOS7はDockerをインストールします
Centos6.5はTomcatをインストールします
CentOSはPython3.6をインストールします
VmwareはCentOS6をインストールします
centos7 install docker-ce 18.01.0
CentOS7.2はMariaDBをインストールします
CentOS7はHadoop3.0.0をインストールします
Centos7はPython2.7をインストールします
Centos7.6はseleniuをインストールします
LinuxCentOS7システムにmysql8.0.13バージョンをインストールします
Centosは最新バージョンのcmakeをインストールします
CentOS7.3はZabbix3をインストールします
Centos7はLAMP + PHPmyadminをインストールします
CentOSインストールmysql
CentOSはopenjdk1.8をインストールします
CENTOS6.5インストールCDH5.12.1(1)
CentOSはPHPをインストールします
Centos7はDockerをインストールします
CentOS7インストールmysql
centOsはrabbitMQをインストールします
CentOS7はMySQL5.6をインストールします
Centos7はNginxをインストールします
CentOS6.5はCDH5.13をインストールします
Centos7インストールdocker18
CentosはPython3をインストールします
centos7インストールnginx-rtmp
CentOS8はMySQL8.0をインストールします
CentOSはPostgreSQL9.1をインストールします
CentOS7はmysql8をインストールします
CentOS7はJava1.8をインストールします
CentOS8はfastdfs6.06をインストールします
CentOS7はGitlabをインストールします
Centos7はPostgreSQLをインストールします
CentOS7はMySQL8をインストールします
CentOS7はJava1.8をインストールします
CentOS6はDockerをインストールします
centos6.5インストールzabbix4.4
Centos8はDockerをインストールします
CentOS6.8はpython2.7をインストールします
CentOSインストールnodejs8
CentOS6.5はGNS3をインストールします