当前位置: 首页 > 编程日记 > 正文

Kubernates集群入门(1)

一、K8s安装准备

1.至少两台主机,一台作为master,一台作为node。两台主机需要关闭防火墙。

#centos6 
service stop firewalld  && service disable firewalld
#centos7
systemctl stop iptables && systemctl disable iptables;

2.两台机器需要各自编辑/etc/hosts文件,互相添加hostname,然后相互ping通,以下为例

echo "192.168.18.128 centos-master
192.168.18.130 centos-minion
" >> /etc/hosts

二、K8s的安装

1.两台主机都需要安装docker,kubernetes,如有docker版本冲突需要卸载重新安装docker.

yum -y install docker kubernetes

2.master节点需要安装etcd数据库服务,etcd作为kubernetes的数据库

yum -y install etcd

3.每个节点,master及minion节点都需要修改kubernetes配置文件

vim /etc/kubernetes/config# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://centos-master:8080"
#master节点关于指向etcd的ip可能需要改成127.0.0.1:2379,改成主机名的话kube-controller-manager可能会启动失败,不知原因
KUBE_ETCD_SERVERS="--etcd_servers=http://centos-master:2379"

示例master 下config

# kubernetes system config
#
# The following values are used to configure various aspects of all
# kubernetes services, including
#
#   kube-apiserver.service
#   kube-controller-manager.service
#   kube-scheduler.service
#   kubelet.service
#   kube-proxy.service
# logging to stderr means we get it in the systemd journal
KUBE_LOGTOSTDERR="--logtostderr=true"# journal message level, 0 is debug
KUBE_LOG_LEVEL="--v=0"# Should this cluster be allowed to run privileged docker containers
KUBE_ALLOW_PRIV="--allow-privileged=false"# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://kube01:8080"KUBE_ETCD_SERVERS="--etcd-servers=http://kube01:2379"

4.master节点上,配置api服务给node

vim /etc/kubernetes/apiserver# The address on the local server to listen to.
#这个地址好像只能用0.0.0.0
KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_API_PORT="--port=8080"
# Comma separated list of nodes in the etcd cluster
#KUBE_ETCD_SERVERS="--etcd_servers=http://127.0.0.1:2379"##ServiceAccount这个参数删掉,会影响docker拉去镜像
# default admission control policies
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"

示例:master节点apiserver:

# kubernetes system config
#
# The following values are used to configure the kube-apiserver
## The address on the local server to listen to.
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"# The port on the local server to listen on.
KUBE_API_PORT="--port=8080"# Port minions listen on
# KUBELET_PORT="--kubelet-port=10250"# Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379"# Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"# default admission control policies
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"# Add your own!
KUBE_API_ARGS=""

5.master节点上编写启动相关kubernetes服务的脚本

vim k8s-server.sh#!/bin/bashOPT=$1case $1 in
-s)for SERVICES in etcd  kube-apiserver kube-controller-manager kube-scheduler; dosystemctl restart $SERVICESsystemctl enable $SERVICESsystemctl status $SERVICESdone
;;-k)for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler ; dosystemctl stop $SERVICESdone
;;-stat)for SERVICES in etcd  kube-apiserver kube-controller-manager kube-scheduler; dosystemctl status $SERVICES
done
;;
*)echo "useage:./k8s-server.sh <-s|-k|-stat>----  '-s' is start Servers\n---  '-k' is stop Servers\n'-stat' is watch the status  "
;;
esac

6.node节点修改/etc/kubernetes/kubelet,配置与master的连接

###
# kubernetes kubelet (minion) config
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname_override=centos-minion"
KUBELET_API_SERVER="--api_servers=http://centos-master:8080“
# Add your own!
KUBELET_ARGS=""

minion节点 config示例


###
# kubernetes system config
#
# The following values are used to configure various aspects of all
# kubernetes services, including
#
#   kube-apiserver.service
#   kube-controller-manager.service
#   kube-scheduler.service
#   kubelet.service
#   kube-proxy.service
# logging to stderr means we get it in the systemd journal
KUBE_LOGTOSTDERR="--logtostderr=true"# journal message level, 0 is debug
KUBE_LOG_LEVEL="--v=0"# Should this cluster be allowed to run privileged docker containers
KUBE_ALLOW_PRIV="--allow-privileged=false"# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://kube01:8080"

minion节点kubelet示例

###
# kubernetes kubelet (minion) config# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=0.0.0.0"# The port for the info server to serve on
#KUBELET_PORT="--port=10250"# You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname-override=kube02"# location of the api-server
KUBELET_API_SERVER="--api-servers=http://kube01:8080"# pod infrastructure container
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"# Add your own!
KUBELET_ARGS=""

