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>