目次
第6に、ブリッジされたIPv4トラフィックをiptablesに渡すチェーン:
8.すべてのノードにDocker / kubeadm / bubeletをインストールします
kubeadmのデプロイ方法の概要
Kubeadmは、公式コミュニティによってリリースされたkubernetesクラスターを迅速にデプロイするためのツールです。このツールは、次の2つの手順でKubernetesクラスターのデプロイを完了することができます。
まず、マスターノードkubeadminitを作成します
次に、ノードノードを現在のクラスターに参加させます$ kubeadm join <マスターノードのIPとポート>
インストール要件
開始する前に、Kubernetesクラスターマシンのデプロイは、Kubernetesクラスターをデプロイするための前提条件である次の条件を満たす必要があります。そうでない場合、インストールは成功しません。
1 1台以上のマシン、オペレーティングシステムCentOS7.x-86_x64
2ハードウェア構成:2GB以上のRAM、2CPU以上のCPU、30GB以上のハードディスク
3クラスター内のすべてのマシン間のネットワーク通信
4外部ネットワークにアクセスできます。ミラーを引く必要があります
5スワップパーティションを禁止する
究極の目標
1すべてのノードにDockerとkubeadmをインストールします
2Kubernetesマスターをデプロイする
3コンテナネットワークプラグインをデプロイします
4 Kubernetesノードをデプロイし、ノードをKubernetesクラスターに追加します
組織
この場合、クラスターkubernetesをデプロイするには3台のサーバーが必要です。ここでは、仮想マシンの展開を使用します。各仮想マシンの対応する役割は次のとおりです
k8s-master 192.168.30.128
k8s-node1 192.168.30.129
k8s-node2 192.168.30.130
システムの初期化
ファイアウォールをオフにします
systemctl stop firewalld
systemctl disable firewalld
2つの近いselinux
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0
3つの近いスワップ
swapoff -a #临时
vim /etc/fstab #永久 注释掉文件中swap行
4つはホスト名を設定します
hostnamectl set-hostname xxx # 不同虚拟机设置不同的主机名
5つのホストをマスターに追加します。
cat >> /etc/hosts << EOF
192.168.30.128 k8s-master
192.168.30.129 k8s-node1
192.168.30.130 k8s-node2
EOF
第6に、ブリッジされたIPv4トラフィックをiptablesに渡すチェーン:
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system # 生效
7回の同期
yum install ntpdate -y
ntpdate time.windows.com
8.すべてのノードにDocker / kubeadm / bubeletをインストールします
KubernetesのデフォルトのCRI(コンテナランタイム)はDockerであるため、最初にDockerをインストールします。
- 1Dockerをインストールします
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce-18.06.1.ce-3.el7
# Step 4: 开启Docker服务
sudo service docker start
- 2 Alibaba Cloudyumソフトウェアソースを追加します
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://gk0lyeuc.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
- 3kubernetesソースを追加します
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
- 4 kubeadm、kubelet、kubectlをインストールします
yum install -y kubelet-1.16.0 kubeadm-1.16.0 kubectl-1.16.0
systemctl enable kubelet
- 5Kubernetesマスターをデプロイする
kubeadm init --apiserver-advertise-address=192.168.30.128 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
中国ではデフォルトのプルミラーアドレスk8s.gcr.ioにアクセスできないため、ここでAlibabaCloudミラーウェアハウスアドレスを指定します。
5.1kubectlツールを使用する
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 nodes
- 6つのインストールポッドネットワークプラグイン
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- 7人がKubernetesノードに参加
192.168.30.129/130(ノード)で、クラスターに新しいノードを追加し、kubeadminitで出力されたkubeadmjoinコマンドを実行します。
kubeadm join 192.168.30.128:6443 --token esce21.q6hetwm8si29qxwn \
--discovery-token-ca-cert-hash sha256:00603a05805807501d7181c3d60b478788408cfe6cedefedb1f97569708be9c5
- 8つのテストKubernetesクラスター
Kubernetesクラスターにポッドを作成し、正常に実行されていることを確認します。
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
訪問アドレス:http:// NodeIP:Port
ご覧のとおり、kubeadmはクラスターを正常に構築し、ポッドノードを作成し、通常どおりアクセスできます。