k8sクラスターの迅速なデプロイ

3つのノードでk8sクラスターをデプロイすると、3つの仮想マシンの情報は次のようになります。

CPU名 IPアドレス キャラクター システムOS
k8s-master 192.168.1.38 ワーカー Ubuntu 18.04.2 LTS
k8s-node1 192.168.1.39 ノード Ubuntu 18.04.2 LTS
k8s-node2 192.168.1.40 ノード Ubuntu 18.04.2 LTS

1.2ホストを設定する

3つのノードのhostsファイルを設定し、ホスト名とIPアドレスをマップします。

K8S-マスター@ルート:〜#猫の/ etc / hosts 
127.0.0.1 localhostの
#以下の行は、IPv6対応ホストのために望ましいものである
:: 1 IP6-localhostのIP6-ループバック
FE00 :: 0 IP6-localnetに
FF00 :: 0 ip6- mcastprefix 
FF02 :: 1 IP6-れるallnodes 
FF02 :: 2 IP6-allrouters 
FF02 :: 3 IP6-allhosts 
192.168.1.38 K8Sマスター
192.168.1.39 K8S-ノード1 
192.168.1.40 K8S-NODE2

1.3aptソースを設定する

aptソースをAliのソースとして設定し、sources.listの内容を次のように置き換えます。

deb http://mirrors.aliyun.com/ubuntu/ bionicmain制限付きユニバースmultiversedeb 
http://mirrors.aliyun.com/ubuntu/ bionic-securitymain制限付きユニバースmultiversedeb 
http://mirrors.aliyun.com/ubuntu / bionic-メイン制限付きユニバースマルチバース
debを更新しますhttp://mirrors.aliyun.com/ubuntu/bionic-提案されたメイン制限
付きユニバースマルチバース
debhttp://mirrors.aliyun.com/ubuntu/bionic-backportsメイン制限付きユニバースマルチバースdeb- src http://mirrors.aliyun.com/ubuntu/ bionicmain制限付きユニバースmultiversedeb 
-src http://mirrors.aliyun.com/ubuntu/ 
bionic -securitymain制限付きユニバースmultiversedeb -src http://mirrors.aliyun .com / ubuntu / bionic-メインの制限付きユニバースマルチバースを更新します
deb-src http://mirrors.aliyun.com/ubuntu/bionic-提案されたメイン制限付きユニバースマルチバース
deb-src http://mirrors.aliyun.com/ubuntu/bionic-backportsメイン制限付きユニバースマルチバース
root @ k8s-master:〜#apt-get update

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

2.1Dockerをインストールする

Dockerは3つのノードすべてにインストールする必要があります。次のコマンドを実行して、dockerをインストールします。

apt-getを更新&&カールソフトウェア・プロパティ共通のapt-輸送-HTTPS CA-証明書をインストールapt-getの
カール-fsSL https://download.docker.com/linux/ubuntu/gpgを| apt-キーアドオン-
アドオンのapt-リポジトリ\ 
  "debファイル[アーチ= AMD64] https://download.docker.com/linux/ubuntu \ 
  $(lsb_release -cs)\
  安定" 
