kubernetes集群安装篇(二)

  这里小编给你们介绍关于kubernetes的安装和命令的基本使用,固然本人感受只是一个过渡篇,毕竟真正的核心是它的维护和平常的生产使用。可是尽管如此,没有集群永远搞不了事情,因此开始进入正题:
  1. Kubernetes的安装配置
  2. 配置参数介绍
  3. Kubectl命令介绍node

1、Kubernetes的安装配置

Kubernetes的安装配置linux

(1)环境要求:

1)软硬件:

kubernetes集群安装篇(二)

2)服务:

#关闭防火墙:
[root@node01 ~]#systemctl disable firewalld
[root@node01 ~]#systemctl stop firewalld
#主机关闭selinux
[root@node01 ~]#setenforce 0
或者[root@node01 ~]#vim /etc/sysconfig/selinux (SELINUX=disabled)
#重启服务器
[root@node01 ~]#reboot now

(2)使用kubeadm工具快速安装kubernetes集群:

  从kubernetes1.4开始引入了命令kubeadm,致力于简化集群的安装和解决kubernetes集群的高可用问题,可是其中存在很多bug,所以不能用于生产,可是咱们能够用于学习测试。
① 安装kubeadm和相关工具(注意,分布式的集群,须要在每个节点上配置)git

#配置yum源,因为默认的yum源可能国内的网络没法访问,这里咱们配置一个国内的yum源
/etc/yum.repos.d/mritd.repo:
[mritd]
name=Mritd Repository
baseurl=https://yumrepo.b0.upaiyun.com/centos/7/x86_64
enable=1
gpgcheck=0
编写好以后:
[root@node01 ~]#yum clean all
[root@node01 ~]#yum makecache
#安装相应的工具
[root@node01 ~]#yum install -y docker kubelet kubeadm kubectl Kubernetes-cni
#启动如下服务
[root@node01 ~]#systemctl enable docker &&systemctl start docker
[root@node01 ~]#systemctl enable kubelet&&systemctl start kubelet

② 下载kubernetes的相关镜像
  这里最好配置一个国内docker的镜像加速器:(步骤略:)http://www.javashuo.com/article/p-rjlglpqu-ey.html
#在master节点上pull相关镜像docker

docker pull k8s.gcr.io/kube-apiserver:v1.13.0
docker pull k8s.gcr.io/kube-controller-manager:v1.13.0
docker pull k8s.gcr.io/kube-scheduler:v1.13.0
docker pull k8s.gcr.io/kube-proxy:v1.13.0
docker pull k8s.gcr.io/pause:3.1
docker pull k8s.gcr.io/etcd:3.2.24
docker pull k8s.gcr.io/coredns:1.2.6
docker pull k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0

docker tag k8s.gcr.io/kube-apiserver:v1.13.0 gladmo/kube-apiserver:v1.13.0
docker tag k8s.gcr.io/kube-controller-manager:v1.13.0 gladmo/kube-controller-manager:v1.13.0
docker tag k8s.gcr.io/kube-scheduler:v1.13.0 gladmo/kube-scheduler:v1.13.0
docker tag k8s.gcr.io/kube-proxy:v1.13.0 gladmo/kube-proxy:v1.13.0
docker tag k8s.gcr.io/pause:3.1 gladmo/pause:3.1
docker tag k8s.gcr.io/etcd:3.2.24 gladmo/etcd:3.2.24
docker tag k8s.gcr.io/coredns:1.2.6 gladmo/coredns:1.2.6
docker tag k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0 gladmo/kubernetes-dashboard-amd64:v1.10.0

③ 运行kubeadm init安装master
  至此准备工做就绪,执行 kubeadm init 命令便可一键完成kubernetes master的节点安装vim

[root@node01 ~]#kubeadm init --kubernetes-version=1.6.0
#安装一段时间后,会有相应的提示,当安装成功后,根据相应的提示执行一下命令:
[root@node01 ~]#cp /etc/Kubernetes/admin.conf $HOME
[root@node01 ~]#chown $(id -u ):$(id -g ) $HOME/admin.conf
[root@node01 ~]#export KUBECONFIG=$HOME/admin.conf

④ 安装node,加入集群(如下命令是安装在node节点的)centos

#安装相应服务
[root@node01 ~]#yum intall -y docker kubelet kubeadm kubectl kubernetes-cni
#启动相应服务
[root@node01 ~]#systemctl enable docker && systemctl start docker
[root@node01 ~]#systemctl enable kubelet && systemctl start kubelet
#执行kubeadm join 命令,加入集群:
[root@node01 ~]#kubeadm join –token c19151.ba4d5s1c15s1dw4f 192.168.130.131:6443
注意:这的token来自于,使用kubeadm安装master过程当中的最后一行字:
然后面的URL则是master的URL地址

⑤ 安装网络插件api

[root@node01 ~]#kubectl get nodes 
会发现,提示master节点是notready,这是由于尚未安装CNI网络插件
[root@node01 ~]#kubectl apply -f https://git.io/weave-kube-1.6  #一键安装

