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アドレスが変更された場合、クラスターが使用できなくなる可能性があります
yum install -y wget vim net-tools epel-release
swapoff -a
# 完全に無効にし、開く/etc/fstabはスワップラインをコメントアウトしました。
sed -i 's/.*swap.*/#&/'/etc/fstab
# 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
systemctl disable firewalld
systemctl stop firewalld
## デフォルトのソースを構成する
## バックアップ
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
コードをコピーする
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
cat >/etc/docker/daemon.json <コードをコピーする
手順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
## クラスタの初期化に必要な画像と対応する依存バージョン番号を表示します。リストされているのは、ダウンロードする必要のある画像です。
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
## 構成/etc/プロファイルファイル、特にhttpsは、xxxを自分または会社のプロキシアドレスに置き換えます
http_proxy=xxx
https_proxy=xxx
HTTP_PROXY=xxx
HTTPS_PROXY=xxx
コードをコピーする
yum -y install kubelet kubeadm kubectl kubernetes-cni
systemctl enable kubelet && systemctl start kubelet
## マスターノードは以下を実行します。
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
コードをコピーする
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
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
コードをコピーする
他のノードは実行します:
kubeadm join 10.1.69.101:6443--token ou5pvo.qseafc4s8licblzy \
- - discovery-token-ca-cert-hash sha256:de9c10f11c50c074f212698b9d514fc12a9c1c4ffe70961aff89ac5e585f0663
sudo kubeadm reset
アクセス制御を構成します(それ以外の場合は、あらゆる種類の不正アクセス)
K8Sは、バージョン1.6以降のRBACアクセス制御ポリシーを有効にしました
vim adddashboard-rbac.yamlファイル。内容は次のとおりです。
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
保存のエクスポート時にイメージタグが指定されていない
kubeadm initの場合、apiserverのアドレスが間違っています
echo "1">/proc/sys/net/bridge/bridge-nf-call-iptables
kubeadmリセット、ノードのリセット、再参加
Recommended Posts