Kubernetes的部署与使用
MyKubernetes
介绍
Kubernetes的安装,学习,测试
安装
通过kuboard安装: https://kuboard.cn/install/v3/install.html
设置虚拟机IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33

检查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
报错

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

安装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
报错:镜像拉取失败

# 拉去失败
# 从能拉去的机器
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

浙公网安备 33010602011771号