首页 > 其他分享 >Kubernetes从入门到精通 集群安装

Kubernetes从入门到精通 集群安装

时间:2023-04-30 11:22:21浏览次数:53  
标签:入门 Kubernetes master 镜像 集群 docker kube 节点 flannel

kubernetes集群安装

一 准备集群镜像
从阿里云镜像仓库拉镜像 标签改名
# 在安装kubernetes集群之前,必须要提前准备好集群需要的镜像,所需镜像可以通过下面命令查看
[root@master ~]# kubeadm config images list

# 下载镜像
# 此镜像kubernetes的仓库中,由于网络原因,无法连接,下面提供了一种替换方案
images=(
    kube-apiserver:v1.17.4
    kube-controller-manager:v1.17.4
    kube-scheduler:v1.17.4
    kube-proxy:v1.17.4
    pause:3.1
    etcd:3.4.3-0
    coredns:1.6.5
)

for imageName in ${images[@]};do
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
    docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName 
done

二 集群初始化

1 下面的操作只需要在master节点上执行即可
# 创建集群
[root@master ~]# kubeadm init \
    --apiserver-advertise-address=192.168.117.100 \
    --kubernetes-version=v1.17.4 \
    --service-cidr=10.96.0.0/12 \
    --pod-network-cidr=10.244.0.0/16
# 创建必要文件
[root@master ~]# mkdir -p $HOME/.kube
[root@master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubernetes-version k8s 版本

pod-network-cidr pod网络

service-cidr service网络

apiserver-advertise-address master节点的ip地址

2 node节点上执行
kubeadm join 192.168.117.100:6443 --token ijk3en.o8u3d1omlyh8oxao     --discovery-token-ca-cert-hash sha256:e6b0e0e3585fd9d36a3f7df681626792e52ead98530a93f96a3979a308c92a15

注意上面的命令是在master节点上 kubeadm 初始完成打印出来的!!!!

3 在master上查看节点信息
[root@master ~]# kubectl get nodes
NAME    STATUS   ROLES     AGE   VERSION
master  NotReady  master   6m    v1.17.4
node1   NotReady   <none>  22s   v1.17.4
node2   NotReady   <none>  19s   v1.17.4

三 网络插件安装

kubernetes支持多种网络插件,比如flannel、calico、canal等等,任选一种使用即可,本次选择flannel

1 安装网络插件,只在master节点操作即可

1) 安装kube-flannel.yml我这里采用的是kx上网的方式直接安装 当然也可以去网上直接下
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

2) 修改kube-flannel.yml里面的镜像源为国内镜像源
vi /root/kube-flannel.yml
#将xxx.io 替换为quay.mirror.qiniu.com 如下图所示

3) 使用配置文件启动fannel
kubectl apply -f kube-flannel.yml
4) 稍等片刻,再次查看集群节点的状态
kubectl get nodes

 

如果如下图所示有NotReady 很明显有问题

5) NotReady问题解决
a 用以下语句查看原因
 journalctl -f -u kubelet.service

若原因是: cni.go:237] Unable to update cni config: no networks found in /etc/cni/net.d

#创建目录给flannel做配置文件
mkdir -p /etc/cni/net.d
#编写配置文件
vim /etc/cni/net.d/10-flannel.conf

输入

{
 "name":"cbr0",
 "cniVersion":"0.3.1",
 "type":"flannel",
 "deledate":{
    "hairpinMode":true,
    "isDefaultGateway":true
  }

}
b 使用kubeadm reset重置集群 在master节点之外的节点进行操作!!!!!
#在master节点之外的节点进行操作
kubeadm reset
systemctl stop kubelet
systemctl stop docker
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /etc/cni/
ifconfig cni0 down
ifconfig flannel.1 down
ifconfig docker0 down
ip link delete cni0
ip link delete flannel.1
##重启kubelet
systemctl restart kubelet
##重启docker
systemctl restart docker
c 重启kubelet和docker
# 重启kubelet
systemctl restart kubelet
# 重启docker
systemctl restart docker

