节点分配:
master |
192.168.139.12 |
node-1 |
192.168.139.13 |
node-2 |
192.168.139.14 |
基本配置:
传密钥
时间同步
修改时区
修改主机名
hosts解析
安装:
apt-get update
apt install -y apt-transport-https gnupg gnupg2 gnupg1 curl lsb-release
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat </etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet=1.24.1-00 kubeadm=1.24.1-00 kubectl=1.24.1-00
关闭防火墙
service iptables stop
systemctl stop firewalld.service
ufw disable
iptables -F
关闭swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
桥接的ipv4流量转到iptables:
cat <
安装containerd
apt install containerd -y
systemctl start containerd
systemctl enable containerd
mkdir -p /etc/containerd/
containerd config default > /etc/containerd/config.toml
sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml
systemctl restart containerd
拉取镜像
kubeadm config images pull --kubernetes-version=v1.24.1 --image-repository=registry.aliyuncs.com/google_containers
初始化集群
kubeadm init --image-repository=registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf
安装Calico:
kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
wget https://docs.projectcalico.org/manifests/custom-resources.yaml
修改文件第13行,修改为使用kubeadm init ----pod-network-cidr对应的IP地址段
# vim custom-resources.yaml
......
11 ipPools:
12 - blockSize: 26
13 cidr: 10.244.0.0/16 #把这里Ip复制过去
14 encapsulation: VXLANCrossSubnet
kubectl apply -f custom-resources.yaml
监视calico-sysem命名空间中pod运行情况
# watch kubectl get pods -n calico-system
删除 master 上的 taint(取消污点)
# kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl get pods -n calico-system
kubectl get pods -n kube-system
安装calicoctl客户端(还是在master操作)
注意这里的版本要和上面一样
curl -L https://github.com/projectcalico/calico/releases/download/v3.24.5/calicoctl-linux-amd64 -o calicoctl
安装calicoctl
# mv calicoctl /usr/bin/
为calicoctl添加可执行权限
# chmod +x /usr/bin/calicoctl
查看添加权限后文件
# ls /usr/bin/calicoctl
/usr/bin/calicoctl
查看calicoctl版本
# calicoctl version
Client Version: v3.24.5
Git commit: 220d04c94
Cluster Version: v3.24.5
Cluster Type: typha,kdd,k8s,operator,bgp,kubeadm
DATASTORE_TYPE=kubernetes KUBECONFIG=~/.kube/config calicoctl get nodes
加入worker节点
kubeadm join 192.168.139.12:6443 --token ae9hzw.8gttophscszpqxc2 \
--discovery-token-ca-cert-hash sha256:db3ed5ff517e8d7c33fdbbd5acee068f56b42376c339da441e614df690ef0ee0