k8s all-in-one 部署过程记录

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

这是一个将很多小工具功能集成一体的一个"工具". 功能: 1.AutoRun -> 查看一般登陆后启动的项 用法:Aio.exe -AutoRun 2.Clone -> 克隆帐户 用法: Aio.exe -Clone 正常帐号 要被克隆帐户 密码 例子: Aio.exe -Clone Administrator Guest test 帮助: Aio.exe -Clone 不需要在system权限下也可用 3.CheckClone -> 检测克隆帐户 用法: Aio.exe -CheckClone 不需要在system权限下也可用 4.CleanLog -> 清除日志 用法: Aio.exe -CleanLog 5.ConfigService -> 修改服务的启动类型 用法: Aio.exe -ConfigService 服务器 启动类型 例子: Aio.exe -ConfigService W3svc Demand ->手动启动 例子: Aio.exe -ConfigService W3svc Auto ->自动启动 例子: Aio.exe -ConfigService W3svc Disabled ->禁止启动 帮助: Aio.exe -ConfigService 6.DelUser -> 删除系统帐户 用法: Aio.exe -DelUser 帐户 例子: Aio.exe -DelUser Guest 帮助: Aio.exe -DelUser (注意: 可以删除系统内建帐号,象Administrator,Guest等,小心使用) 7.EnumService -> 列举系统服务 用法: Aio -EnumService All|Running|Stopped 例子: Aio -EnumService All -> 列举所有服务 例子: Aio -EnumService Running -> 列举正在运行的服务 例子: Aio -EnumService Stopped -> 列举停止了的服务 帮助: Aio -EnumService 8.FHS -> 检查系统隐藏服务 用法: Aio.exe -FHS 9.FGet -> FTP下载 用法: Aio.exe -FGet FTP地址 端口 用户名 密码 要下载文件名 例子: Aio.exe -FGet 12.12.12.12 21 test test a.exe 例子: Aio.exe -FGet 12.12.12.12 21 test test *.exe (下载所有exe文件) 帮助: Aio.exe -FGet 10.FindPassword -> 得到NT/2K所有登陆系统用户密码 用法: Aio.exe -FindPassword 11.InstallService -> 安装服务 用法: Aio.exe -InstallService 服务名 文件名 例子: Aio.exe -InstallService test test.exe 帮助: Aio.exe -InstallService 11.InstallService -> 安装驱动 用法: Aio.exe -InstallDrver 服务名 驱动文件名 例子: Aio.exe -InstallDriver test test.sys 帮助: Aio.exe -InstallDriver 12.KillTCP -> 杀掉一个TCP连接 用法: Aio.exe -KillTCP 本地IP 本地端口 远程地址 远程端口 例子: Aio.exe -KillTCP 192.168.1.1 80 61.61.61.61 7890 帮助: Aio.exe -KillTCP (参数可以通过netstat -an得到) 13.LogOff -> 注销系统 用法: Aio.exe -LogOff 14.MGet -> HTTP下载文件 用法: Aio.exe -MGet URL 例子: Aio.exe -MGet http://www.abc.com/test.exe abc.exe 帮助: Aio.exe -MGet 15.MPort -> 端口和程序关连映射 用法: Aio.exe -Mport 16.Never -> 将系统帐户登陆次数重置为0 用法: Aio.exe -Never 帐户 例子: Aio.exe -Never Guest 帮助: Aio.exe -Never 17.PowerOff -> 关机,关电源 用法: Aio.exe -PowerOff 18.Pslist -> 列进程 用法: Aio.exe -Pslist 19.Pskill -> 杀进程 用法: Aio.exe -Pskill PID|进程名 例子: Aio.exe -Pskill 3465 例子: Aio.exe -Pskill Iexplore 20.PortScan -> 端口扫描(Syn和TCP扫描) 用法: Aio.exe -PortScan Syn|TCP -S 起始地址 -E 终止地址 -P 端口列表 -T 线程数 例子: Aio.exe -PortScan Syn -S 61.129.1.1 -E 61.129.1.255 -P 3389 -T 512 /TS -> 扫描61.129.1.1到61.129.1.255的主机的3389端口,检查是否打开的是终端 例子: Aio.exe -PortScan Syn -S 61.129.12.12 -P 1-65535 -T 512 /TS -> 扫描61.129.12.12主机65535个端口,检查哪个端口打开的终端服务 例子: Aio.exe -PortScan Syn -S 61.129.12.12 -P 1-65535 -T 512 /S5 -> 扫描61.129.12.12主机65535个端口,检查哪个端口打开的Socks5服务 帮助: Aio.exe -PortScan (更多用法,请参考我发布的SynScan) 这个功能的用法是最多的,而且也是很强大的.(Syn扫描只适用于2K或以上系统) 21.PortRelay -> TCP数据转发 用法: Aio.exe -PortRelay 本地绑定端口 转发至的IP 转发至端口 例子: Aio.exe -PortRelay 3389 211.12.12.12 3389 帮助: Aio.exe -PortRelay 22.Reboot -> 重启系统 用法: Aio.exe -Reboot 23.RemoveService -> 删除服务 用法: Aio.exe -RemoveService 要删除的服务 例子: Aio.exe -RemoveService test 帮助: Aio.exe -RemoveService 24.StartService -> 启动服务 用法: Aio.exe -StartService 要启动的服务 例子: Aio.exe -StartService test 帮助: Aio.exe -StartService 25.StopService -> 停止服务 用法: Aio.exe -StopService 要停止的服务 例子: Aio.exe -StopService Test 帮助: Aio.exe -StopService 26.Sysinfo -> 查看系统信息 用法: Aio.exe -Sysinfo 27.ShutDown -> 关机 用法: Aio.exe -ShutDown 28.Terminal -> 安装终端服务(2K/XP/2003中都适用) 用法: Aio.exe -Terminal 端口 例子: Aio.exe -Terminal 3389 帮助: Aio.exe -Terminal 29.Unhide -> 查看星号密码(NT系统有效) 用法: Aio.exe -Unhide 30.WinInfo -> 查看帐户信息等 用法: Aio.exe -WinInfo 例子: Aio.exe -WinInfo 例子: Aio.exe -WinInfo Guest 如果发现什么bug,请到论坛中发贴或发信到WinEggDrop@hotmail.com build 04/01/2006这版本因为编译时参数问题,syn扫描什么都扫不到,但build 06/10/2006版本已修正.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值