...
# hack/local-up-karmada.sh
Edge cluster deployment
Disable boot firewall
# systemctl disable firewalld
Install Docker
# yum install wget container-selinux -y
# yum erase runc -y
# rpm -ivh containerd.io-1.2.6-3.3.el7.x86_64.rpm
Note: The above steps do not need to be operated in centos7
# update-alternatives --set iptables /usr/sbin/iptables-legacy
# yum install -y yum-utils device-mapper-persistent-data lvm2 && yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && yum makecache
# yum -y install docker-ce
# systemctl enable docker.service && systemctl start docker
Configure yum source
[root@kubeEdge-cloud ~]# 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
Install KubeAdm, KubeCtl
# yum makecache
# yum install kubelet-1.21.0-0.x86_64 kubeadm-1.21.0-0.x86_64 kubectl-1.21.0-0.x86_64
Configure the kernel parameters
[root@kubeEdge-cloud ~]# cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOF
[root@kubeEdge-cloud ~]# sysctl --system
[root@kubeEdge-cloud ~]# modprobe br_netfilter
[root@kubeEdge-cloud ~]# sysctl -p /etc/sysctl.d/k8s.conf
Load ipvs related kernel modules
If you reboot, you need to reload (it can be written in /etc/rc.local to automatically load at boot)
[root@ke-cloud ~]# modprobe ip_vs
[root@ke-cloud ~]# modprobe ip_vs_rr
[root@ke-cloud ~]# modprobe ip_vs_wrr
[root@ke-cloud ~]# modprobe ip_vs_sh
[root@ke-cloud ~]# modprobe nf_conntrack_ipv4
Check whether the loading is successful
[root@ke-cloud ~]# lsmod | grep ip_vs
Pull Mirror
[root@kubeEdge-cloud ~]# kubeadm config images list
[root@kubeEdge-cloud ~]# kubeadm config images pull
Install Kubelet
1)Get docker cgroups
# DOCKER_CGROUPS=$(docker info | grep 'Cgroup Driver' | cut -d' ' -f4)
# echo $DOCKER_CGROUPS
cgroupfs
2)Configure cgroups for kubelet
# cat >/etc/sysconfig/kubelet<<EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=$DOCKER_CGROUPS --pod-infra-container-image=k8s.gcr.io/pause:3.5"
EOF
3)Start kubelet
# systemctl daemon-reload
# systemctl enable kubelet && systemctl start kubelet
Initialize the cluster
# kubeadm init --kubernetes-version=v1.17.9 \
--pod-network-cidr=10.244.0.0/16 \
--apiserver-advertise-address=192.168.0.238 \
--ignore-preflight-errors=Swap
Install network plugin
1)Download the yaml file of flannel plug-in.
# cd ~ && mkdir flannel && cd flannel
# curl -O https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
2)Startup
# kubectl apply -f ~/flannel/kube-flannel.yml
Log in to the karmada-host node and join the multi-cluster (the karmada.config below refers to the kubeconfig of the existing k8s cluster)
# hack/create-cluster.sh member1 $HOME/.kube/karmada.config
# go get github.com/karmada-io/karmada/cmd/karmadactl
# karmadactl join cluster01--cluster-kubeconfig=$HOME/.kube/karmada.config
Nginx application deployment
- Create nginx deployment
Create the nginx propagation policy
East-West Edge-to-Edge Networking
...