首页 > 其他分享 >kubernetes安装和调试(1-20-9-docker19-03-0-weave)

kubernetes安装和调试(1-20-9-docker19-03-0-weave)

时间:2023-06-22 11:33:51浏览次数:47  
标签:03 20 kubernetes -- sudo 镜像 docker 安装 weave

好年 新年 孔明灯 女孩 4k动漫壁纸_彼岸图网

kubernetes安装和调试(1.20.9+docker19.03.0+weave)

学习kubernetes来对项目进行容器化部署。这里使用了VMware创建虚拟机来搭建k8s集群。

VMware:16.1.2,CentOS7,docker:19.03.0,kubeadm:1.20.9,kubectl:1.20.9,kubelet:1.20.9,weave。

CentOS安装

镜像下载

image-20230621094637921

虚拟机创建

下载完成之后打开虚拟机进行安装即可。

image-20230621094846813

image-20230621094921378

image-20230621094946819

image-20230621095009505

image-20230621095031008

image-20230621095128572

image-20230621095227845

image-20230621095249962

image-20230621095315555

image-20230621095334696

image-20230621095350888

image-20230621095407927

image-20230621095420022

image-20230621095432344

image-20230621095446745

image-20230621095530687

image-20230621095541376

到这儿就已经把虚拟机创建完成了,但是还需要配置网络和进行安装。

VMware网络配置

我的设置:

  • master节点IP: 172.31.0.3
  • node01节点IP:172.31.0.4
  • node02节点IP:172.31.0.5
  • 子网掩码:255.255.0.0
  • 网关:172.31.0.2
  • DNS:114.114.114.114

首先是在VMware中设置。

主页—>编辑—>虚拟网络编辑器

image-20230621100402357

image-20230621100454415

需要设置为静态的ip,所以在这儿取消勾选DHCP服务。

image-20230621100701320

至此就设置完VMware了。

CentOS镜像安装

image-20230621100846635

image-20230621100923402

image-20230621101224940

image-20230621101342608

image-20230621101320589

image-20230621101408307

image-20230621101459131

image-20230621101557774

image-20230621101706341

image-20230621101731384

image-20230621101826851

image-20230621101805221

等待安装完成重启即可。

启动之后可以通过命令查看一下虚拟机的ip是否设置正确。

ip addr

image-20230621102211920

测试一下网络通不通

ping www.baidu.com

image-20230621102320183

可以看到已经ping通了,所以网络没问题,搭建k8s集群需要有master节点和node节点,这次创建了一个master节点,两个node节点。上述演示了创建master节点的过程,node节点的创建同上,记得把ip修改一下。

kuberbetes安装

简单的设置

安装所需工具

sudo yum -y install vim
sudo yum -y install wget

安装并配置 ntpdate,同步时间

sudo yum -y install ntpdate
sudo ntpdate ntp1.aliyun.com
sudo systemctl status ntpdate
sudo systemctl start ntpdate
sudo systemctl status ntpdate
sudo systemctl enable ntpdate

将主机名加入hosts文件中

sudo vim /etc/hosts

在文件最后加入下面的配置

172.31.0.3  master
172.31.0.4  node010
172.31.0.5  node02

设置安装的基础环境,比如需要关闭防火墙,关闭交换空间,关闭selinux等

# 将 SELinux 设置为 permissive 模式(相当于将其禁用)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

#关闭swap
swapoff -a  
sed -ri 's/.*swap.*/#&/' /etc/fstab

#允许 iptables 检查桥接流量
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system

