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

[经验分享] Peter绿水原无忧,因风皱面;青山本不老,为雪白头

[复制链接]

尚未签到

发表于 2018-1-4 12:36:50 | 显示全部楼层 |阅读模式
  2台机器,1台为Master,1台为Node
  修改Host Master为dmaster,Node为dslave
  安装K8s and Etcd
  在Master机器上安装
  yum install etcd
  yum install kubernetes
  Node机器只需要
  yum install kubernetes
  安装k8s会自动安装docker,目前版本是1.8
  配置K8s
  Etcd默认的监听端口是4001,在这里修改
  vim /etc/etcd/etcd.conf
  修改Master机器K8s配置
  1. apiserver配置
  vim /etc/kubernetes/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
="--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:4001"  

  
# 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
="--secure-port=0"  

  2.K8s配置
  vim /etc/kubernetes/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://dmaster:8080"  
KUBE_ETCD_SERVERS
="--etcd-servers=http://dmaster:4001"  

  3.启动服务
  systemctl enable etcd kube-apiserver kube-controller-manager kube-scheduler
  systemctl restart etcd kube-apiserver kube-controller-manager kube-scheduler
  systemctl status etcd kube-apiserver kube-controller-manager kube-scheduler
  修改Node机器配置
  1. K8s配置
  vim /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=dslave"  

  
# location of the api
-server  
KUBELET_API_SERVER
="--api_servers=http://dmaster:8080"  

  
# Add your own
!  
KUBELET_ARGS
=""  

  2. 启动服务
  systemctl enable kube-proxy kubeletdocker
  systemctl restart kube-proxy kubeletdocker
  systemctl status kube-proxy kubeletdocker
  新增Pod
  1. 在Master机器查看Node状态
  

[iyunv@192 k8s]# kubectl get nodes  
NAME      LABELS                          STATUS
  
dslave    kubernetes.io
/hostname=dslave   Ready  

  2. 新建Pod资源文件
  

apiVersion: v1  
kind: Pod
  
metadata:
  
name: mysql
  
labels:
  
name: mysql
  
spec:
  
containers:
  

- resources:  
limits :
  
cpu:
0.5  
image: mysql
  
name: mysql
  

env:  

- name: MYSQL_ROOT_PASSWORD  
# change this
  
value: rootpwd
  
ports:
  

- containerPort: 3306  
name: mysql
  
volumeMounts:
  
# name must match the volume name below
  

- name: mysql-persistent-storage  
#
mount path within the container  
mountPath:
/var/lib/mysql  
volumes:
  

- name: mysql-persistent-storage  
cinder:
  
volumeID: bd82f7e2
-wece-4c01-a505-4acf60b07f4a  
fsType: ext4
  

  3. 导入资源
  kubectl create -f mysql.yaml
  4. 查看资源状态
  

[iyunv@192 k8s]# kubectl get pods  
NAME      READY     STATUS    RESTARTS   AGE
  
mysql
1/1       Running   0          1h  

  这里已经部署在运行了,所以是Running。Status开始是Ready。
  5. 查看日志
  Master机器日志
  tail -f /var/log/messages | grep kube
  

Dec 11 09:54:11 192 kube-scheduler: I1211 09:54:11.380994   20445 event.go:203] Event(api.ObjectReference{Kind:"Pod", Namespace:"default", Name:"mysql", UID:"2f192467-a030-11e5-8a55-000c298cfaa1", APIVersion:"v1", ResourceVersion:"3522", FieldPath:""}): reason: 'scheduled' Successfully assigned mysql to dslave  

  在部署Pod时,在Node机器日志中报错
  

Dec 11 09:30:22 dslave kubelet: E1211 09:30:22.745867   99650 manager.go:1557] Failed to create pod infra container: image pull failed for gcr.io/google_containers/pause:0.8.0, this may be because there are no credentials on this request.  details: (Network timed out while trying to connect to http://gcr.io/v1/repositories/google_containers/pause/images. You may want to check your internet connection or if you are behind a proxy.); Skipping pod "mysql_default"  
Dec 11 09:30:22 dslave kubelet: E1211 09:30:22.955470   99650 pod_workers.go:111] Error syncing pod bcbb3b8a-a02a-11e5-8a55-000c298cfaa1, skipping: image pull failed for gcr.io/google_containers/pause:0.8.0, this may be because there are no credentials on this request.  details: (Network timed out while trying to connect to http://gcr.io/v1/repositories/google_containers/pause/images. You may want to check your internet connection or if you are behind a proxy.)
  

  Google被墙了,下载资源包到本地
  http://www.sunmite.com/linux/installing-kubernetes-cluster-on-centos7-to-manage-pods-and-services/attachment/pause-0-8-0/
  在Node节点导入
  docker load --input pause-0.8.0.tar
  这是一个容器,负责Pod内部的网络
  还有一个问题是权限的问题
  

no API token found for service account default/default, retry after the token is automatically created and added to the service account  

  这样即可解决
  

#vim /etc/kubernetes/apiserver  
KUBE_ADMISSION_CONTROL
="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota"  

  
#systemctl restart kube
-apiserver.service  

运维网声明 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-431491-1-1.html 上篇帖子: kubernetes service分析 下篇帖子: Kubernetes 1.5集成heapster
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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