Docker系列(十):Kubernetes集群入门
kubenetes安装
官网:https://github.com/kubernetes/kubernetes/blob/release-1.0/docs/getting-started- guides/centos/centos_manual_config.md

在两个主机上分别配置
vi /etc/hostname
echo "192.168.18.128 centos-master 192.168.18.130 centos-minion
" >> /etc/hosts
使得两个主机可以互ping
添加yum源
cd /etc/yum.repo.d
vi virt7-testing.repo
[virt7-testing]
name=virt7-testing baseurl=http://cbs.centos.org/repos/virt7- testing/x86_64/os/
gpgcheck=0
原来安装了docker1.8的先删除,没有安装的就不用执行下面这个步骤了

正式安装
Install Kubernetes on all hosts - centos-{master,minion}(所有的机器都安装)
yum -y install --enablerepo=virt7-testing kubernetes

master节点安装
master 节点安装 etcd package:
yum install http://cbs.centos.org/kojifiles/packages/etcd/0.4.6/7.el7.centos/x86_64/etcd-0.4.6-7.el7.centos.x86_64.rpm

关闭防火墙
systemctl disable iptables-services firewalld (firewalid是自定义的)
systemctl stop iptables-services firewalld
每个节点上修改kubernetes配置文件:
vi /etc/kubernetes/config
# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://centos-master:8080" (centos-master是master节点的主机名,用来配置apiserver)
KUBE_ETCD_SERVERS="--etcd_servers=http://centos-master:4001"(配置etcd)
Master节点上 vi /etc/kubernetes/apiserver
# The address on the local server to listen to.
KUBE_API_ADDRESS="--address=0.0.0.0" KUBE_API_PORT="--port=8080"(配置apiserver)
# Comma separated list of nodes in the etcd cluster
#KUBE_ETCD_SERVERS="--etcd_servers=http://127.0.0.1:2379"(上面已经配置过了,这里不用管)
Master节点启动相关kubernetes服务:
for SERVICES in etcd kube-apiserver kube-controller- manager kube-scheduler; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done
查看状态
for SERVICES in etcd kube-apiserver kube-controller- manager kube-scheduler; do
systemctl status $SERVICES done
Master节点启动相关kubernetes服务
查看启动的结果:

node节点安装
Node节点修改/etc/kubernetes/kubelet:
###
# kubernetes kubelet (minion) config
KUBELET_ADDRESS="--address=0.0.0.0" (绑定本地的端口)
KUBELET_PORT="--port=10250"(指定自己的端口绑定给本地的0000端口)
KUBELET_HOSTNAME="--hostname_override=centos-minion" (给master节点汇报自己节点的主机名)
KUBELET_API_SERVER="--api_servers=http://centos-master:8080“ (要访问的apiserver的地址)
# Add your own!
KUBELET_ARGS=""
node节点:
for SERVICES in kube-proxy kubelet docker; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done
for SERVICES in kube-proxy kubelet docker; do
systemctl status $SERVICES
done

查看启动的日志
tail -f /var/log/messages |grep kube

查看是否安装成功
在master节点执行kubectl get nodes
查看到节点注册成功,则表明系统安装正常
[root@centos-master yum.repos.d]# kubectl get nodes
NAME LABELS STATUS centos-minion kubernetes.io/hostname=centos-minion Ready (ready表示成功)
[root@centos-master yum.repos.d]# kubectl cluster-info
Kubernetes master is running at http://localhost:8080
kubernetes基本命令
Master上的kubectl命令为管理集群的命令

资源管理命令

kubectl describe --help
可以看到资源的信息属性等