7.node节点编写启动和查看服务脚本


#!/bin/bashOPT=$1case $1 in
-s)for SERVICES in kube-proxy kubelet docker; dosystemctl restart $SERVICESsystemctl enable $SERVICESsystemctl status $SERVICESdone
;;-k)for SERVICES in kube-proxy kubelet docker; dosystemctl stop $SERVICESdone
;;-stat)for SERVICES in kube-proxy kubelet docker; dosystemctl status $SERVICES
done
;;
*)echo "useage:./k8s.sh <-s|-k|-stat>----  '-s' is start Servers\n---  '-k' is stop Servers\n'-stat' is watch the status  "
;;
esac

8.node节点查看是否成功注册到master节点,如果没关闭防火墙会报错

tail -f /var/log/messages |grep kube

9.master节点查看刚才注册的节点,节点status为ready为正常

kubectl get nodes

10.kubectl是master端的交互工具,可以通过子命令查看节点等信息

kubectl get nodes #获取节点列表kubectl cluster-info #查看节点信息

下一节演示一个简单的kubernetes实例,master节点通过yaml文件,让node节点自动pull镜像并运行。**

如果启动docker报错,如下


当前docker版本1.13.1 执行启动命令: systemctl   start docker  ,报下面错误:Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel. Either boot into a newer kernel or disable selinux in docker (--selinux-enabled=false)重新编辑docker配置文件:
vi /etc/sysconfig/docker
# /etc/sysconfig/docker# Modify these options if you want to change the way the docker daemon runsOPTIONS='--selinux-enabled=false  --log-driver=journald --signature-verification=false'
if [ -z "${DOCKER_CERT_PATH}" ]; thenDOCKER_CERT_PATH=/etc/docker
fi:wq systemctl  restart  docker

相关文章:

Asp.net 不使用SQLDMO实现数据库备份和还原

今天需要做一个历史数据库,备份还原的程序,就是在sql服务器兴建一个数据库的历史版本的复.手工操作很方便,但是程序来实现我还没做过.上网找资料发现都调用了 SQLDMO 的 SQL COM 来实现. 应为我不想在应用服务器上面引用 COM 组件服务.所以没采取这种方式.打开Sql 联机帮助.发现…

B2B行业网站10种经营模式研究及组合方案

许多人对B2B网站的理解仅停留在企业对企业的在线交易上&#xff0c;认为按照B2B电子商务的概念就应该是在网上进行交易。但目前中国比较成功的B2B网站却并非所有都是在线交易模式&#xff0c;尤其是B2B行业网站&#xff0c;许多都没有做在线交易&#xff0c;更多是以基于交易为…

用户数年增长 300%,BitMax如何把握数字资产时代机遇?

12月22日&#xff0c;在2020 BitMax两周年庆典上&#xff0c;BitMax 创始人兼 CEO 曹晶、BitUniverse 合伙人许志宏、BlockVC 创始人徐英凯、红林集团&红链资本创始人李勇敏等多位区块链行业专家&#xff0c;分享了行业洞察&#xff0c;一同探讨交易所的现状和突围之战、数…

2014 年美国程序员薪资调查

Drdobbs 近期向 2,200 名美国的程序开发人员做了一次调查&#xff0c;调查显示高薪领域的工资随着经济的增长而增长。 “Software Engineer”这个职位&#xff0c;除了在德州和几个其他州之外&#xff0c;没有什么特别的意思&#xff0c;在这几个州用这个职称需要经过评定。在其…

