设为首页 收藏本站
查看: 1318|回复: 0

[经验分享] centos7 安装kubernetes1.4

[复制链接]

尚未签到

发表于 2017-6-4 09:08:51 | 显示全部楼层 |阅读模式
  192.168.251.9 master
192.168.251.231  node
  建议可以搭建etcd集群来做数据库存储,并搭建kube-dns,然后把k8s的日志落地到/var/log/kubernetes目录
  1.关闭防火墙



查看防火墙状态firewalld
systemctl status firewalld.service
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
安全设置
setenforce 0
关闭Selinux
/etc/selinux/config
SELINUX=disabled

查看iptables
systemctl status iptables.service
systemctl stop iptables.service

设置主机名
hostnamectl k8s-1
hostnamectl k8s-2


设置ntp
yum -y install ntp
systemctl start ntpd
systemctl enable ntpd
reboot重启机器
  2.加入yum源



cd /etc/yum.repos.d
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
wget http://mirrors.aliyun.com/repo/Centos-7.repo

rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
  3.安装
  master 需要安装 kubernetes-master etcd flannel docker
node需要安装 kubernetes-node flannel docker
  
4.安装master



yum install docker libdevmapper* ntp etcd flannel kubernetes-master -y
  (1)配置 etcd
所有的etcd都统一配置



cat /etc/etcd/etcd.conf
ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.163.148:2379" //masterIP端口
  
(2)配置apiserver



/etc/kubernetes/apiserver
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.251.9:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=192.168.0.0/16"
  
(3)配置controller-manager



/etc/kubernetes/controller-manager
KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --pod-eviction-timeout=10s"
  
(4)配置config



/etc/kubernetes/config
KUBE_MASTER="--master=http://192.168.251.9:8080"
  启动 注意先启动kubernetes,再启动docker



systemctl enable docker
systemctl restart flanneld docker
systemctl enable etcd kube-apiserver kube-scheduler kube-controller-manager
systemctl start etcd kube-apiserver kube-scheduler kube-controller-manager

systemctl stop etcd kube-apiserver kube-scheduler kube-controller-manager
  
5.node安装



yum -y install docker kubernetes-node flannel
systemctl start docker
systemctl enable docker
  (1)修改kube-node



[iyunv@localhost ~]# vi /etc/kubernetes/config
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://127.0.0.1:8080"
KUBE_MASTER="--master=http://192.168.251.9:8080"
  (2)配置kubelet



[iyunv@localhost ~]# vi /etc/kubernetes/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=127.0.0.1"
# 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=192.168.251.231"
# location of the api-server
KUBELET_API_SERVER="--api-servers=http://192.168.251.9: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=""
KUBELET_ARGS="--pod-infra-container-image=kubernetes/pause"
  
(3)配置flanneld



/etc/sysconfig/flanneld
FLANNEL_ETCD_ENDPOINTS="http://192.168.251.9:2379"
FLANNEL_ETCD_PREFIX="/coreos.com/network"
  
(4) 启动服务



systemctl restart flanneld docker
systemctl start kubelet kube-proxy
systemctl enable flanneld kubelet kube-proxy docker
  
(5)在master上验证服务.



# kubectl get nodes ## 获取k8s客户端

registry.alauda.cn/googlecontainer/kubernetes-dashboard-amd64
  6.在master上安装web ui kubernetes-dashboard:



cd /opt/docker
wget https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml

获取 kubernetes-dashboard.yaml文件 修改,
将google的替换本地的镜像
image: docker.io/ist0ne/kubernetes-dashboard-amd64
不要去google拉取镜像
imagePullPolicy: IfNotPresent
配置apiserver的ip和端口
- --apiserver-host=http://192.168.251.9:8080

修改完成后上传至master
运行 kubectl create -f kubernetes-dashboard.yaml
验证
# kubectl get pods --namespace=kube-system
NAME READY STATUS RESTARTS AGE
kubernetes-dashboard-747085828-0r767 0/1 ContainerCreating 0 33s

