美文网首页k8s
k8s安装部署

k8s安装部署

作者: Freestyle_0f85 | 来源:发表于2020-01-12 15:10 被阅读0次

    1.k8s集群的安装

    image.png

    除了核心组件,还有一些推荐的Add-ons:

    组件名称 说明
    kube-dns 负责为整个集群提供DNS服务
    Ingress Controller 为服务提供外网入口
    Heapster 提供资源监控
    Dashboard 提供GUI
    Federation 提供跨可用区的集群
    Fluentd-elasticsearch 提供集群日志采集、存储与查询

    1.2:修改IP地址、主机和host解析

    10.0.0.11 k8s-master 内存1G 10.0.0.12 k8s-node-1 内存1G 10.0.0.13 k8s-node-2 内存1G

    所有节点需要做hosts解析

    [root@k8s-master ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.0.0.11 k8s-master
    10.0.0.12 k8s-node-1
    10.0.0.13 k8s-node-2
    

    1.3:master节点安装etcd

    yum install etcd -y
    ​
    vim /etc/etcd/etcd.conf
    6行:ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
    21行:ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"
    ​
    systemctl start etcd.service
    systemctl enable etcd.service
    ​
    etcdctl set testdir/testkey0 0
    etcdctl get testdir/testkey0
    ​
    etcdctl -C http://10.0.0.11:2379 cluster-health
    

    etcd原生支持做集群

    1.4:master节点安装kubernetes

    yum install kubernetes-master.x86_64 -y
    ​
    vim /etc/kubernetes/apiserver 
    8行:  KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
    11行:KUBE_API_PORT="--port=8080"
    17行:KUBE_ETCD_SERVERS="--etcd-servers=http://10.0.0.11:2379"
    23行:KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
    ​
    vim /etc/kubernetes/config
    22行:KUBE_MASTER="--master=http://10.0.0.11:8080"
    ​
    systemctl enable kube-apiserver.service
    systemctl restart kube-apiserver.service
    systemctl enable kube-controller-manager.service
    systemctl restart kube-controller-manager.service
    systemctl enable kube-scheduler.service
    systemctl restart kube-scheduler.service
    

    检查服务是否安装正常

    [root@k8s-master ~]# kubectl get componentstatus 
    NAME                 STATUS    MESSAGE             ERROR
    scheduler            Healthy   ok                  
    controller-manager   Healthy   ok                  
    etcd-0               Healthy   {"health":"true"} 
    

    1.5node节点安装kubernetes

    yum install kubernetes-node.x86_64 -y
    ​
    vim /etc/kubernetes/config 
    22行:KUBE_MASTER="--master=http://10.0.0.11:8080"
    ​
    vim /etc/kubernetes/kubelet
    5行:KUBELET_ADDRESS="--address=0.0.0.0"
    8行:KUBELET_PORT="--port=10250"
    11行:KUBELET_HOSTNAME="--hostname-override=10.0.0.12"
    14行:KUBELET_API_SERVER="--api-servers=http://10.0.0.11:8080"
    ​
    systemctl enable kubelet.service
    systemctl restart kubelet.service
    systemctl enable kube-proxy.service
    systemctl restart kube-proxy.service
    

    在master节点检查

    [root@k8s-master ~]# kubectl get nodes
    NAME        STATUS    AGE
    10.0.0.12   Ready     6m
    10.0.0.13   Ready     3s
    

    1.6所有节点配置flannel网络

    yum install flannel -y
    sed -i 's#http://127.0.0.1:2379#http://10.0.0.11:2379#g' /etc/sysconfig/flanneld
    ​
    ##master节点:
    etcdctl mk /atomic.io/network/config   '{ "Network": "172.18.0.0/16" }'
    yum install docker -y
    systemctl enable flanneld.service 
    systemctl restart flanneld.service 
    service docker restart
    systemctl restart kube-apiserver.service
    systemctl restart kube-controller-manager.service
    systemctl restart kube-scheduler.service
    ​
    ##node节点:
    systemctl enable flanneld.service 
    systemctl restart flanneld.service 
    service docker restart
    systemctl restart kubelet.service
    systemctl restart kube-proxy.service
    

    1.7:配置master为镜像仓库

    #所有节点
    vim /etc/sysconfig/docker
    OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --registry-mirror=https://registry.docker-cn.com --insecure-registry=10.0.0.11:5000'
    ​
    systemctl restart docker
    ​
    #master节点
    docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry  registry
    

    配置registry镜像仓库

    2.什么是k8s,k8s有什么功能?

    k8s是一个docker集群的管理工具

    2.1k8s的核心功能

    自愈: 重新启动失败的容器,在节点不可用时,替换和重新调度节点上的容器,对用户定义的健康检查不响应的容器会被中止,并且在容器准备好服务之前不会把其向客户端广播。

    弹性伸缩: 通过监控容器的cpu的负载值,如果这个平均高于80%,增加容器的数量,如果这个平均低于10%,减少容器的数量

    服务的自动发现和负载均衡: 不需要修改您的应用程序来使用不熟悉的服务发现机制,Kubernetes 为容器提供了自己的 IP 地址和一组容器的单个 DNS 名称,并可以在它们之间进行负载均衡。

    滚动升级和一键回滚: Kubernetes 逐渐部署对应用程序或其配置的更改,同时监视应用程序运行状况,以确保它不会同时终止所有实例。 如果出现问题,Kubernetes会为您恢复更改,利用日益增长的部署解决方案的生态系统。

    2.2k8s的历史

    2014年 docker容器编排工具,立项

    2015年7月 发布kubernetes 1.0, 加入cncf基金会

    2016年,kubernetes干掉两个对手,docker swarm,mesos 1.2版

    2017年 1.5

    2018年 k8s 从cncf基金会 毕业项目

    2019年: 1.13, 1.14 ,1.15

    cncf cloud native compute foundation

    kubernetes (k8s): 希腊语 舵手,领航 容器编排领域,

    谷歌15年容器使用经验,borg容器管理平台,使用golang重构borg,kubernetes

    2.3k8s的安装

    yum安装 1.5 最容易安装成功,最适合学习的

    源码编译安装---难度最大 可以安装最新版

    二进制安装---步骤繁琐 可以安装最新版 shell,ansible,saltstack

    kubeadm 安装最容易, 网络 可以安装最新版

    minikube 适合开发人员体验k8s, 网络

    2.4k8s的应用场景

    k8s最适合跑微服务项目!

    相关文章

      网友评论

        本文标题:k8s安装部署

        本文链接:https://www.haomeiwen.com/subject/vyoiactx.html