ASP.net 验证码(C#)

ASP.net 验证码(C#) /* Copyright all(c) 2005 ZhongFeng, http://blog.csdn.net/SW515 */ public class ValidateCode : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { this.CreateCheckCodeImage(GenerateCheckCode()); } #region…

SCCM 2012 SP1系列(十)配置补丁更新-3

自动部署规则SCCM2012中对补丁分发增加了一项新功能—自动部署规则&#xff0c;这功能相当于WSUS的自动审批功能。就是当检测到新的补丁更新后自动进行下载更新动作&#xff0c;然后下发给客户端。其实在大企业中还是建议会对每个更新包进行测试&#xff0c;确定对现有业务没有…

CSDN湘苗培优|保持热情,告别平庸

湘苗培优招生进行中在培优中&#xff0c;遇见更好的自己——CSDN高校俱乐部CSDN湘苗培优随着我国信息产业飞速发展&#xff0c;通过常规灌输式培养出来的学员已经不能够满足企业要求。企业更缺乏的是具备自主学习能力、具备综合解决问题能力的高素质技术人才。高素质技术人才需…

在c#中调用windows脚本的方法

在c#中调用windows脚本的方法 方法1&#xff1a;直接调用CODE: System.Diagnostics.Process proc new System.Diagnostics.Process();proc.StartInfo.FileName"wscript";proc.StartInfo.Arguments" hello.js"; proc.StartInfo.UseShellExecute false;pr…

ie和firefox操作table对象的异同

2019独角兽企业重金招聘Python工程师标准>>> ie和firefox下操作table对象的异同【测试浏览器版本&#xff1a;ie为8,9&#xff0c;firefox为2.0】 1&#xff09;在ie下&#xff0c;table标签直接使用appendChild增加document.createElement(tr)的行时不显示&#xf…

机器学习和计算机视觉的前20个图像数据集

作者 | Meiryum Ali 翻译 | 火火酱,责编 | 晋兆雨出品 | AI科技大本营头图 | 付费下载于视觉中国计算机视觉使计算机能够理解图像和视频的内容。计算机视觉的目标是使人类视觉系统可以实现任务自动化。计算机视觉任务包括图像采集、图像处理和图像分析。图像数据可以采用不同的…

移动应用开发者应该关注的 Google I/O 两项更新

移动应用开发者看过来&#xff0c;今年 Google I/O 这两项更新能帮上大忙移动应用开发者看过来&#xff0c;今年 Google I/O 这两项更新能帮上大忙。 I/O 的 Keynote 刚刚结束&#xff0c;用户可能为 Google 新的消费产品感到兴奋。但这毕竟是开发者大会&#xff0c;一些面向开…

赠书 | 手把手教你自己动手打造一个智能恒温器

作者 | Yazeed Sabri翻译 | 火火酱,责编 | 晋兆雨出品 | AI科技大本营头图 | 付费下载于视觉中国*文末有赠书福利为了能住得离公司近一点&#xff0c;我就搬进了一套没有温控系统的公寓。因为在芝加哥市区&#xff0c;这个价位的公寓大多都是没有温控系统的&#xff0c;所以我心…

JVM 出了问题 EXCEPTION_ACCESS_VIOLATION

2019独角兽企业重金招聘Python工程师标准>>> # # An unexpected error has been detected by Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc0x10002c08, pid5972, tid1404 # # Java VM: Java HotSpot(TM) Client VM (11.3-b02 mixe…

转换字符串中汉字为其拼音缩写(C#)

//将指定字符串中的汉字转换为拼音缩写&#xff0c;其中非汉字保留为原字符。 public string GetPinYin( string text){char pinyin;byte[] array;System.Text.StringBuilder sb new System.Text.StringBuilder(text.Length); foreach(char c in text) { pinyin c; …

weblogic线程阻塞性能调优(图解)

转自&#xff1a;http://blog.csdn.net/z69183787/article/details/12647539 声明&#xff1a;出现这个问题有程序方面、网络方面、weblogic设置方面等等原因&#xff0c;此文章主要讲述由于weblogic设置而导致的解决办法。 因为&#xff1a; 1.程序问题&#xff0c;需要项目自…

ASP.net实现无扩展名的URL重写。简单、方便、无需ISAPI

URL重写已经有很多的方法&#xff0c;但是多数都有一个缺点&#xff0c;就是不支持无扩展名的网页。微软提供的方法需要在根目录里面建立jyk的文件夹&#xff0c;然后再建立一个default.aspx的文件&#xff0c;如果您有100名会员的话&#xff0c;这是一个不可想象的事情。 另一…

IDC公布中国深度学习市场综合份额:百度超越Facebook位列第二

近日&#xff0c;权威数据调研机构IDC公布了2020年下半年深度学习框架平台市场份额报告。数据显示&#xff0c;在中国深度学习平台市场综合份额中&#xff0c;Google、百度、Facebook稳居前三&#xff0c;占据70%以上市场份额。其中&#xff0c;百度占比提升3.38%增速第一&…

OpenStack 和 Cloud Foundry

上周我参加了在亚特兰大举行的OpenStack峰会&#xff0c;这是一个非常好的机会去进一步了解Cloud Foundry 和OpenStack ecosystem之间的关系。 在OpenStack阵营里&#xff0c;在讨论PaaS时&#xff0c;“Could Foundry 是不是 OpenStack” &#xff0c;这个看起来像是一个有争议…

防止IIS文件被下载方法

如何才能防止encry目录下的所有文件被非法下载呢&#xff1f;我们可以应用IIS中的应用程序映射结合ASP.NET中的IHttpHandler自定义权限&#xff0c;把IIS应用程序映射用于所有文件&#xff0c;并将控制权交给我们自己实现的IHttpHandler。 首先添加应用程序映射&#xff1a;打…

转 如何在IOS设备中去掉屏幕上的status bar

引入如何在IOS设备中去掉屏幕上的status bar&#xff0c;即&#xff1a;不显示设备上方的&#xff3b;网络、时间、电池??&#xff3d;条&#xff1f;操作方法一&#xff1a;在-info.list项目文件中&#xff0c;加上“Status bar is initially hidden”选项&#xff0c;并勾选…

倒计时7天!博客之星虚位以待,Macbook等你来拿

也许你陪伴了CSDN一年的时间刚刚写下自己的第二十篇的原创技术博文也许你是陪伴了CSDN近20年风雨的老码农更新了近千百篇的技术文章也许你还在坚持着“技术输出”也许你已经开始封笔也许你刚刚突破粉丝数达到了三位&#xff0c;四位数也许你刚刚申请的博客专家&#xff0c;终于…

UVA 10515 - Powers Et Al.(数论)

UVA 10515 - Powers Et Al. 题目链接 题意&#xff1a;求出m^n最后一位数 思路&#xff1a;因为m和n都非常大&#xff0c;直接算肯定是不行的&#xff0c;非常easy想到取最后一位来算&#xff0c;然后又非常easy想到最后一位不断乘自身肯定会形成周期。而且这个周期还挺短的&am…

视觉+Transformer最新论文出炉,华为联合北大、悉尼大学发表

作者 | CV君来源 | 我爱计算机视觉Transformer 技术最开始起源于自然语言处理领域&#xff0c;但今年5月份Facebook 的一篇文章将其应用于计算机视觉中的目标检测(DETR算法&#xff0c;目前已有78次引用)使其大放异彩&#xff0c;并迅速得到CV研究社区的关注。已有研究表明&…

易宝典文章——怎样管理Exchange Server 2013邮箱地址

对于一个用户邮箱&#xff0c;即邮箱收件人来讲&#xff0c;在创建时Exchange会为其按照Alias分配一个邮件地址&#xff0c;即主邮件地址&#xff0c;也称为“主SMTP地址”或“默认答复地址”。但是在用户日常使用中可能会出现需要多个邮件地址的情况&#xff0c;比如&#xff…

使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图

本文借助vs2005中自带的FileUpload控件实现图片文件的上传并生成缩略图。实现过程&#xff1a;选择图片上传成功后&#xff0c;取得已经存在服务器的文件生成缩略图&#xff0c;并且判断是否是图片类型的文件&#xff0c;这个的判断可以在程序中修改&#xff0c;本程序只是判断…

Java -- JDBC 学习--通过Statement进行数据库更新操作

通过 JDBC 向指定的数据表中插入一条记录. 1. Statement: 用于执行 SQL 语句的对象 1). 通过 Connection 的 createStatement() 方法来获取 2). 通过 executeUpdate(sql) 可以执行 SQL 语句. 3). 传入的 SQL 可以是 INSRET, UPDATE 或 DELETE. 但不能是 SELECT 2.…

身份证号码验证-支持新的带x身份证

//--身份证号码验证-支持新的带x身份证functionisIdCardNo(num) { varfactorArr newArray(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1); varerror; varvarArray newArray(); varintValue; varlngProduct 0; varintCheckDigit; varintStrLen num.length; v…

装上后这 14 个插件后,PyCharm 真的是无敌的存在

来源 | Python编程时光作者 | 写代码的明哥Key Promoter X如果让我给新手推荐一个 PyCharm 必装插件&#xff0c;那一定是 Key Promoter X 。它就相当于一个快捷键管理大师&#xff0c;它时刻地在&#xff1a;教导你&#xff0c;当下你的这个操作&#xff0c;应该使用哪个快捷…

批量实现面向对象的实例

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>批量实现面向对象的实例</title> <script type"text/javascript"> window.onload function(){function Person(name,age){this.name name;this.…

读Zepto源码之操作DOM

2019独角兽企业重金招聘Python工程师标准>>> 这篇依然是跟 dom 相关的方法&#xff0c;侧重点是操作 dom 的方法。 读Zepto源码系列文章已经放到了github上&#xff0c;欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2.0 .remove() remove: function()…