求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   模型库  
会员   
 


DeepSeek大模型应用开发实践
6月12-13日 厦门



基于 UML 和EA进行分析设计
6月23-24日 北京+线上



人工智能、机器学习& TensorFlow+Keras
6月22-23日 北京
 
 
 

Kubernetes教程
Kubernetes概述
Kubernetes设计架构
kubernetes设计理念
创建Kubernetes集群
基于Docker本地运行Kubernetes
使用Vagrant
本地运行Kubrenetes v1.0
Google Computer Engine入门
AWS EC2快速入门
在Azure上使用CoreOS和Weave的 Kubernetes
从零开始k8s
CoreOS部署Kubernetes集群
CloudStack部署Kubernetes集群
vSphere部署Kubernetes集群
Ferdora部署Kubernetes集群
CentOS部署Kubernetes集群
Ubuntu物理节点上部署Kubernets集群
Mesos部署Kubernetes集群
Kubernetes用户指南:应用程序管理
名词解释 Pods
名词解释 Labels
名词解释:Namespace
名词解释 Replication Controller
名词解释:Node
名词解释:ReplicaSets
名词解释 Services
名词解释 Volumes
名词解释:PV/PVC/StorageClass
名称解释:Deployment
名词解释:Secret
名词解释:StatefulSet
名词解释:DaemonSet
名词解释:Service Account
名词解释:CronJob
名词解释:Job
名词解释:Security Context和PSP
名词解释:Resource Quotas
名词解释:Network Policy
名词解释:Ingress
名词解释:ThirdPartyResources
名词解释:ConfigMap
名词解释:PodPreset
配置Kubernetes
管理应用:部署持续运行的应用
Horizontal Pod Autoscaling
管理应用:连接应用
管理应用: 在生产环境中使用Pods和容器
Kubernetes UI
Kube-API Server
授权插件
认证插件
API Server端口配置
Admission Controller
Service Accounts集群管理指南
使用Kubernetes在云上原生部署cassandra
Spark例子
Storm 示例
示例: 分布式任务队列 Celery, RabbitMQ和Flower
Kubernetes在Hazelcast平台上部署原生云应用
Meteor on Kuberenetes
配置文件使用入门
环境向导示例
在Kubernetes上运行你的第一个容器
kubectl
安装和设置kubectl
kubectl annotate
kubectl api-versions
kubectl apply
kubectl attach
kubectl cluster-info
kubectl config
kubectl config set-cluster
kubectl config set-context
kubectl config set-credentials
kubectl config set
kubectl config unset
kubectl config use-context
kubectl config view
kubectl create
kubectl delete
kubectl describe
kubectl edit
kubectl exec
kubectl logs
kubectl version
故障排查
应用程序相关的故障排查
 
 

CentOS部署Kubernetes集群
 
1649 次浏览
59次  

前提条件

你需要2台或以上安装有CentOS的机器

启动一个集群

本文是针对CentOS系统的Kubernetes入门教程。通过手动配置,你将会理解所有底层的包、服务、端口等。

本文只会让一个节点工作。多节点需要在Kubernetes之外配置一个可用的的网络环境,尽管这个额外的配置条件是显而易见的,(本节也不会去配置)。

Kubernetes包提供了一些服务:kube-apiserver, kube-scheduler, kube-controller-manager,kubelet, kube-proxy。这些服务通过systemd进行管理,配置信息都集中存放在一个地方:/etc/kubernetes。我们将会把这些服务运行到不同的主机上。第一台主机,centosmaster,将是Kubernetes 集群的master主机。这台机器上将运行kube-apiserver, kubecontroller-manager和kube-scheduler这几个服务,此外,master主机上还将运行etcd。其余的主机,fed-minion,将是从节点,将会运行kubelet, proxy和docker。

系统信息:

主机:

centos-master = 192.168.121.9

centos-minion = 192.168.121.65

准备主机:

添加virt7-testing源,在所有主机上(centos-master和centos-minion),使用下面信息添加源:

[virt7-testing]

name=virt7-testing

baseurl=http://cbs.centos.org/repos/virt7-testing/x86_64/os/

gpgcheck=0

在所有主机上(centos-master和centos-minion)都安装Kubernetes。这对etcd,docker和cadvisor也适用。

yum -y install --enablerepo = virt7-testing kubernetes

*注意使用etcd-0.4.6-7(这是该文档的临时版本)

如果你没有配套virt7-testing源安装etcd 0.4.6-7版,请用下面命令卸载它:

yum erase etcd

原因是在当前的的 virt7-testing源中,etcd包被更新了,会引起服务错误。 执行下面两行命令安装etcd-0.4.6-7

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
yum -y install --enablerepo = virt7-testing kubernetes

在所有主机的/etc/hosts文件中加入master和node节点,如果DNS中已经有了主机名,就不需要加了。

echo "192.168.121.9 centos-master
192.168.121.65 centos-minion" >> /etc/hosts

编辑/etc/kubernetes/config文件,加入以下内容:

# Comma separated list of nodes in the etcd cluster

KUBE_ETCD_SERVERS=”–etcd_servers=http://centos-master:4001″

# 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”

禁用master和node上的防火墙,因为如果有其他防火墙规则管理工具的话,docker会无法正常运行。

systemctl disable iptables-services firewalld
systemctl stop iptables-services firewalld

配置master主机上Kubernetes服务

按照下面的示例编辑/etc/kubernetes/apiserver文件:

# The address on the local server to listen to.

KUBE_API_ADDRESS=”–address=0.0.0.0″

# The port on the local server to listen on.

KUBE_API_PORT=”–port=8080″

# How the replication controller and scheduler find the kube-apiserver

KUBE_MASTER=”–master=http://centos-master:8080″

# Port kubelets listen on

KUBELET_PORT=”–kubelet_port=10250″

# Address range to use for services

KUBE_SERVICE_ADDRESSES=”–service-cluster-ip-range=10.254.0.0/16″

# Add your own!

KUBE_API_ARGS=””

启动master上恰当的服务

for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done

配置node节点上的Kubernetes服务 我们需要在节点上配置kubelet并启动kubelet和proxy

按照下面的示例编辑/etc/kubernetes/kubelet文件:Kubernetes中文文档

# The address for the info server to serve on

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=centos-minion”

# Add your own!

KUBELET_ARGS=””

启动节点上(fed-node)上恰当的服务

for SERVICES in kube-proxy kubelet docker; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
don

你应该完成了!

检查以确认现在集群中fed-master能够看到fed-node

$ kubectl get nodes
NAME LABELS STATUS
centos-minion <none> Ready

集群现在应该在运行了,启动一个用于测试的pod吧。


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



1649 次浏览
59次
 捐助