k8s all-in-one 部署过程记录
    更新Ubuntu18.04的源
        备份:cp /etc/apt/sources.list /etc/apt/sources.list.bak
        查看系统代号:lsb_release -c
        修改成阿里源(https://opsx.alibaba.com/mirror?lang=zh-cn):vi /etc/apt/sources
            deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
            deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
            deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
            deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
            deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
            deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
        更新软件列表
            apt-get update
        修改k8s的源为阿里源,安装kubelet kubeadm kubectl
            apt-get update && apt-get install -y apt-transport-https
            curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
            cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
            deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
            EOF  
            apt-get update
            apt-get install -y kubelet kubeadm kubectl
            systemctl enable kubelet && systemctl start kubelet
    禁掉swap分区
        sudo swapoff -a
        #要永久禁掉swap分区,打开如下文件注释掉swap那一行
        sudo vi /etc/fstab
    可以得到机器的MAC和product_uuid
        gemfield@sl:~$ ip link
        1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
            link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        2: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
            link/ether 60:eb:69:af:b2:76 brd ff:ff:ff:ff:ff:ff
        3: wlp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
            link/ether 5c:ac:4c:bf:6d:12 brd ff:ff:ff:ff:ff:ff
        4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
            link/ether 02:42:d2:2f:a7:0b brd ff:ff:ff:ff:ff:ff

gemfield@sl:~$ sudo cat /sys/class/dmi/id/product_uuid
        20FD5881-4A7E-11CB-A0FC-C6E1CB03C2A6

确保Kubunetes能正确使用机器的网卡设备,在多网卡的环境下,有必要的时候你要设置路由。

另外,Master Node上需要以下TCP端口:
            6443*,Kubernetes API server
            2379-2380, etcd server client API
            10250, Kubelet API
            10251,kube-scheduler
            10252,kube-controller-manager
            10255,Read-only Kubelet API

而worker node上需要以下TCP端口:
            10250,Kubelet API
            10255,Read-only Kubelet API
            30000-32767,NodePort Services**
    下载Kubernetes的相关镜像
        因为连不上Google,使用github上别人下载好的镜像。
        下载脚本:
            #!/bin/bash

images=(kube-proxy-amd64:v1.11.1
                kube-scheduler-amd64:v1.11.1
                kube-controller-manager-amd64:v1.11.1
                kube-apiserver-amd64:v1.11.1
                etcd-amd64:3.2.18
                coredns:1.1.3
                pause:3.1
                pause-amd64:3.1
                kubernetes-dashboard-amd64:v1.8.3
                k8s-dns-sidecar-amd64:1.14.8
                k8s-dns-kube-dns-amd64:1.14.8
                k8s-dns-dnsmasq-nanny-amd64:1.14.8
            )

for image in ${images[@]};do
                echo $image
                docker pull quxf2012/$image
                #docker tag quxf2012/$image gcr.io/google_containers/$image 
                #k8s.gcr.io in use,创建标签成功后删除,临时标签
                docker tag quxf2012/$image k8s.gcr.io/$image && docker rmi quxf2012/$image
            done

#down quay.io/coreos/flannel:v0.10.0-amd64

docker pull quxf2012/kube-flannel:v0.10.0-amd64
            docker tag quxf2012/kube-flannel:v0.10.0-amd64 quay.io/coreos/flannel:v0.10.0-amd64 && docker rmi quxf2012/kube-flannel:v0.10.0-amd64

安装docker
        在每台机器上安装docker,在今天(2018年4月27日)这个时刻,这些docker版本是验证过的:v1.12、 v1.11、v1.13和17.03。使用下面的命令来安装docker。

gemfield@sl:~$ sudo apt-get update
        gemfield@sl:~$ sudo apt-get install -y docker.io
        (注:docker版本未验证的也不一定不能用,现在在Ubuntu18.04上使用的是17.12.1-ce的版本)
    初始化master node 
        kubeadm init --kubernetes-version=v1.11.1 --pod-network-cidr=192.168.111.0/24 --apiserver-advertise-address=192.168.211.129
        (注:选项--kubernetes-version=v1.11.1是必须的,这样就能使用下载好的服务镜像,否则会因为访问google网站被墙而无法执行命令。这里使用v1.11.1版本,与上面下载的相关容器镜像的版本有关。)
        上面的输出信息建议保存一份,后续添加工作节点还要用到(我们都装在master节点)。
        Kubernetes Master初始化成功后,按提示执行以下操作:
            mkdir -p $HOME/.kube
            sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
            sudo chown $(id -u):$(id -g) $HOME/.kube/config
        root@ubuntu:~/image# kubectl get nodes
            NAME      STATUS     ROLES     AGE       VERSION
            ubuntu    NotReady   master    3m        v1.11.1
        root@ubuntu:~# kubectl get pods --all-namespaces
            NAMESPACE     NAME                             READY     STATUS    RESTARTS   AGE
            kube-system   coredns-78fcdf6894-k9xlj         0/1       Pending   0          3m
            kube-system   coredns-78fcdf6894-rn2xt         0/1       Pending   0          3m
            kube-system   etcd-ubuntu                      1/1       Running   0          2m
            kube-system   kube-apiserver-ubuntu            1/1       Running   0          3m
            kube-system   kube-controller-manager-ubuntu   1/1       Running   0          2m
            kube-system   kube-proxy-g6q9z                 1/1       Running   0          3m
            kube-system   kube-scheduler-ubuntu            1/1       Running   0          3m
        (至此完成了Master节点上k8s软件的安装,但集群内还没有可用的工作Node,也缺少容器网络的配置。查看pods状态信息,可以看到还有coredns-78fcdf6894-k9xlj和coredns-78fcdf6894-rn2xt的pod处于Pending状态,这是受缺少容器网络支持的影响而造成的。查看nodes状态信息,看到ubuntu节点的状态为NotReady 。)
    安装网络插件
        再详细看一下Master节点初始化时输出的提示信息,包括了网络插件的安装建议:
            You should now deploy a pod network to the cluster.
            Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
              https://kubernetes.io/docs/concepts/cluster-administration/addons/
        这里是选择安装weave插件,在Master节点上执行:
            root@ubuntu:~# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
                serviceaccount/weave-net created
                clusterrole.rbac.authorization.k8s.io/weave-net created
                clusterrolebinding.rbac.authorization.k8s.io/weave-net created
                role.rbac.authorization.k8s.io/weave-net created
                rolebinding.rbac.authorization.k8s.io/weave-net created
                daemonset.extensions/weave-net created
        过一会再看,dns变成running:
            root@ubuntu:~# kubectl get pods --all-namespaces
                NAMESPACE     NAME                             READY     STATUS    RESTARTS   AGE
                kube-system   coredns-78fcdf6894-k9xlj         1/1       Running   0          6m
                kube-system   coredns-78fcdf6894-rn2xt         1/1       Running   0          6m
                kube-system   etcd-ubuntu                      1/1       Running   0          6m
                kube-system   kube-apiserver-ubuntu            1/1       Running   0          6m
                kube-system   kube-controller-manager-ubuntu   1/1       Running   0          6m
                kube-system   kube-proxy-g6q9z                 1/1       Running   0          6m
                kube-system   kube-scheduler-ubuntu            1/1       Running   0          6m
                kube-system   weave-net-b2x9p                  2/2       Running   0          1m
            root@ubuntu:~# kubectl get nodes
                NAME      STATUS    ROLES     AGE       VERSION
                ubuntu    Ready     master    8m        v1.11.1
        安装一个weave网络管理工具:
            root@ubuntu:~# curl -L git.io/weave -o /usr/local/bin/weave
                  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                                 Dload  Upload   Total   Spent    Left  Speed
                  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
                  0     0    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--     0
                100   595    0   595    0     0    152      0 --:--:--  0:00:03 --:--:--   426
                100 50382  100 50382    0     0   6462      0  0:00:07  0:00:07 --:--:-- 21097
            root@ubuntu:~# chmod a+x /usr/local/bin/weave
            root@ubuntu:~# weave status
                Unable to find image 'weaveworks/weaveexec:2.3.0' locally
                2.3.0: Pulling from weaveworks/weaveexec
                88286f41530e: Already exists 
                ad4e50ed2c08: Already exists 
                b3f4c952e7c2: Already exists 
                5e27cb7f1c2b: Already exists 
                f9dfb03c1d7b: Already exists 
                21771db04786: Pull complete 
                5fbda086495f: Pull complete 
                80427f885b22: Pull complete 
                0c4698905755: Pull complete 
                Digest: sha256:eb8eb1d83fc58716b20621d397d63737a18f86cbed1fedb1d71671cfc486517b
                Status: Downloaded newer image for weaveworks/weaveexec:2.3.0

Version: 2.3.0 (failed to check latest version - see logs; next check at 2018/07/24 09:57:58)

Service: router
                       Protocol: weave 1..2
                           Name: 8e:49:65:cb:32:0f(ubuntu)
                     Encryption: disabled
                  PeerDiscovery: enabled
                        Targets: 1
                    Connections: 1 (1 failed)
                          Peers: 1
                 TrustedSubnets: none

Service: ipam
                         Status: ready
                          Range: 10.32.0.0/12
                  DefaultSubnet: 10.32.0.0/12
    安装Node并加入集群
        因为是all-in-one,所以需要让master节点可以创建pod
            kubectl taint nodes --all node-role.kubernetes.io/master-
        若另有计算节点,将计算节点加入集群
        kubeadm join 192.168.211.129:6443 --token 52aacm.pek7by4gime8pqsy --discovery-token-ca-cert-hash sha256:e319af0fca7bd8934a530e87f554dd4d40d51ac06c8a9e5322e2d7f8b51b009e
        token过期处理:
            kubeadm token create  创建新的token
            root@ubuntu:~#  openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
            c6838c102e8006690894c5dedba904fb76f212c6b02d6ba7a6bcb6a8d6b558d9
            加入集群:
                kubeadm join 192.168.211.132:6443 --token r9qkfx.qz68w0dttjq6hiae --discovery-token-ca-cert-hash sha256:c6838c102e8006690894c5dedba904fb76f212c6b02d6ba7a6bcb6a8d6b558d9

k8s all-in-one 部署过程记录相关推荐

  1. Skywalking8.5.0-ES7 Rancher部署及ES高可用部署过程记录

    背景 近期本司内部需要用到Skywalking进行链路追踪和日志收集,故记录下部署过程,方便后期学习与查询. ElasticSearch高可用部署 ## 1.docker启动elasticsearch ...

  2. Linkis计算中间件部署过程记录

    #Linkis安装 sudo useradd hadoop vim /etc/sudoershadoop ALL=(ALL) NOPASSWD: NOPASSWD: ALL vim /home/had ...

  3. K8S 1.18.0 以及KubeEdge 1.10.3 三机安装部署(含过程记录及遇到的报错和解决方法)

    因为网络上大多数教程只有部署相关的命令,而无输入命令后正确界面的显示样例,因此在参考网络上教程并跟随实现的过程中,我将过程进行截图记录,供大家参考.希望对大家有帮助~ 一. K8S部署 选用了三台虚拟 ...

  4. 容器化部署(k8s)任务调度平台xxl-job(部署过程及踩坑问题记录)

    文章预览: 1 部署过程(下方ip代表服务器的ip哈) 1.1 制作服务打包镜像DockerFile 1.2 制作执行脚本run.sh 1.3 jar包上上传 1.4 kuboard创建----配置信 ...

  5. [项目过程中所遇到的各种问题记录]部署篇——项目部署过程中那些纠结的问题-SQLServer...

    前一篇文章说了些有关IIS的,这篇则是说SQLServer的,相比IIS来说,SQLServer的配置过程中问题就少了许多,而且都比较有针对性,下面开始记录: 注:由于实际项目的开发都是基于SQL20 ...

  6. ASP.NET Core on K8S深入学习(2)部署过程解析与部署Dashboard

    上一篇<K8S集群部署>中搭建好了一个最小化的K8S集群,这一篇我们来部署一个ASP.NET Core WebAPI项目来介绍一下整个部署过程的运行机制,然后部署一下Dashboard,完 ...

  7. k8s dashboard_ASP.NET Core on K8S深入学习(2)部署过程解析与部署Dashboard

    文章转载于公众号[恰同学骚年],作者Edison Zhou 上一篇<K8S集群部署>中搭建好了一个最小化的K8S集群,这一篇我们来部署一个ASP.NET Core WebAPI项目来介绍一 ...

  8. hexo 博客创建、部署、美化过程记录

    hexo 博客创建.部署.美化过程记录 前言 作为一名信息工程专业的学生,编程语言没学多少,正规讲过的且了解比较深的是C++,也只是一些基本的编程,连数据库.数据结构还有各种算法都没学过,python ...

  9. 使用ATX-server部署过程中遇到的问题-遇到就更,作为记录

    最近开始做自动化测试相关工作,部署atx-server 安卓集群管理,记录下部署过程中遇到的问题 一:atxserver不显示设备,使用命令:python main.py --server local ...

  10. 使用Kubeadm创建k8s集群之部署规划(三十一)

    前言 上一篇我们讲述了使用Kubectl管理k8s集群,那么接下来,我们将使用kubeadm来启动k8s集群. 部署k8s集群存在一定的挑战,尤其是部署高可用的k8s集群更是颇为复杂(后续会讲).因此 ...

最新文章

  1. 倒计时1天!「2019 Python开发者日」报名即将关闭(附参会提醒)
  2. [转载]中国工商银行软件开发部门职业发展
  3. 小说中场景的功能_《流浪地球》:从小说到电影
  4. 天猫公布618战报 苹果2分45秒破亿 你贡献了多少?
  5. 【Java】 定时任务Timer与ScheduledExecutorService的区别
  6. mysql三大范式 答案_数据库逻辑设计之三大范式通俗理解,一看就懂,书上说的太晦涩...
  7. 小米会在芯片产业异军突起吗?
  8. PyCharm2021设置成中文版
  9. JQuery函数大全
  10. 极光java sdk_极光使用服务端使用java sdk 出现异常 日志如下
  11. 【RX解码MIPI输出】XS9922B 4通道模拟复合视频解码芯片 功能对标TP2815
  12. 新闻分类:多分类问题
  13. 关于本地mysql和小皮mysql两者不可同时存在
  14. C++两个函数可以相互递归吗_设计递归函数竟然这么简单!
  15. ADB修改mumu模拟器分辨率
  16. 赛事解读|中国工程机器人大赛暨国际公开赛——飞思实验室空中机器人项目-仿真与自主任务赛项
  17. scala中的break和continue
  18. 人在四合院:我变成了何雨柱(二)
  19. 企业为什么要建立独立电商网站?
  20. 广东工业大学2017新生赛(决赛)-网络同步赛 1007 白色相簿的季节【全错位排列】

热门文章

  1. 怎么用dos系统进入服务器,怎么用DOS命令方式启动系统服务
  2. 直流电机、减速器、编码器与TB6612FNG知识整理
  3. 数据库索引与视图实验
  4. 锐起无盘服务器蓝屏死机,正确配置减少锐起无盘系统死机蓝屏
  5. 税控盘系统参数设置服务器,税控盘设置服务器地址
  6. 最新emoji表情代码大全_7张最新有创意好看的早安问候动画表情图片 暖心的早上好问候祝福动态图片表情大全...
  7. 温度传感器的类型原理特点和应用
  8. MinIO 快速入门
  9. mysql gay锁_MySQL事务(二) - osc_gay6i4ve的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. java程序员到J2EE架构师