天天看點

kubeadm部署叢集

本課程将詳細介紹k8s所有指令,以及指令的go源碼分析,學習知其然,知其是以然

————————————————

1配置節點

hostnamectl set-hostname master01

hostnamectl set-hostname node01

hostnamectl set-hostname node02

vi /etc/hosts

192.168.198.154 master01

192.168.198.155 node01

192.168.198.156 node02

scp /etc/hosts root@node01:/etc/hosts

scp /etc/hosts root@node02:/etc/hosts

時間同步

yum install -y ntpdate

ntpdate ntp.api.bz

關閉防火牆

iptables -F

systemctl stop firewalld

systemctl disable firewalld

配置核心

# 開啟路由轉發功能以及iptables的過濾政策。

cat <<EOF > /etc/sysctl.d/k8s.conf

#開啟iptables中ipv6的過濾規則

net.bridge.bridge-nf-call-ip6tables = 1

#開啟ipv4的過濾規則

net.bridge.bridge-nf-call-iptables = 1

#開啟伺服器的路由轉發功能

net.ipv4.ip_forward = 1

EOF

# 執行指令使修改生效。

modprobe br_netfilter

sysctl -p /etc/sysctl.d/k8s.conf

關閉selinux

setenforce 0

vi /etc/selinux/config

scp /etc/selinux/config root@node01:/etc/selinux/cofnig

scp /etc/selinux/config root@node02:/etc/selinux/cofnig

關閉swap

swapoff -a

vi /etc/fstab

2配置yun倉庫

# 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

yum-config-manager --disable docker-ce-edge

yum-config-manager --disable docker-ce-test

# Step 3: 更新并安裝 Docker-CE

sudo yum makecache fast

sudo yum -y install docker-ce

# Step 4: 開啟Docker服務

systemctl start docker

systemctl enable docker

# Step 5: 更改cgroup driver為systemd,并且為docker添加鏡像加速。

cat > /etc/docker/daemon.json <<EOF

{

"exec-opts": ["native.cgroupdriver=systemd"],

"registry-mirrors": ["https://jzbtfwo9.mirror.aliyuncs.com"]

}

EOF

systemctl daemon-reload

systemctl restart docker

3配置k8s倉庫

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

4安裝相關元件

yum -y install kubeadm kubelet kubernetes-cni

systemctl enable kubelet

5拉取鏡像

for i in `kubeadm config images list`; do

imageName=${i#k8s.gcr.io/}

docker pull registry.aliyuncs.com/google_containers/$imageName

docker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName

docker rmi registry.aliyuncs.com/google_containers/$imageName

done;

6初始化master節點

kubeadm init --kubernetes-version=v1.17.0 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.198.154

#--kubernetes-version指明要下載下傳的鏡像版本

#--pod-network-cidr 指明網絡的子網路遮罩,此處使用flannel模型的子網路遮罩

#--apiserver-advertise-address 指明與master結點綁定的ip

配置kubect config

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

7配置flannel網絡

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

# 下載下傳flannel的yaml檔案

kubectl apply -f kube-flannel.yml

# 執行這個檔案生成flannel的pods

8添加節點

kubeadm join 192.168.217.129:6443 --token vtqzkt.j0u1chomafn1offd --discovery-token-ca-cert-hash sha256:c25549dc8457677752b8d1b0547acfa8be742cbd5734802b6d2e3e9a6e7e1b73

繼續閱讀