ubuntu20.04部署k8s
三、master节点初始化。四、部署calico网络。
·
一、环境准备
#1.关闭 Swap 内存,配置完成建议重启一下
vim /etc/fstab #注释下面相似的一行
#/swapfile none swap sw 0 0
#2.配置免密登录,要求master节点可以直接免密登录工作节点
参考https://blog.csdn.net/Merry_clown/article/details/139736511?spm=1001.2014.3001.5502
#3.安装 docker
apt install docker.io -y
#4.配置docker配置文件
cat << EOF >> /etc/docker/daemon.json
{
"registry-mirrors": ["https://ej3odski.mirror.aliyuncs.com"],
"exec-opts": [ "native.cgroupdriver=systemd" ]
}
EOF
#重新启动docker
systemctl daemon-reload && systemctl restart docker
二、部署k8s
#1.安装ssl传输
apt update && apt install -y apt-transport-https
#2.下载 gpg 密钥
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
#3.添加 k8s 镜像源
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
#4.下载 kubectl,kubeadm以及 kubelet,最新版使用contained
#apt update && apt install -y kubelet kubeadm kubectl
apt-get -y install kubelet=1.23.6-00 kubeadm=1.23.6-00 kubectl=1.23.6-00
三、master节点初始化
#1.初始化 master 节点
kubeadm init \
--apiserver-advertise-address=192.168.100.132 \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16
#--apiserver-advertise-address: k8s 中的主要服务apiserver的部署地址,填自己的master节点ip
#--image-repository: 拉取的 docker 镜像源,因为初始化的时候kubeadm会去拉k8s的很多组件来进行部署,所以需要指定国内镜像源,下不然会拉取不到镜像。
#--pod-network-cidr: 这个是 k8s 采用的节点网络,因为我们将要使用calico作为 k8s 的网络,所以这里填10.244.0.0/16就好
#--kubernetes-version: 这个是用来指定你要部署的 k8s 版本的,一般不用填,不过如果初始化过程中出现了因为版本不对导致的安装错误的话,可以用这个参数手动指定。
#--ignore-preflight-errors: 忽略初始化时遇到的错误,比如说我想忽略 cpu 数量不够 2 核引起的错误,就可以用--ignore-preflight-errors=CpuNum。错误名称在初始化错误时会给出来。
#2.看到如下界面,说明初始化成功
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.168.100.132:6443 --token grbfv4.tyalbpkljc17y53o \
--discovery-token-ca-cert-hash sha256:b83956f3040a5a622a071294188a1268afcdb9ffed8a2c8849a5f9e9e5c84507
#复制kubeadm join开头的命令,工作节点加入时要用到
#如果不慎遗失该命令,可以在master节点使用kubeadm token create --print-join-command命令重新生成
#如果在初始化过程中出现了任何Error导致初始化终止了,使用kubeadm reset重置之后再重新进行初始化。
#3.工作节点加入执行以上命令即可
kubeadm join 192.168.100.132:6443 --token grbfv4.tyalbpkljc17y53o \
--discovery-token-ca-cert-hash sha256:b83956f3040a5a622a071294188a1268afcdb9ffed8a2c8849a5f9e9e5c84507
#4.工作节点执行kubectl get nodes 出现以下问题
#The connection to the server localhost:8080 was refused - did you specify the right host or port?
#解决办法:拷贝master节点的/etc/kubernetes/admin.conf 到工作节点的相同位置
scp /etc/kubernetes/admin.conf 工作节点ip:/etc/kubernetes/
#工作节点执行以下命令即可
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
四、部署calico网络
#1.下载calico.yml
curl -O https://docs.tigera.io/archive/v3.25/manifests/calico.yaml
#2.#修改calico.yaml中的CALICO_IPV4POOL_CIDR 与pod-network-cidr一样
vim calico.yml
- name: CALICO_IPV4POOL_CIDR
value: "10.244.0.0/16" #取消注释,修改内容
#3.修改镜像的源路径,避免下载过慢导致失败,本地上传镜像最好,本文章有calico镜像包
sed -i 's#docker.io/##g' calico.yaml
#4.下载calico镜像失败,可以上传本地镜像,dcoker导入即可,本文有calico.tar
#注意全部节点都需要上传导入镜像
docker load -i calico.tar
#5.k8s执行calico.yaml文件部署网络
kubectl apply -f calico.yaml
#6.查看calico网络部署情况,等待status状态都是 running 即成功
kubectl get all -n kube-system
五、新加入节点
#1.查看controlPlaneEndpoint时否为空,为空补齐
kubectl -n kube-system get cm kubeadm-config -oyaml
kubernetesVersion: v1.23.17
controlPlaneEndpoint: 192.168.100.132:6443
#2.修改加入controlPlaneEndpoint
kubectl -n kube-system edit cm kubeadm-config
#3.查看集群加入命令,worker节点专用
kubeadm token create --print-join-command
kubeadm join 192.168.126.20:6443 --token mohkc1.d8y7uy2pvdkohbxy \
--discovery-token-ca-cert-hash sha256:10f6069ef4521481aa956b55130aab7a9c3494dff82d0566c5ce9baece9cd7f8
#4.新加入master节点,生成key
kubeadm init phase upload-certs --upload-certs
kubeadm join 192.168.126.20:6443 --token mohkc1.d8y7uy2pvdkohbxy \
--discovery-token-ca-cert-hash sha256:10f6069ef4521481aa956b55130aab7a9c3494dff82d0566c5ce9baece9cd7f8 --control-plane --certificate-key 7a670e92aaf5bdfd45f9ffde01911f9cc237c30ae808ea0e911881f19df80f62 --v=5
#5.新的节点加入需要部署网络插件,需要导入calico镜像
更多推荐
已为社区贡献1条内容
所有评论(0)