查看该容器的详细过程:
# kubectl describe pods kubernetes-dashboard-747085828-0r767 --namespace=kube-system
Name: kubernetes-dashboard-747085828-0r767
Namespace: kube-system
Node: 192.168.251.231/192.168.251.231
Start Time: Thu, 02 Mar 2017 14:51:55 +0800
Labels: app=kubernetes-dashboard
pod-template-hash=747085828
Status: Running
IP: 172.17.40.2
Controllers: ReplicaSet/kubernetes-dashboard-747085828
Containers:
kubernetes-dashboard:
Container ID: docker://5ac9c56ae81ceb37dae1c15e9a0d5b4d87cea5556c9cd92f5e667ac4659d815a
Image: docker.io/ist0ne/kubernetes-dashboard-amd64
Image ID: docker-pullable://docker.io/ist0ne/kubernetes-dashboard-amd64@sha256:faf7362425df7c542c65280ae15f2ba8e56a188d6999f4870b6821bb3ef5c637
Port: 9090/TCP
Args:
--apiserver-host=http://192.168.251.9:8080
State: Running
Started: Thu, 02 Mar 2017 14:52:39 +0800
Ready: True
Restart Count: 0
Liveness: http-get http://:9090/ delay=30s timeout=30s period=10s #success=1 #failure=3
Volume Mounts: <none>
Environment Variables: <none>
Conditions:
Type Status
Initialized True
Ready True
PodScheduled True
No volumes.
QoS Class: BestEffort
Tolerations: dedicated=master:Equal:NoSchedule
Events:
FirstSeen LastSeen Count From SubobjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
2m 2m 1 {default-scheduler } Normal Scheduled Successfully assigned kubernetes-dashboard-747085828-0r767 to 192.168.251.231
<invalid> <invalid> 1 {kubelet 192.168.251.231} spec.containers{kubernetes-dashboard} Normal Pulling pulling image "docker.io/ist0ne/kubernetes-dashboard-amd64"
<invalid> <invalid> 2 {kubelet 192.168.251.231} Warning MissingClusterDNS kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Falling back to DNSDefault policy.
<invalid> <invalid> 1 {kubelet 192.168.251.231} spec.containers{kubernetes-dashboard} Normal Pulled Successfully pulled image "docker.io/ist0ne/kubernetes-dashboard-amd64"
<invalid> <invalid> 1 {kubelet 192.168.251.231} spec.containers{kubernetes-dashboard} Normal Created Created container with docker id 5ac9c56ae81c; Security:[seccomp=unconfined]
<invalid> <invalid> 1 {kubelet 192.168.251.231} spec.containers{kubernetes-dashboard} Normal Started Started container with docker id 5ac9c56ae81c
  当有多个node,可以用该命令中看到容器被分配到哪个node上,启动后分配的ip地址等信息.
如果在结果中看到"State: Running"时,请移步到node查看容器运行状态,应该也是up的状态.
  
此时可以通过http://kube-apiserver:port/ui访问
  http://192.168.251.9:8080/ui
  7.监控之Docker监控——cadvisor k8s自带的单机版监控,每个node都有界面,



http://192.168.251.9:4194
http://192.168.251.231:4194/containers/

api接口 http://192.168.251.9:8080/swaager-ui
  8. 注意点&遇到的问题:
1). 注意服务的启动顺序,特别是master,在确保etcd启动的情况下,先启动apiserver
2). 注意yaml文件的格式缩进.
3). 如果发现刚创建的pod的status是depening,原因可能有几点:其一,客户端配置有listen 127.0.0.1的服务,master无法与其建立连接;其二,环境初始化没有做好;其三,移步node,使用docker logs 查看日志
4). kubernetes-dashboard.yaml文件中的containers images地址目前为公开的,09月30日会关闭.
5). 如果自己有国外vps,可在服务器上创建docker registry;先pull下google的k8s dashboard,然后push到自己的registry,自己修改下yaml中的image即可.
  9.参考文档:
  https://kubernetes.io/docs/tutorials/
http://blog.csdn.net/dream_broken/article/details/52954069
http://blog.csdn.net/swcj/article/details/54969234
http://www.iyunv.net/article/94343.htm
http://www.cnblogs.com/softlin/p/5675890.html
http://blog.csdn.net/freewebsys/article/details/52685592

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-383350-1-1.html 上篇帖子: Kubernetes 1.5安装 下篇帖子: cenots7单机安装Kubernetes
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表