目 录CONTENT

文章目录

kubernetes第二讲:快速搭建

koniaoer
2023-12-28 / 0 评论 / 1 点赞 / 182 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

kubernetes云平台搭建

1.搭建准备

主机名 配置 网络

mater 8h8c 60g 192.168.110.130

node 8h8c 60g 192.168.110.131

2.前期配置

(以下未标注为所有主机都要操作,标题后标注为标注的主机)

更新yun源

bash <(curl -sSLk https://cdn.b52m.cn/static/linuxsource.sh)

配置主机名,网络,互相添加hosts

清空防火墙和关闭selinux和swap

iptables -F
iptables -t nat -F
setenforce 0
sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config
swapoff -a
vi /etc/fstab

注释swap的挂载

修改内核参数

cat > /etc/sysctl.conf << EOF
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
modprobe br_netfilter
sysctl -p

显示以上配置完成

3.安装Docker

Docker入门-口鸟人 (koniaoer.top)

bash <(curl -sSLk https://blog.koniaoer.top/upload/docker-v3.sh)

修改docker配置文件

cat > /etc/docker/daemon.json << EOF
{
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m",
        "max-file": "10"
    },
    "registry-mirrors": ["https://dh.b52m.cn"]
}
EOF
systemctl daemon-reload
systemctl restart docker
systemctl enable docker

4.开始搭建

添加kubernetes安装源

cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/repodata/repomd.xml.key
EOF

安装kubeadm、kubelet、kubectl(ps:k8s版本时常更新,本博客使用1.30版本是目前最新,如果无法搭建成功,请大家更换版本和安装源版本)

yum install -y kubelet-1.30.0 kubeadm-1.30.0 kubectl-1.30.0 --disableexcludes=kubernetes
systemctl enable kubelet  --now

修改kubelet容器运行时

#生成containerd 的默认配置文件
containerd config default > /etc/containerd/config.toml
#修改默认配置文件
# 原文本 
sandbox_image = "registry.k8s.io/pause:3.6"
# 修改为 这是国内镜像站 若你使用的国外机器 可不进行修改
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"
# 原文本
SystemdCgroup = false
# 修改为
SystemdCgroup = true
systemctl restart containerd
containerd config default | \
sed -e 's|registry\.k8s\.io/pause:[0-9.]\+|k8s\.b52m\.cn\/pause:3.9|g' \
    -e 's/SystemdCgroup = .*/SystemdCgroup = true/' \
    -e 's/\[plugins."io.containerd.grpc.v1.cri".registry.mirrors\]/&\n        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]\n          endpoint = ["https:\/\/dh\.b52m\.cn"]\n/' \
    -e 's/\[plugins."io.containerd.grpc.v1.cri".registry.mirrors\]/&\n        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]\n          endpoint = ["https:\/\/k8s\.b52m\.cn"]\n/' \
    -e '/^\s*$/d' | \
sudo tee /etc/containerd/config.toml
crictl config runtime-endpoint /var/run/containerd/containerd.sock
crictl config image-endpoint /var/run/containerd/containerd.sock
systemctl restart containerd
crictl  pull nginx:latest
crictl  images

拉取成功代表目前一起配置正常

5.master操作

注意:这里--apiserver-advertise-address为master的IP,一定要修改!!!

kubeadm init --kubernetes-version=v1.30.0 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.110.130 --image-repository=registry.aliyuncs.com/google_containers
  • --kubernetes-version: 用于指定我们要安装的kubernetes的版本

  • --image-repository: 用于指定我们要拉取镜像的仓库

  • --service-cidr: svc的ip段

  • --pod-network-cidr: pod的ip段,flannel, 10.244.0.0/16

默认情况下,我们安装的kube-apiserver、kube-scheduler、kube-controller-manager、kube-proxy、etcd会全部以容器的形式安装

如果上面ip没有修改,或者出错了请清理缓存,重新执行

#执行错误
kubeadm reset -f
rm -rf /etc/kubernetes/*
rm -rf /var/lib/kubelet/*
rm -rf /var/lib/etcd/*

执行成功后,创建kube目录,并设置环境变量

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile

检测master节点

kubectl get nodes

/

/

/

/

/

/

/

/

/

/

/

/

6.添加node节点

在master节点中获取token

kubeadm token create --print-join-command

把获取到的token直接粘贴入node节点中(如图)

可以看到新加入的node节点,但是是处于未准备状态,需要加载一个网络插件

git官网

mkdir /calico
cd /calico/
wget https://github.com/projectcalico/calico/releases/download/v3.24.2/release-v3.24.2.tgz

koNer节点

mkdir /calico
cd /calico/
wget https://down.b52m.cn/d/test/release-v3.24.2.tgz -O release-v3.24.2.tgz

在需要加载的节点中运行

tar -xvf release-v3.24.2.tgz 
cd release-v3.24.2/images

ctr -n k8s.io images import calico-cni.tar 
ctr -n k8s.io images import calico-node.tar
ctr -n k8s.io images import calico-dikastes.tar
ctr -n k8s.io images import calico-pod2daemon.tar
ctr -n k8s.io images import calico-flannel-migration-controller.tar
ctr -n k8s.io images import calico-typha.tar
ctr -n k8s.io images import calico-kube-controllers.tar

在master运行(加载calico文件)

kubectl apply -f calico.yaml

再检测

kubectl  get  nodes

可以看到master和node节点已经处于准备状态了

7.kubectl命令补全

echo "source <(kubectl completion bash)" >> /etc/profileb
source /etc/profile
yum -y install bash-completion
bash
source /etc/profile

使用kubectl desc然后按top,查看是否能补全为kubectl describe

1

评论区