kubernetes中的namespace不是为了隔离,而是为了配额,比如,某个namespace只能占用10%的cpu
实例
vi nginx-pod.yaml
apiVersion: v1
kind: Pod (资源类型)
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx ports:
- containerPort: 80
可能会报错
//service account配置的问题,在之前的apiserver中的一个参数
[root@centos-master ~]# kubectl create -f nginx-pod.yaml Error from
server: error when creating "nginx-pod.yaml": Pod "nginx" is forbidden:
no API token found for service account default/default, retry after the
token is automatically created and added to the service account
参数在这里
KUBE_ADMISSION_CONTROL="-- admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger
Secu,rityContextDeny,ServiceAccount,ResourceQuota"
查看状态
[root@centos-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx 0/1 Image: nginx is not ready on the node 0 56s
发现报错



解决:
进入:
/etc/sysconfig/docker
添加配置:
INSECURE_REGISTRY='--insecure-registry gcr.io'

查看状态

有可能会报错

原因:
因为当时是代理上网的,把代理的地址放进去就好了。

成功:

过段时间会自动从pending到running状态。
paus镜像是docker的根镜像。
Docker系列(十):Kubernetes集群入门的更多相关文章
- K8S从入门到放弃系列-(16)Kubernetes集群Prometheus-operator监控部署
Prometheus Operator不同于Prometheus,Prometheus Operator是 CoreOS 开源的一套用于管理在 Kubernetes 集群上的 Prometheus 控 ...
- K8S从入门到放弃系列-(15)Kubernetes集群Ingress部署
Ingress是kubernetes集群对外提供服务的一种方式.ingress部署相对比较简单,官方把相关资源配置文件,都已经集合到一个yml文件中(mandatory.yaml),镜像地址也修改为q ...
- K8S从入门到放弃系列-(9)kubernetes集群之kubelet部署
摘要: Kubelet组件运行在Node节点上,维持运行中的Pods以及提供kuberntes运行时环境,主要完成以下使命: 1.监视分配给该Node节点的pods 2.挂载pod所需要的volume ...
- K8S从入门到放弃系列-(4)kubernetes集群之kubectl命令行工具部署
摘要:随着版本的不断迭代,k8s为了集群安全,集群中趋向采用TLS+RBAC的安全配置方式,所以我们在部署过程中,所有组件都需要证书,并启用RBAC认证. 我们这里采用二进制安装,下载解压后,把对应组 ...
- K8S从入门到放弃系列-(13)Kubernetes集群mertics-server部署
集群部署好后,如果我们想知道集群中每个节点及节点上的pod资源使用情况,命令行下可以直接使用kubectl top node/pod来查看资源使用情况,默认此命令不能正常使用,需要我们部署对应api资 ...
- K8S从入门到放弃系列-(14)Kubernetes集群Dashboard部署
Dashboard是k8s的web界面,用户可以用 Kubernetes Dashboard 部署容器化的应用.监控应用.并对集群本身进行管理,在 Kubernetes Dashboard 中可以查看 ...
- K8S从入门到放弃系列-(12)Kubernetes集群Coredns部署
摘要: 集群其他组件全部完成后我们应当部署集群 DNS 使 service 等能够正常解析,1.11版本coredns已经取代kube-dns成为集群默认dns. 1)下载yaml配置清单 [root ...
- K8S从入门到放弃系列-(11)kubernetes集群网络Calico部署
摘要: 前面几个篇幅,已经介绍master与node节点集群组件部署,由于K8S本身不支持网络,当 node 全部启动后,由于网络组件(CNI)未安装会显示为 NotReady 状态,需要借助第三方网 ...
- K8S从入门到放弃系列-(10)kubernetes集群之kube-proxy部署
摘要: kube-proxy的作用主要是负责service的实现,具体来说,就是实现了内部从pod到service和外部的从node port向service的访问 新版本目前 kube-proxy ...
随机推荐
- ES6 学习 -- Generator函数
(1)语法说明:Generator函数其实是一个普通函数,其有两个特点,一是,function关键字与函数名之间有一个星号(*):二是Generator函数内部使用yield表达式,定义不同的状态,然 ...
- iOS开发系列-weak与unsafe_unretained修饰符
概述 在iOS内存管理中,为防止循环引用,定义类的内部对象属性使用weak.unsafe_unretained修饰符,不产生强引用. 开发中一般使用的weak修饰符,那么接下来说下weak跟unsaf ...
- SQL Server - Store procedure 如何返回值
存储过程 返回值 procedure return values : http://www.cnblogs.com/SunnyZhu/p/5542347.html return.select.outp ...
- php设置时区和strtotime转化为时间戳函数
date_default_timezone_set('PRC');//设置中华人民共和国标准时间 strtotime — 将任何英文文本的日期时间描述解析为 Unix 时间戳 格式:int strto ...
- 「题解」:$e$
问题 B: $e$ 时间限制: 2 Sec 内存限制: 512 MB 题面 题面谢绝公开. 题解 话说一天考两个主席树这回事…… 正解可以叫树上主席树??(脸哥说也叫主席树上树???) 对于树上的每 ...
- 使用C++视频播放器库libvlc
libvlc简介 vlc是一个开源的视频播放器,并提供了库供二次开发,其视频解码库是ffmpeg,网络库是live555.
- maven项目依赖其他jar包的时候,idea运行没问题,java -jar 报错:java.lang.SecurityException: Invalid signature file digest
当项目依赖其他jar包的时候,打出的jar包执行出错,抛出这个异常. 原因:因为依赖jar包中的META-INF中有多余的.SF文件与当前jar包冲突, 解决方案 一 在打包前删除依赖jar包的.SF ...
- day25-静态、组合、继承
#!/usr/bin/env python # -*- coding:utf-8 -*- # ----------------------------------------------------- ...
- day17_内置函数_文件处理
20180729 修改部分代码 更新:# # 5.max与列表指定参数 20180728 初次上传 #!/usr/bin/env python # -*- coding:utf-8 -*- ...
- Mysql优化系列之查询优化干货1
从这一篇开始,准备总结一些直接受用的sql语句优化,写sql是第二要紧的,第一要紧的,是会分析怎么查最快, 因为当你写过很多sql后,查询出结果已经不是目标,快,才是目标.另外,通过测试和比较的结果才 ...