技术标签: kubernetes k8s docker
角色/主机名 | ip |
---|---|
k8s-master | 192.168.132.155 |
k8s-node1 | 192.168.132.156 |
master/node操作
)systemctl stop firewalld && systemctl disable firewalld
master/node操作
)setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
master/node操作
)swapoff -a && sed -i 's/.*swap.*/#&/' /etc/fstab
这里我直接和master进行同步
)master/node操作
)将桥接的IPV4流量传递到iptables
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system
master/node操作
)wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
systemctl enable docker && systemctl start docker
master/node操作
)cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
master/node操作
)kubelet # 运行在 Cluster 所有节点上,负责启动 Pod 和容器。
kubeadm # 用于初始化 Cluster。
kubectl # 是 Kubernetes 命令行工具。通过 kubectl 可以部署和管理应用,查看各种资源,创建、删除和更新各种组件。
master/node操作
)yum install -y kubelet-1.19.0 kubeadm-1.19.0 kubectl-1.19.0
systemctl enable kubelet #在这里只需enable,不用start
master操作
)[root@k8s-master ~]# kubeadm init \
--apiserver-advertise-address=192.168.132.155 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.19.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all
解释:
备注:初始化出错的时候,想要重新做执行kubeadm reset
初始化执行的时候,出现错误:
报错1:
Aug 6 21:14:41 localhost kubelet: E0806 21:14:41.164994 72318 server.go:294] "Failed to run kubelet" err="failed to run Kubelet: misconfiguration: kubelet cgroup driver: \"systemd\" is different from docker cgroup driver: \"cgroupfs\""
Aug 6 21:14:41 localhost systemd: kubelet.service: main process exited, code=exited, status=1/FAILURE
Aug 6 21:14:41 localhost systemd: Unit kubelet.service entered failed state.
Aug 6 21:14:41 localhost systemd: kubelet.service failed.
Aug 6 21:14:41 localhost systemd: Stopped kubelet: The Kubernetes Node Agent.
解决报错1方案:
原因:docker和k8s使用的cgroup不一致导致
说明:可以只修改docker,docker不再设置native.cgroupdriver=systemd,或将systemd改成cgroupfs,改成和k8s一样(k8s默认是cgroupfs,但是他竟然推荐用systemd,上文报错中可看出)。
1.echo y | kubeadm reset #重置
2. cat /etc/docker/daemon.json #更改docker cgroupdirver为systemd
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
],
"data-root": "/data/docker"
}
3. cat > /var/lib/kubelet/config.yaml <<EOF #更改kubelet croupdriver为systemd
> apiVersion: kubelet.config.k8s.io/v1beta1
> kind: KubeletConfiguration
> cgroupDriver: systemd
> EOF
4.systemctl daemon-reload #重启服务
systemctl restart docker
systemctk restart kubelet
5.重新执行初始化
[root@k8s-master ~]# kubeadm init \
--apiserver-advertise-address=192.168.132.155 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.19.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all
执行成功:
最后一段保存下来,后续添加节点会用到:kubeadm join 192.168.132.155:6443 --token b3dsrl.hqw7s4ew9n6setrl \ --discovery-token-ca-cert-hash sha256:aac25e1d77c5550fe2fb6491758597eb555a349dfb3f80ee37833ecb075c75d2
报错2:
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error
解决报错2方案:发现和报错1是同一个问题
master操作
)mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
下面就可以使用kubectl工具了
node节点为NotReady,因为coredns pod没有启动,缺少网络pod。
master操作
)wget https://docs.projectcalico.org/manifests/calico.yaml
vi calico.yaml
修改里面定义Pod网络(CALICO_IPV4POOL_CIDR)那行,该值与Kubeadm init指定的
–pod-network-cidr需一致
过一会再查看信息,节点已经处于Ready状态了。
再次查看ndoe,状态已经为ready
所有node节点操作
)kubeadm join 192.168.132.155:6443 --token l2og78.ut1s3rsawplgd3pp \
--discovery-token-ca-cert-hash sha256:3df6de298e664ba155b0748f9901c3966a2dc29e4b4cc28c2fdded1d136a22c1
查看节点状态
文章浏览阅读3.6k次,点赞2次,收藏30次。J48基于从上到下的策略,递归的分治策略,基于信息论决策树只出现了三个属性,只要最后能够完全分,也就是每个节点只有一个分类。修建决策树,简单方法,如果节点包含的实例非常少,就停止分裂在KEKA中修改参数minNumObj:每个叶节点最少包含多少实例可以先创建一个详尽的树反向修剪比正向修剪效果好。confidenceFactor:用于修剪的信心因数(较小的值导致更多的修改)subtreeRaising:修建一个内部节点并将它的子树提升一个层次,叫做子_weka决策树
文章浏览阅读251次。关于这个问题,Stackoverflow已经有了非常好的回答,我认为解释的非常清楚,链接如下:https://stackoverflow.com/questions/1436703/difference-between-str-and-repr 回答摘要The default implementation is useless (it’s hard to think of one..._stack的__str__和__repr__
文章浏览阅读66次。Webbench是知名的网站压力方面的测试工具,它是由Lionbridge公司开发。官方主页:http://home.tiscali.cz/~cz210552/webbench.html在运维工作中,网站压力及性能测试是一项很重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接 影响用户体验。但是,..._web网站压力及性能测试工具
文章浏览阅读3.2k次,点赞2次,收藏5次。1.只有寄存器类型变量才能在initial内部被赋值。 2.verilog系统任务 (1):finish/finish/finish/stop finish:如果遇到finish:如果遇到finish:如果遇到finish,仿真器完成仿真并退出。 stop:当遇到stop:当遇到stop:当遇到stop,仿真器停止仿真,但不退出,同时提供一个命令提示符,在命令提..._不可综合的verilog语句
文章浏览阅读903次,点赞2次,收藏2次。一.准备硬件准备树莓派 一套SIM7600CE 4G HAT 一套 (摆脱网线束缚)按照下图连接:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wq01f097-1609922520384)(https://www.waveshare.net/photo/accBoard/SIM7600CE-4G-HAT/SIM7600CE-4G-HAT-2_960.jpg)]软件准备安装minicomapt-get install minicom查看dev下面_7600 拨号设置
文章浏览阅读1.9k次。如果是在Xcode11 & IOS 13之前,如果不用storyboard创建新项目,一般是在appDelegate.swift中,例子如下,我们简单的创建一个SearchBar用UINavigationController。现在,有一些小改变,sceneDelegate.swift相比于appDelegate.swift,更像是一个top-level UI object,所..._xcode 创建ios项目没有appdelegate.swift,scenedelegate.swift
文章浏览阅读403次。需要版本:jdk:jdk-7u79-linux-x64.tar.gzhadoop:hadoop-2.5.0-cdh5.3.6.tar.gz1.创建hadoop用户useradd -m hadoop -G root -s /bin/bash2.赋予hadoop用户最高权限chmod 777 hadoop--记得给hadoop设置密码passwd hadoophadoop3.切换..._linux虚拟机部署大数据hadoop
文章浏览阅读3.7k次,点赞6次,收藏40次。1.项目简介1.1 系统研究背景伴随着中国经济的飞速发展,城市化进程的加快,求职者队伍的不断壮大,传统人才招聘的弊端初露端倪。首先,传统人才应聘的形式是求职者和企业的负责人面对面地交流。这就需要企业和求职者提前规划自己的时间,准备大量的纸质材料,并选好举办招聘会的地点,这一系列流程都需要双方把大量的精力投入到准备活动中去,使得应聘还未开始,成本就已大幅增加。其次,企业在筛选数以百计,甚至数以万计简历的时候,往往会由于阅读疲劳,漏掉一些真正有价值的简历,使得企业丧失掉一批有用的人才。对于求职者而言,也_校园人才招聘系统开发背景
文章浏览阅读327次。一、redis的安装win版本详见:下面是linux版本的安装步骤:step1、下载http://redis.io/download下载完后直接make然后make install,注意sudostep2、启动服务>cd redis安装目录/src>./redis-server //注意,这种是带默认配置启动,如果要带配置使用:>./redis-server redis-co..._linux php 添加redis
文章浏览阅读1.1k次。Bean的拷贝我们不陌生,经常与之打交道,看了很多评测,抛开功能不说,性能上前三大致就是原生的get/set、MapStruct、cglib bean copy。之所以需要是用beanCopy,就是因为大量的get/set不雅观(绝对不是我们懒)。MapStruct是在编译时期生成的代码,但是其使用让我觉得繁琐。cglib使用动态字节码技术生成class文件,在全局缓存的copier之后速度也是非常的快。但是也有很多不方便的地方,我结合实际需求,对它动了心。..._java beancopier 封装
文章浏览阅读76次。先导入jar包(commons-dbcp.jar,commons-pool.jar)方法一: 不使用配置文件BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl(..._数据库连接池管理员工信息
文章浏览阅读2.4k次,点赞2次,收藏11次。关于图像分割和hough变换(19_02_12学习进度)关于hough变换边界连接的matlab实现matlab提供了三个函数用于Hough变换连接边界,使用Hough函数可以对图像进行Hough变换,将直角坐标系变为极坐标,然后对极坐标尽心修正之后使用houghpeak函数对图像进行峰值检测,检测出密集的交点最后使用houghline函数对图像进行直线的连接Hough变换的函数为Hou..._hough变换有断点