使用配置文件启动fannel

kubectl apply -f kube-flannel.yml

 

注意以上解决方案,我没有亲测过,来源于网络。

究极解决方案还是,建议 kx上网,不用国内的镜像源,一路绿灯

 

 

2 常用命令

kubectl apply -f kube-flannel.yml
kubectl get pods -n kube-system -o wide

 

 

 

标签:入门,Kubernetes,master,镜像,集群,docker,kube,节点,flannel
From: https://www.cnblogs.com/mangoubiubiu/p/17365059.html

相关文章

  • Mysql入门
    Mysql入门数据库介绍数据库概念数据库本质上是一个文件系统,是存储数据的仓库。数据库作用数据库用来管理用户的数据,方便用户对数据进行增删改查的一些操作。数据库分类数据库分为关系型数据库(SQL)和非关系型数据库(NOSQL)常见的关系型数据库:MySQL、SQLServer、Oracle......
  • Nginx 入门实战(2)--简单使用
    本文主要介绍Nginx的实际使用,文中所使用到的软件版本:Centos7.9.2009、Nginx1.22.1。1、环境准备这里主要演示使用Nginx代理Http及TCP应用,环境信息如下:主机用途Http端口TCP端口10.49.196.30部署Http、TCP应用8080909010.49.196.31部署Http、TCP......
  • Mysql入门
    Mysql入门数据库介绍数据库概念数据库本质上是一个文件系统,是存储数据的仓库。数据库作用数据库用来管理用户的数据,方便用户对数据进行增删改查的一些操作。数据库分类数据库分为关系型数据库(SQL)和非关系型数据库(NOSQL)常见的关系型数据库:MySQL、SQLServer、Oracle......
  • Go语言入门13(runtime包)
    Runtime包GOMAXPROCS()​ 用来设置可以并行计算的CPU核数最大值,并返回之前的值,具体使用方法上一篇有些,这里不再赘述Gosched()​ 用于让出CPU时间片,让出当前goroutine的执行权限,调度器安排其他等待的任务运行,并在下次某个时候从该位置恢复执行Goexit()​ 用于立即中止当前gor......
  • 网工入门
    课程简介_网工入门自学视频教程[肖哥]_华为认证视频-51CTO学堂https://edu.51cto.com/center/course/lesson/index?id=745098 H3CSE-交换技术     网工入门: ......
  • Kubernetes(K8S) kubesphere 介绍
    使用Kubeadm部署Kubernetes(K8S)安装--附K8S架构图Kubernetes(K8S)kubesphere安装官网地址:https://kubesphere.com.cn/KubeSphere是个全栈的Kubernetes容器云PaaS解决方案KubeSphere是在目前主流容器调度平台Kubernetes之上构建的企业级分布式多租户容器平台,提供简单易......
  • Kubernetes从入门到精通 集群安装准备工作
    一、准备环境 master01192.168.117.100docker,kubectl,kubeadm,kubeletnode01192.168.117.101docker,kubectl,kubeadm,kubeletnode02192.168.117.102docker,kubectl,kubeadm,kubelet二、环境初始化1检查操作系统的版本#此方式下安装kuber......
  • GitHub 上有趣、入门级的开源项目HelloGitHub 升级版的 MiniGPT-4 搞定基于图片的文
    GitHub上有趣、入门级的开源项目HelloGitHub  https://github.com/521xueweihan/HelloGitHubhttps://github.com/521xueweihan/HelloGitHub/blob/master/content/HelloGitHub61.md 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言Python......
  • 超详细的RabbitMQ快速入门!!你不拿走吗?
    转载自:https://juejin.cn/post/6992551868748529677RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景......
  • Kubernetes从入门到精通 Kubernetes从介绍
    1第一章kubernetes介绍1.1应用部署方式演变在部署应用程序的方式上,主要经历了三个时代:传统部署:互联网早期,会直接将应用程序部署在物理机上优点:简单,不需要其它技术的参与缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响虚拟化部......