k8s是什么
k8s全称kubernetes,这个名字大家应该都不陌生,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s,并且当前k8s已经主导了云业务流程,推动了微服务架构等热门技术的普及和落地,正在如火如荼的发展。
k8s有什么用
用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。 简单点说,k8s可以方便管理多个集群甚至上千的集群。
想象一样,如果你需要部署一个应用,如果有一个机器去部署还算简单,十个的话费一些力就好了,如果是几百以上呢。如此机械的流程未免有些繁琐,k8s的出现正好可以解决这个问题,他可以在多个集群中部署,更新,删除容器。k8s可以使用docker作为容器,启动服务达到分钟级甚至秒级。
安装k8s
你需要2台或以上安装有CentOS的机器。
主机:
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
done
你应该完成了!
- 检查以确认现在集群中fed-master能够看到fed-node
$ kubectl get nodes
NAME LABELS STATUS
centos-minion <none> Ready
集群现在应该在运行了,启动一个用于测试的pod吧
更多相关资料,请看官网。Kubernetes(k8s)中文文档 目录_Kubernetes中文社区