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

  1. ###
  2. # kubernetes system config
  3. #
  4. # The following values are used to configure the kube-apiserver
  5. #
  6.  
  7. # The address on the local server to listen to.
  8. KUBE_API_ADDRESS="--address=0.0.0.0"
  9.  
  10. # The port on the local server to listen on.
  11. KUBE_API_PORT="--port=8080"
  12.  
  13. # Port minions listen on
  14. KUBELET_PORT="--kubelet_port=10250"
  15.  
  16. # Comma separated list of nodes in the etcd cluster
  17. KUBE_ETCD_SERVERS="--etcd_servers=http://127.0.0.1:4001"
  18.  
  19. # Address range to use for services
  20. KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
  21.  
  22. # default admission control policies
  23. KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
  24.  
  25. # Add your own!
  26. KUBE_API_ARGS="--secure-port=0"

2.K8s配置

vim /etc/kubernetes/config

  1. # kubernetes system config
  2. #
  3. # The following values are used to configure various aspects of all
  4. # kubernetes services, including
  5. #
  6. # kube-apiserver.service
  7. # kube-controller-manager.service
  8. # kube-scheduler.service
  9. # kubelet.service
  10. # kube-proxy.service
  11. # logging to stderr means we get it in the systemd journal
  12. KUBE_LOGTOSTDERR="--logtostderr=true"
  13.  
  14. # journal message level, is debug
  15. KUBE_LOG_LEVEL="--v=0"
  16.  
  17. # Should this cluster be allowed to run privileged docker containers
  18. KUBE_ALLOW_PRIV="--allow_privileged=false"
  19.  
  20. # How the controller-manager, scheduler, and proxy find the apiserver
  21. KUBE_MASTER="--master=http://dmaster:8080"
  22. 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

  1. # kubernetes kubelet (minion) config
  2.  
  3. # The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
  4. KUBELET_ADDRESS="--address=127.0.0.1"
  5.  
  6. # The port for the info server to serve on
  7. KUBELET_PORT="--port=10250"
  8.  
  9. # You may leave this blank to use the actual hostname
  10. KUBELET_HOSTNAME="--hostname_override=dslave"
  11.  
  12. # location of the api-server
  13. KUBELET_API_SERVER="--api_servers=http://dmaster:8080"
  14.  
  15. # Add your own!
  16. KUBELET_ARGS=""

2. 启动服务

systemctl enable kube-proxy kubeletdocker

systemctl restart kube-proxy kubeletdocker

systemctl status kube-proxy kubeletdocker

新增Pod


1. 在Master机器查看Node状态

  1. [root@ k8s]# kubectl get nodes
  2. NAME LABELS STATUS
  3. dslave kubernetes.io/hostname=dslave Ready

2. 新建Pod资源文件

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: mysql
  5. labels:
  6. name: mysql
  7. spec:
  8. containers:
  9. - resources:
  10. limits :
  11. cpu: 0.5
  12. image: mysql
  13. name: mysql
  14. env:
  15. - name: MYSQL_ROOT_PASSWORD
  16. # change this
  17. value: rootpwd
  18. ports:
  19. - containerPort:
  20. name: mysql
  21. volumeMounts:
  22. # name must match the volume name below
  23. - name: mysql-persistent-storage
  24. # mount path within the container
  25. mountPath: /var/lib/mysql
  26. volumes:
  27. - name: mysql-persistent-storage
  28. cinder:
  29. volumeID: bd82f7e2-wece-4c01-a505-4acf60b07f4a
  30. fsType: ext4

3. 导入资源

kubectl create -f mysql.yaml

4. 查看资源状态

  1. [root@ k8s]# kubectl get pods
  2. NAME READY STATUS RESTARTS AGE
  3. mysql / Running 1h

这里已经部署在运行了,所以是Running。Status开始是Ready。

5. 查看日志

Master机器日志

tail -f /var/log/messages | grep kube

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

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

  1. Dec :: dslave kubelet: E1211 ::22.745867 manager.go:] Failed to create pod infra container: image pull failed for gcr.io/google_containers/pause:0.8., 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"
  2. Dec :: dslave kubelet: E1211 ::22.955470 pod_workers.go:] Error syncing pod bcbb3b8a-a02a-11e5-8a55-000c298cfaa1, skipping: image pull failed for gcr.io/google_containers/pause:0.8., 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内部的网络

还有一个问题是权限的问题

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

这样即可解决

  1. #vim /etc/kubernetes/apiserver
  2. KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota"
  3.  
  4. #systemctl restart kube-apiserver.service

