zoukankan      html  css  js  c++  java
  • k8s(未完待续)

    K8s简介
    Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。

    使用Kubernetes可以
      自动化容器的部署和复制
      随时扩展或收缩容器规模
      将容器组织成组,并且提供容器间的负载均衡
      很容易地升级应用程序容器的新版本
      提供容器弹性,如果容器失效就替换它,等等…

    Kubernetes解决的问题:
      调度 - 容器应该在哪个机器上运行
      生命周期和健康状况 - 容器在无错的条件下运行
      服务发现 - 容器在哪,怎样与它通信
      监控 - 容器是否运行正常
      认证 - 谁能访问容器
      容器聚合 - 如何将多个容器合并成一个工程



    Kubernetes组件:

    kubectl---客户端命令行工具,将接受的命令格式化后发送给kube-apiserver,作为整个系统的操作入口。
     
    kube-apiserver---作为整个系统的控制入口,以REST API服务提供接口。
     
    kube-controller-manager---用来执行整个系统中的后台任务,包括节点状态状况、Pod个数、Pods和Service的关联等。
     
    kube-scheduler---负责节点资源管理,接受来自kube-apiserver创建Pods任务,并分配到某个节点。
     
    etcd---负责节点间的服务发现和配置共享。
     
    kube-proxy---运行在每个计算节点上,负责Pod网络代理。定时从etcd获取到service信息来做相应的策略。

    kubelet---运行在每个计算节点上,作为agent,接受分配该节点的Pods任务及管理容器,周期性获取容器状态,反馈给kube-apiserver。
     
    DNS----一个可选的DNS服务,用于为每个Service对象创建DNS记录,这样所有的Pod就可以通过DNS访问服务了。

    flannel--------docker的网络解决方案,让集群中不同节点主机创建的docker都具备集群唯一的vip,使docker之间进行互联。

    k8s部署环境-------

    四台搭载centos7或者redhat7的服务器,关闭selinux和iptables,设置好本地dns解析(hosts),时间一定要同步,最好搭建一台ntp服务器。

    k8s-master--192.168.4.132

    k8s-have1--192.168.4.133

    k8s-have2--192.168.4.134

    k8s-have3--192.168.4.135

    安装k8s----------(master端和have端安装的都差不多,就有两个包不同)

    [root@k8s-master ~]# yum -y install etcd docker kubernetes

    [root@k8s-have1 ~]# yum -y install docker kubernetes flannel

    [root@k8s-have2 ~]# yum -y install docker kubernetes flannel

    [root@k8s-have3 ~]# yum -y install docker kubernetes flannel

    更改配置文件(master端)

    etcd配置文件---

    [root@k8s-master ~]# vim /etc/etcd/etcd.conf

    ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

    ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"(etcd监听的哪些地址,0.0.0.0代表全网地址)

    ETCD_NAME="default"(名字默认)

    ETCD_ADVERTISE_CLIENT_URLS="http://localhosti:2379"(对外宣告的地址,为本机的地址)

    config文件---------

    [root@k8s-master ~]# vim /etc/kubernetes/config

    KUBE_MASTER="--master=http://k8s-master:8080"(对外宣告的地址)

    kubernetes配置文件--------

    [root@k8s-master ~]# vim /etc/kubernetes/apiserver
    KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"(0.0.0.0 监听任意地址)
    KUBE_API_PORT="--port=8080"(监听8080端口,默认注释的,要开启)
    KUBE_ADMISSION_CONTROL="--admission--control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"(把serviceaccount这个系统用户删除)


    更改配置后重启所有服务并设置开机自启,查看运行状态-------

    systemctl restart  etcd docker kube-apiserver kube-controller-manager kube-scheduler

    systemctl enable etcd docker kube-apiserver kube-controller-manager kube-scheduler

    systemctl status etcd docker kube-apiserver kube-controller-manager kube-scheduler

    etcd中配置flannel的配置---------------

    [root@k8s-master ~]# etcdctl mk /atomic.io/network/config '{"Network":172.17.0.0/16}' {"Network":"172.17.0.0/16"}

  • 相关阅读:
    JavaScript基础知识(数组的方法)
    JavaScript基础知识(字符串的方法)
    JavaScript基础知识(Number的方法)
    JavaScript基础知识(函数)
    JavaScript基础知识(三个判断、三个循环)
    JavaScript基础知识(数据类型)
    JavaScript基础知识(初识JS)
    iOS开发--Swift 基于AFNetworking 3.0的网络请求封装
    iOS开发--Swift 如何完成工程中Swift和OC的混编桥接(Cocoapods同样适用)
    如何为Swift进行宏定义
  • 原文地址:https://www.cnblogs.com/Hydraxx/p/9302711.html
Copyright © 2011-2022 走看看