⑥ 验证kubernetes集群是否安装成功:安全

[root@node01 ~]#kubectl get pods –all-namespaces

注意:若是etcd、apiservice、controller-manager、dns、proxy、scheduler、weave-net这些pod都正常启动,表示集群安装成功。
  网上的搭建内容不少,这里小编只是简单的总结一下,能够参考:
https://www.jianshu.com/p/897e0f14be60bash

2、配置参数介绍

  固然若是想定制本身的kubernetes集群,不妨使用二进制的文件的方式安装kubernetes集群,固然这个是一个挑战,这里方便学习,小编只介绍了快速安装kubernetes集群的方法。固然通常企业级的kubernetes集群都是运维大佬们本身的搞的,这里小编介绍一下企业级的kubernetes集群的安装步骤:
 根据本身企业的需求使用二进制或者其余方式去安装集群(这里必定是绝对稳定的安装方式)
    各个服务的启动参数(在各自的配置文件中配置)
    Kubernetes集群的安全设置,这里过程比较难懂(我的以为,安全比bug还难解决)
    集群的网络配置(网络插件):flannel、openvSwitch、weave…
    私有仓库,能够经过docker的registry,或者企业级的harbor
 根据生产的需求,可能须要在集群的运行的时候,对服务进行不一样的修改,这里就须要了解相应的核心服务的配置:
   公共参数
    Kube-apiserver启动参数
   Kube-controller-manager启动参数
   Kube-scheduler启动参数
    Kubelet启动参数
   Kube-proxy启动参数
  小编这里就不一一给你们举例具体有哪些详细的参数,由于这个通常都是用的时候去找,就像Linux命令同样,不可能所有都记住的,为了弥补你们,小编找了一个《kubernetes权威指南》第二版的pdf,小编也是跟着这本书结合工做中的问题去学习kubernetes的,可是小编看了看介绍的kubernetes版本比较低,可能会有些知识不同。小编也会按期更新看这本书的心得以及相关知识点。服务器

《kubernetes权威指南》第二版的pdfhttp://down.51cto.com/data/2461262

3、Kubectl命令介绍

(1) kubectl语法介绍

kubectl命令语法以下:

$kubectl [command] [TYPE] [NAME] [flags]

其中command、TYPE、NAME、flags的含义以下:
command:子命令、用于操做kubernetes集群资源对象的命令,例如:create、delete、describe、get、apply等。
TYPE:资源对象类型,区分大小写,能以单数形式、复数形式或者简写形式表示,例如:
pod、service、deployment等等。
NAME:资源对象的名称,区分大小写,若是不指定名称,系统将返回属于TYPE的所有对象列表。
flags:kbectl子命令的可选参数,例如“-s”指定apiservice的URL地址而不用默认值。

(2) kubectl可操做的资源对象

kubernetes集群安装篇(二)

(3) kubectl子命令介绍

kubernetes集群安装篇(二)

(4) kubectl输出格式

  kubectl命令能够用于多种格式对结果进行显示,输出的格式经过-o参数指定:

$kubectl [command] [TYPE] [NAME] -o=<output_format>

kubernetes集群安装篇(二)
经常使用输出格式演示

$kubectl get pod <pod-name> -o =wide  #显示pod的更多信息
$kubectl get pod <pod-name> -o =yaml  #以yaml格式显示pod信息
$kubectl get pod <pod-name> -o =custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion  #自定义信息显示
$kubectl get pod <pod-name> -o =custom-columns-file=temp.txt  #基于文件
temp.txt文件内容:
NAME    RSRC
metadata.name   metadata.resourceVersion
#排序操做
$kubectl get pods –sort-by=.metadata.name  #将显示结果根据name进行排序

(5) kubectl操做示例

#建立资源对象
$kubectl create -f my-service.yaml -f my-rc.yaml  #根据具体文件建立资源对象
$kubectl create -f <directory>  #建立目录下全部的文件的资源对象

#查看资源对象
$kubectl get pods -n namespace_name
$ kubectl get rc,service -n namespace_name
#描述资源对象
$kubectl describe nodes <node-name> -n namespace_name
$kubectl describe pod pod_name -n namespace_name
$kubectl describe pods <rc-name>  #显示有RC管理的pod

#删除资源对象
$kubectl delete -f pod.yaml  #基于pod.yaml定义的名称删除pod
$kubectl delete pods ,service,-l name=<label-name> #删除全部包含label的pod和service
$kubectl delete pods --all 删除全部的pod

#执行容器命令
$kubectl exec <pod-name> date
$kubectl exec <pod-name> -c <container-name> date
$kubectl exec -it <pod-name> -c <container-name> /bin/bash

#查看容器的日志
$kubectl logs <pod-name>
$kubectl logs -f <pod-name> -c <container-name> #监控某一个pod中的某一个容器的日志
相关文章
相关标签/搜索