CentOS7 安装kubernetes的更多相关文章

  1. CentOS7安装Kubernetes

    CentOS7安装Kubernetes 安装Kubernetes时候需要一台机器作为管理机器,1台或者多台机器作为集群中的节点. 系统信息: Hosts: 请将IP地址换成自己环境的地址. cento ...

  2. centos7安装kubernetes 1.1

    原文地址:http://foxhound.blog.51cto.com/1167932/1717105 前提:centos7 已经update yum update -y 一.创建yum源 maste ...

  3. Centos7安装Kubernetes k8s v1.16.0 国内环境

    一. 为什么是k8s v1.16.0? 最新版的v1.16.2试过了,一直无法安装完成,安装到kubeadm init那一步执行后,报了很多错,如:node xxx not found等.centos ...

  4. centos7安装kubernetes k8s 1.18

    可以参考其他网友的阿里云搭建k8s高可用集群(1.17.3) https://www.cnblogs.com/gmmy/p/12372805.html 准备四台centos7虚拟机,用来安装k8s集群 ...

  5. centos7安装kubernetes k8s 1.16

    #初始化服务器 echo 'export LC_ALL="en_US.UTF-8"' >> /etc/profile source /etc/profile #!/bi ...

  6. 使用kubeadm 安装 kubernetes 1.12.0

    目录 简介: 架构说明: 系统配置: 1.1 关闭防火墙 1.2 禁用SELinux 1.3 关闭系统Swap 1.4 安装docker 使用kubeadm部署Kubernetes: 2.1 安装ku ...

  7. 使用kubeadm 安装 kubernetes 1.15.1

    简介: Kubernetes作为Google开源的容器运行平台,受到了大家的热捧.搭建一套完整的kubernetes平台,也成为试用这套平台必须迈过的坎儿.kubernetes1.5版本以及之前,安装 ...

  8. Centos7上安装Kubernetes集群部署docker

    一.安装前准备1.操作系统详情需要三台主机,都最小化安装 centos7.3,并update到最新 [root@master ~]# (Core) 角色 主机名 IPMaster master 192 ...

  9. centos7.3 kubernetes/k8s 1.10 离线安装 --已验证

    本文介绍在centos7.3使用kubeadm快速离线安装kubernetes 1.10. 采用单master,单node(可以多node),占用资源较少,方便在笔记本或学习环境快速部署,不适用于生产 ...

随机推荐

  1. java移位运算符具体解释

    java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和>>>(无符号右移). 1. 左移运算符 左移运算符<<使指定值的全部位都左移 ...

  2. 人们的Live Meeting系列 (floyd)

    人活着系列之开会 Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 人活着假设是为了事业.从打工的到老板的,个个都在拼搏,奋斗了多年最终有了非凡成就.有了一 ...

  3. LVM逻辑卷管理@设备、格式、摩、引导自己主动安装一个完整的章节

    离http://www.it165.net/admin/html/201307/1553.html LVM的重要性,在这里我也就不多说了,今天和大家分享一下.LVM设备,而且安装方式. 首先呢,先让我 ...

  4. hdu 2391 Filthy Rich

    单纯dp 水一 处理时间点,第一行和第一列特殊处理: 其余的w[i][j]=show(w[i-1][j-1],w[i-1][j],w[i][j-1]); <span style="fo ...

  5. Oracle 11g client安装和配置。

    数据库和client在不同的机器. 安装前的准备.在安装过程中Oracle数据库server导航到下面的文件夹. 将listener.ora和tnsnames.ora中的host中的localhost ...

  6. centos7关闭防火墙(转)

    直接命令:service firewalld stop 1. Disable Firewalld Service. [root@rhel-centos7-tejas-barot-linux ~]# s ...

  7. enumerateObjectsUsingBlock、enumerateObjectsWithOptions、enumerateObjectsAtIndexes、makeObjectsPerfor使用

    OC至 NSArray它提供了一个方便的遍历block,以下具体说明 第一.enumerateObjectsUsingBlock NSArray *array=@[@"aa",@& ...

  8. socket计划编制的原则

    socket编程原理 1.问题的引入 1) 普通的I/O操作过程: UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-rea ...

  9. WebLogic部署集群和代理服务器

    应公司要求,最近在学习weblogic集群这块的知识,下面我把我这几天学到的,以及过程中遇到的问题及如何解决的,分享给大家.首先,weblogic是Orcale公司的一款产品,至于其作用,我想就不用我 ...

  10. c# 通过配置自动附加数据库

    using System; using System.Collections.Generic; using System.Windows.Forms; using System.Data.SqlCli ...