Kubernetes的部署与使用

MyKubernetes

介绍

Kubernetes的安装,学习,测试

安装

通过kuboard安装: https://kuboard.cn/install/v3/install.html

设置虚拟机IP

vi /etc/sysconfig/network-scripts/ifcfg-ens33

image-20251023152849569

检查hostNAME

# 在 master 节点和 worker 节点都要执行
cat /etc/redhat-release

# 此处 hostname 的输出将会是该机器在 Kubernetes 集群中的节点名字
# 不能使用 localhost 作为节点的名字
hostname

# 请使用 lscpu 命令,核对 CPU 信息
# Architecture: x86_64    本安装文档不支持 arm 架构
# CPU(s):       2         CPU 内核数量不能低于 2
lscpu

# 修改 hostname
hostnamectl set-hostname your-new-host-name
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "127.0.0.1   $(hostname)" >> /etc/hosts


ip route show
ip address

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

快速安装

vi /etc/yum.repos.d/Centos-Base.repo
yum clean all
yum makecache
yum repolist
# 配置yum源

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://mirrors.aliyun.com/centos-vault/7.8.2003/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
baseurl=http://mirrors.aliyun.com/centos-vault/7.8.2003/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
baseurl=http://mirrors.aliyun.com/centos-vault/7.8.2003/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
baseurl=http://mirrors.aliyun.com/centos-vault/7.8.2003/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
# 在 master 节点和 worker 节点都要执行
# 最后一个参数 1.19.5 用于指定 kubenetes 版本,支持所有 1.19.x 版本的安装
# 腾讯云 docker hub 镜像
# export REGISTRY_MIRROR="https://mirror.ccs.tencentyun.com"
# DaoCloud 镜像
# export REGISTRY_MIRROR="http://f1361db2.m.daocloud.io"
# 华为云镜像
# export REGISTRY_MIRROR="https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com"
# 阿里云 docker hub 镜像
export REGISTRY_MIRROR="https://mirror.ccs.tencentyun.com"
curl -sSL https://kuboard.cn/install-script/v1.19.x/install_kubelet.sh | sh -s 1.19.5

初始化master

# 只在 master 节点执行
# 替换 x.x.x.x 为 master 节点实际 IP(请使用内网 IP)
# export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,如果要继续安装过程,请重新执行此处的 export 命令
export MASTER_IP=192.168.0.105
# 替换 apiserver.demo 为 您想要的 dnsName
export APISERVER_NAME=fubo.demo
# Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
export POD_SUBNET=10.100.0.1/16
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.19.x/init_master.sh | sh -s 1.19.5

watch kubectl get pod -n kube-system -o wide
kubectl get nodes -o wide

报错

image-20251023163529781

kubectl describe pod calico-node-l9btl -n kube-system
vim /etc/docker/daemon.json
    "registry-mirrors": [
    "https://registry.docker-cn.com",
"https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com",
"http://f1361db2.m.daocloud.io",
    "https://mirror.ccs.tencentyun.com",
        "https://ung2thfc.mirror.aliyuncs.com",
        "https://registry.docker-cn.com",
        "http://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://mirror.baidubce.com",
        "https://ccr.ccs.tencentyun.com",
        "https://dockerproxy.com",
        "http://f1361db2.m.daocloud.io",
        "https://docker.nju.edu.cn",
        "https://docker.m.daocloud.io",
        "https://docker.mirrors.sjtug.sjtu.edu.cn",
        "https://docker.nju.edu.cn"
    ]
    
systemctl daemon-reload
systemctl restart docker
docker pull calico/cni:v3.13.1

初始化worker

# 获取token,master节点
kubeadm token create --print-join-command
---
kubeadm join fubo.demo:6443 --token en3v0m.z6hjwwij41ggnipv     --discovery-token-ca-cert-hash sha256:7bdd5661caeef42046a9cc76cf06b0ee917962728d444128bc38179466677a4c 
---

# 只在 worker 节点执行
# 替换 x.x.x.x 为 master 节点的内网 IP
export MASTER_IP=192.168.0.105
# 替换 apiserver.demo 为初始化 master 节点时所使用的 APISERVER_NAME
export APISERVER_NAME=fubo.demo
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts

# 替换为 master 节点上 kubeadm token create 命令的输出
kubeadm join fubo.demo:6443 --token en3v0m.z6hjwwij41ggnipv     --discovery-token-ca-cert-hash sha256:7bdd5661caeef42046a9cc76cf06b0ee917962728d444128bc38179466677a4c 

# 如果报错,则删除掉重新执行KUBEADM join
# 主节点
kubectl drain k8sworker --ignore-daemonsets
kubectl delete node k8sworker

# worker节点
 sudo kubeadm reset -f
#  sudo rm -rf /etc/kubernetes/ /var/lib/kubelet/ /var/lib/etcd/
 sudo systemctl stop kubelet
sudo kubeadm join fubo.demo:6443 --token en3v0m.z6hjwwij41ggnipv --discovery-token-ca-cert-hash sha256:7bdd5661caeef42046a9cc76cf06b0ee917962728d444128bc38179466677a4c

报错:节点一直not ready

# worker节点查看日志
systemctl status kubelet -l
# worker节点上手动拉取calico/cni:v3.13.1
docker pull calico/cni:v3.13.1

image-20251023170710744

安装kuboard

kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
watch kubectl get pods -n kuboard
# 查看信息
kubectl describe pod kuboard-etcd-jhb5s -n kuboard

报错:镜像拉取失败

image-20251023171351012

# 拉去失败
# 从能拉去的机器
docker save -o etcd-host.tar etcd-host:3.4.16-2
docker load -i etcd-host.tar

# 还是报错
kubectl get deployments --all-namespaces
kubectl edit deployment kuboard-v3 -n kuboard

imagePullPolicy: Always --> IfNotPresent
# 更新/etc/docker/dameon.json文件 解决问题!!!
docker pull eipwork/etcd-host:3.4.16-2
docker pull  eipwork/kuboard:v3
访问 Kuboard
在浏览器中打开链接 http://192.168.0.106:30080/

输入初始用户名和密码,并登录

用户名: admin
密码: Kuboard123

image-20251023191356099

posted @ 2026-01-12 20:25  付十一。  阅读(3)  评论(0)    收藏  举报