apt-getを更新&& apt-getをドッキングウィンドウ-CEのインストール
猫> /etc/docker/daemon.json << EOF 
{ 
  "レジストリミラーを":[ "https://docker.mirrors.ustc.edu.cn"]、
  "実行-OPTSを":[ "native.cgroupdriver = systemd"]、
  "log-driver": "json-file"、
  "log-opts":{ 
    "max-size":
  
EOF
ます。mkdir -p /etc/systemd/system/docker.service.d 
systemctlデーモンリロード
systemctl再起動ドッカ

2.2バージョンを表示

root @ k8s-master:〜#docker version
クライアント:Docker 
 Engine-コミュニティバージョン:19.03.5 
 APIバージョン:1.40 
 Goバージョン:go1.12.12 
 Gitコミット:633a0ea838
 ビルド:Wed Nov 13 07:29:52 2019 
 OS / Arch: Linux / AMD64
 実験:偽
サーバー:ドッカーエンジン-コミュニティ
 エンジン:
  バージョン:19.03.5 
  APIバージョン:1.40(最小バージョン1.12)
  囲碁バージョン:go1.12.12 
  Gitはコミット:633a0ea838を
  内蔵:水曜日11月13日7時28分22秒2019を
  OS / Arch:linux / amd64
  実験的:false 
 containerd:
  バージョン:1.2.10
  GitCommit:b34a5c8af56e510852c35414db4c1f4fa6172339 
 runc:
  バージョン:1.0.0-rc8 + dev 
  GitCommit:3e425f80a8c931f88e6d94a8c831b9d5aa481657 docker 
 -init:
  バージョン:0.18.0 
  GitCommit:fec3683

3.k8sをインストールします

3.1安装beadm、kubelet、kubectl

インストールする3つのノードで次のコマンドを実行します。

curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | -アドオンのapt-キー
猫<< EOF> /etc/apt/sources.list.d/kubernetes.list 
DEB https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenialメイン
EOF 
apt-getを更新
apt-get install -y kubelet kubeadm kubectl 
apt-mark hold kubelet kubeadm kubectl

3.2バージョンを表示

root @ k8s-master:〜#kubectl version --short
クライアントバージョン:v1.16.3
サーバーバージョン:v1.16.3

4.k8sクラスターを初期化します

4.1初期化

マスターノードで次のコマンドを実行して、クラスターを初期化します。

kubeadm init --pod-network-cidr = 10.244.0.0 / 16 --image-repository Registry.cn-hangzhou.aliyuncs.com/google_containers --apiserver-advertise-address 192.168.1.38
mkdir -p $ HOME / .kube 
sudo cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config 
sudo chown $(id -u):$(id -g)$ HOME / .kube / config

4.2ポッドネットワークをインストールする

k8sはさまざまなネットワークプラグインをサポートしています。これがcalicoネットワークプラグインです。

kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml

5.ノードノードを追加します

5.1ハッシュ値を生成する

マスターノードで次のコマンドを実行して、cacertのハッシュ値を生成します。

root @ k8s-master:〜#openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2> / dev / null | openssl dgst -sha256 -hex | sed's /^.* // ' 
2e8e6c9991a0f90623593458dc1fe8ac04c6f636d60d33ca1917ed69755f3675

5.2ノードノードの追加

node1とnode2でそれぞれ次の結合コマンドを実行して、それらをクラスターに追加します。

kubeadm join --token cw6ahy.p8qkc7grox56kf2l 192.168.1.38:6443 --discovery-token-ca-cert-hash sha256:2e8e6c9991a0f90623593458dc1fe8ac04c6f636d60d33ca1917ed69755f3675

その中で、トークンは次のコマンドで取得できます。

root @ k8s-master:〜#kubeadmトークンリスト
トークンTTLの有効期限使用法説明追加グループ
cw6ahy.p8qkc7grox56kf2l 5h 2019-11-16T11:11:08Z authentication、signing「kubeadminit」によって生成されたデフォルトのブートストラップトークン。system:bootstrappers:kubeadm:default-node-token

有効期限が切れている場合は、次を再構築できますkubeadm token create

6.作成

6.1クラスターの表示

これまでに、単純なk8sクラスターが作成されました。

root @ k8s-master:〜#kubectl get node 
NAME STATUS ROLES AGE VERSION 
k8s-master Ready master 18h v1.16.3 
k8s-node1 Ready <none> 17h v1.16.3 
k8s-node2 Ready <none> 3h46m v1.16.3 
root @ k8s -master:〜#
root @ k8s-master:〜#
root @ k8s-master:〜#kubectl get pod -A -o wide 
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube 
-system calico - kube -controllers- 55754f75c-64lrg1 / 1実行中018h 192.168.235.195 k8s-master <なし> <なし> 
-system calico-node-d9qjv 1 / 1実行中017h 192.168.1.39 k8s-node1 <なし> <なし>
kube-system calico-node-h6nfh1 / 1実行中018h 192.168.1.38 k8s-master <none> <none> 
kube-system calico-node-pgjhf1 / 1実行中03h46m 192.168.1.40 k8s-node2 <none> <なし> 
kube-system coredns-67c766df46-ltz7b1 / 1実行中018h 192.168.235.193 k8s-master <なし> <なし>  
kube-system coredns-67c766df46-zprgv1 / 1実行中018h 192.168.235.194 k8s-master <なし> <なし>
kube-system etcd-k8s-master1 / 1実行中018h 192.168.1.38 k8s-master <なし> <none> 
kube-system kube-apiserver-k8s-master1 / 1実行中018h 192.168.1.38 k8s-master <none> <none>
kube-system kube-controller-manager-k8s-master1 / 1実行中018h 192.168.1.38 k8s-master <none> <none> 
kube-system kube-proxy-9wjqk1 / 1実行中03h46m 192.168.1.40 k8s-node2 <none> <none> 
kube-system kube-proxy-ckzw51 / 1実行中018h 192.168.1.38 k8s-master <none> <none> 
kube-system kube-proxy-xp82s1 / 1実行中017h 192.168.1.39 k8s-node1 <none> <none>
kube-system kube-scheduler-k8s-master1 / 1実行中018h 192.168.1.38 k8s-master <none> <none>

おすすめ

転載: blog.csdn.net/weixin_40805007/article/details/105772666