本課程将詳細介紹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