关闭防火墙,或者开通指定端口(这个可以参考这篇☞文章

sudo systemctl stop firewalld.service 
sudo systemctl disable firewalld.service

docker安装

移除系统自带的docker

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
                  

配置yum源,镜像用的是阿里云

sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装指定版本的docker并启动

yum install -y docker-ce-19.03.0 docker-ce-cli-19.03.0  containerd.io-1.4.6
systemctl enable docker --now

配置加速

sudo mkdir -p /etc/docker       # 创建文件夹
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
        "https://dockerproxy.com",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://ccr.ccs.tencentyun.com"
    ],
    "insecure-registries": ["172.31.0.66:8088"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

至此docker就安装成功

docker version

查看docker版本。

kubeadm安装

安装kubelet、kubeadm、kubectl

# 配置k8s 下载的地址
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
   http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF

# 安装3大件
sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes

# 启动kubelet
sudo systemctl enable --now kubelet

构建集群

下载镜像

# 将所需镜像加入txt文件中
kubeadm config images list | grep '^k8s.gcr' >imglist.txt

# 由于镜像是国外网站,创建shell脚本将镜像下载并用tag命名为原名称
vi pull.sh

#!/bin/bash
for image in $(cat imglist.txt)
do
	imagename=$(echo $image | awk -F '/' '{print$NF}')
	docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imagename
	docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imagename $image
done
# 运行脚本下载镜像
bash pull.sh

主节点初始化,只需要在master节点运行即可

kubeadm init \
--apiserver-advertise-address=172.31.0.3 \
--control-plane-endpoint=master \
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
--kubernetes-version v1.20.9 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.168.0.0/16

# 以下是各个命令的备注不需要执行
kubeadm init \
--apiserver-advertise-address=172.31.0.3 \   # master 节点ip
--control-plane-endpoint=master \  # 域名值
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \   # 镜像仓库
--kubernetes-version v1.20.9 \  # k8s 版本 
--service-cidr=10.96.0.0/16 \     # 网络范围  一般不用改   网络范围不重叠
--pod-network-cidr=192.168.0.0/16   # k8s 给pod分配网络ip的范围   一般不用改
#所有网络范围不重叠

出现下面的结果即为成功

# 我自己的运行结果

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
# 部署pod网络插件    连接k8s所有网络
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/

You can now join any number of control-plane nodes by copying certificate authorities
and service account keys on each node and then running the following as root:
# 加入master节点
  kubeadm join cluster-endpoint:6443 --token uu0mpy.fdsjy3wojwwpatyj \
    --discovery-token-ca-cert-hash sha256:3d0c32c41667faf5424f6a3506e330bdaa57edda63c3d0f09bb4346c0b7c5b4f \
    --control-plane 

Then you can join any number of worker nodes by running the following on each as root:
# 加入工作node节点
kubeadm join cluster-endpoint:6443 --token uu0mpy.fdsjy3wojwwpatyj \
    --discovery-token-ca-cert-hash sha256:3d0c32c41667faf5424f6a3506e330bdaa57edda63c3d0f09bb4346c0b7c5b4f
设置.kube/config
  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

使用下面命令可以查看所有pod状态

kubectl get pod --all-namespaces -o wide

由于网络插件还没安装会有两个pod一直在pending

安装网络插件(weave)

kubernetes文档

weave官网安装

公开镜像加速站

去官网下载weave的yaml文件,查看yaml文件中用到的镜像,由于是通过国外的仓库下载镜像总是因为网络出现下载失败的问题,这里通过用公开的国内镜像加速源来下载,再通过tag修改为国外镜像源下载的名称。

kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml
 
docker pull docker.m.daocloud.io/weaveworks/weave-kube
docker pull docker.m.daocloud.io/weaveworks/weave-npc
docker tag docker.m.daocloud.io/weaveworks/weave-kube weaveworks/weave-kube
docker tag docker.m.daocloud.io/weaveworks/weave-npc weaveworks/weave-npc

镜像下载完成,通过下面命令查看所有的pod,可以看到有两个weave正在初始化,等初始化完成之后之前两个pending中的pod也会创建。

kubectl get pod --all-namespaces -o wide

至此,集群就构建完成。

参考文档

第一篇

博主的视频文章

镜像加速站

相关资源

weave的yaml文件(阿里云盘):点击下载

标签:03,20,kubernetes,--,sudo,镜像,docker,安装,weave
From: https://www.cnblogs.com/hhhhuaz/p/17497617.html

相关文章

  • visual studio 2022 c++ doxygen风格注释
    设置工具/选项/文本编辑器/C/C++/代码样式/常规注释效果输入/**添加注释鼠标停靠注释预览......
  • 【专题】2022年中国跨境电商行业研究报告PDF合集分享(附原数据表)
    全文链接:http://tecdat.cn/?p=32044近年来,我国的跨境电子商务发展迅速,在过去五年中,其贸易额增长率达到了16.2%,已经成为稳定对外贸易的一支重要力量(查看文末了解报告PDF版本免费获取方式)。一方面,随着跨境电子商务的发展,跨境电子商务的监管政策得到了进一步的改善,跨境电子商务的规......
  • CF1853D Doctor's Brown Hypothesis
    题意简述给你一张\(n\)个点\(m\)条边的有向图,你需要找出有多少个点对\((u,v),1\leu\lev\len\),满足存在一条从\(u\)到\(v\)的长度为\(k\)的途径,和一条从\(v\)到\(u\)的长度为\(k\)的途径。\(1\len\le10^5\),\(0\lem\le2\times10^5\),\(n^3\le......
  • 3Dmax2020中文版下载-3Dmax2020中文免费安装包下载 软件大全
    3dmax2022中文版是一款专业优秀的三维建模渲染工具。3dmax2022最新版增新了艺术渲染器,能够使用与360相同的光线追踪引擎,同时扩展了对OSL着色的支持。3dmax2022软件优化了视口播放功能和动画预览,用户可以精准的可视化工作结果,从而有效提高了内容的创建过程。[下载地址]:后台私信我3d......
  • 2022年大厂依然吃香吗?入职大厂就一定好吗?
    大厂是互联网人心目中的目标!到了互联网时代,各行各业的大公司,用“行业前三”或者“本行业排名靠前”来描述,显得太俗太长,所以大公司也统一称之为大厂,包括互联网行业的BAT等,实际上就算大厂。外企中的500强,也是大厂。大厂核心部门首先,每家大厂内部都有很多分部。这个其实可以理解,大厂是......
  • 【金三银四】2022Android面经新鲜出炉啦
    前言春水初盛,垂钓者络绎不绝,鱼儿按捺不住,拍打着尾鳍纷纷跃出水面,沽个好价。本篇真实的记录了我从准备->复习->面试的全过程,分享一些我的真实经验,希望能帮到大家。准备工作开始准备工作之前,首先思考几个问题:如何准备需要复习哪些东西该怎么复习怎么复习最高效职业规划如何准备,从哪......
  • 2023.6.21 鲜花
    最近总是回忆起许多初中时的事情。记得当时和hyj做同桌的时候,经常被hyj,hrq和cym带着卷;经常下午cym会带一个零食,然后我们4个上课分着吃;还有在初三全班大部分人都pj1=的时候我们4个全部2=,很有趣很有趣。还记得当时老师准备重新安排座位的时候我竟然还满怀期待,后来......
  • 什么是 Kubernetes cluster 的 Node affinity
    Nodeaffinity在概念上类似于nodeSelector,它允许您根据节点标签来限制Pod可以调度到哪些节点上。有两种类型的节点亲和性:requiredDuringSchedulingIgnoredDuringExecution:除非满足规则,否则调度程序无法将Pod调度到节点上。这类似于nodeSelector,但具有更具表达性的语法。pre......
  • Kali Linux 2023.2为Xfce版带来PipeWire支持
    Kali Linux 2023.2为Xfce版带来PipeWire支持,彻底改造i3桌面,这个版本还引入了一个新的Hyper-VVM镜像,以及几个新的黑客工具。OffensiveSecurity宣布了他们流行的道德黑客和渗透测试GNU/Linux发行版的新版本,带来了新的功能,更新和新的工具,以及许多改进,KaliLinux2023.2。......
  • Kali Linux 2023.2为Xfce版带来PipeWire支持
    Kali Linux 2023.2为Xfce版带来PipeWire支持,彻底改造i3桌面,这个版本还引入了一个新的Hyper-VVM镜像,以及几个新的黑客工具。OffensiveSecurity宣布了他们流行的道德黑客和渗透测试GNU/Linux发行版的新版本,带来了新的功能,更新和新的工具,以及许多改进,KaliLinux2023.2。......