在 Ubuntu 上安装 K8S教程 |
您所在的位置:网站首页 › ubuntu安装sshpass › 在 Ubuntu 上安装 K8S教程 |
在 Ubuntu 上安装 K8S教程
目录在 Ubuntu 上安装 K8S教程1,更新系统源2,更新软件包3,安装 Docker也可以参考其它过程安装4,安装 K8S5,初始化6,使主节点生效7,查看 Node8,安装面板9,访问面板(dashboard)10,添加 Node 进行测试
1,更新系统源
如果系统本身自带得镜像地址,服务器在国外,下载速度会很慢,可以打开 /etc/apt/sources.lis 替换为国内得镜像源。 apt upgrade 2,更新软件包将系统得软件组件更新至最新稳定版本。 apt update 3,安装 Docker 也可以参考其它过程安装 apt-get install docker.io如果需要配置为开机启动,可执行以下命令 systemcd enable docker systemcd start docker如果要配置 Docker 镜像加速,打开 /etc/docker/daemon.json 文件,registry-mirrors 增加或修改,加入https://registry.docker-cn.com 这个地址,也可以填写阿里云腾讯云等镜像加速地址。 示例 { "registry-mirrors": [ "https://registry.docker-cn.com" ] }重启 Docker,使配置生效 sudo systemctl daemon-reload sudo systemctl restart docker 4,安装 K8S执行以下命令安装 https 工具以及 k8s。 apt-get update && apt-get install -y apt-transport-https curl apt-get install -y kubelet kubeadm kubectl --allow-unauthenticated执行下面命令测试是否正常 kubeadm init如果安装时,出现下面情况,说明系统得镜像源中,找不到 k8s 的软件包。 No apt package "kubeadm", but there is a snap with that name. Try "snap install kubeadm" No apt package "kubectl", but there is a snap with that name. Try "snap install kubectl" No apt package "kubelet", but there is a snap with that name. Try "snap install kubelet"可以打开 /etc/apt/sources.list 文件,添加一行 deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main再次执行安装 K8s 的命令。 如果出现 The following signatures couldn't be verified because the public key is not available则执行下面命令,为期添加 key。 curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add上面命令,安装了 kubelet、kubeadm、kubectl ,kubelet 是 k8s 相关服务,kubectl 是 k8s 管理客户端,kubeadm 是部署工具。 5,初始化执行下面命令进行初始化,会自动从网络中下载需要的 Docker 镜像。 此命令是用来部署主节点的(Master)。 执行 kubeadm version 查看版本,GitVersion:"v1.17.2" 中即为版本号。 执行以下命令初始化 kubeadm init --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=NumCPU--ignore-preflight-errors=NumCPU 是在只有一个 CPU 的时候使用,例如 1G1M 的学生服务器。 但是因为需要连接到 Google ,所以可能无法下载内容。 我们可以通过使用 kubeadm config images list 命令,列举需要拉取的镜像。我们来手动通过 Docker 拉取。这个过程比较麻烦,还需要手动修改镜像名称。 拉取方法 docker pull {镜像名称}。 Google 访问不了,不过 DockerHub 已经备份好需要的镜像。 mirrorgooglecontainers 这个仓库备份了相应的镜像。遗憾的是,镜像不一定都是最新的备份。阿里云上面的 google_containers 仓库应该是备份最新的。 例如需要以下镜像 k8s.gcr.io/kube-apiserver:v1.17.2 k8s.gcr.io/kube-controller-manager:v1.17.2 k8s.gcr.io/kube-scheduler:v1.17.2 k8s.gcr.io/kube-proxy:v1.17.2 k8s.gcr.io/pause:3.1 k8s.gcr.io/etcd:3.4.3-0 k8s.gcr.io/coredns:1.6.5则拉取对应的镜像 docker pull mirrorgooglecontainers/kube-apiserver:v1.17.2 docker pull mirrorgooglecontainers/kube-controller-manager:v1.17.2 docker pull mirrorgooglecontainers/kube-scheduler:v1.15.0 docker pull mirrorgooglecontainers/kube-proxy:v1.17.2 docker pull mirrorgooglecontainers/pause:3.1 docker pull mirrorgooglecontainers/etcd:3.4.3-0 docker pull coredns/coredns:1.6.5使用 docker tag {旧名称:版本}:{新名称:版本} ,将镜像改名。 考虑到各种情况和可能会出现问题,笔者这里给出一个别人写的一键脚本,可以直接一键完成这一步。 touch pullk8s.sh # 创建脚本文件 nano pullk8s.sh # 编辑脚本然后将以下内容复制进去 for i in `kubeadm config images list`; do imageName=${i#k8s.gcr.io/} docker pull registry.aliyuncs.com/google_containers/$imageName docker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName docker rmi registry.aliyuncs.com/google_containers/$imageName done;保存文件 Ctrl + O 回车键 Ctrl + x给脚本文件赋权限 chmod +x pullk8s.sh执行脚本 sh pullk8s.sh然后执行 docker images 命令查看需要的镜像是否都准备好了。 root@instance-wxxixh4k:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE k8s.gcr.io/kube-proxy v1.17.2 cba2a99699bd 2 weeks ago 116MB k8s.gcr.io/kube-apiserver v1.17.2 41ef50a5f06a 2 weeks ago 171MB k8s.gcr.io/kube-controller-manager v1.17.2 da5fd66c4068 2 weeks ago 161MB k8s.gcr.io/kube-scheduler v1.17.2 f52d4c527ef2 2 weeks ago 94.4MB k8s.gcr.io/coredns 1.6.5 70f311871ae1 3 months ago 41.6MB k8s.gcr.io/etcd 3.4.3-0 303ce5db0e90 3 months ago 288MB k8s.gcr.io/pause 3.1 da86e6ba6ca1 2 years ago 742kB最后执行 开头的初始化命令。 实在不行的话,可以尝试 https://learnku.com/articles/29209 中的安装教程。 6,使主节点生效添加环境变量 export KUBECONFIG=/etc/kubernetes/admin.conf添加网络插件 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml运行别人编写好的 yaml 配置文件 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml这一步也可以自己编写 yaml 。 执行后出现 odsecuritypolicy.policy/psp.flannel.unprivileged created clusterrole.rbac.authorization.k8s.io/flannel created clusterrolebinding.rbac.authorization.k8s.io/flannel created serviceaccount/flannel created configmap/kube-flannel-cfg created daemonset.apps/kube-flannel-ds-amd64 created daemonset.apps/kube-flannel-ds-arm64 created daemonset.apps/kube-flannel-ds-arm created daemonset.apps/kube-flannel-ds-ppc64le created daemonset.apps/kube-flannel-ds-s390x created保存使用配置 kubeadm join 7,查看 Node执行以下命令查看 Node kubectl get nodes结果示例 root@instance-wxxixh4k:~# kubectl get nodes NAME STATUS ROLES AGE VERSION instance-wxxixh4k Ready master 9m23s v1.17.2说明已经成功了,并且能够添加移除 Node。 8,安装面板下载 yaml 配置文件 wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/alternative/kubernetes-dashboard.yaml使用 cat kubernetes-dashboard.yaml 命令查看 yaml 文件内容,记录版本号。 文件中有类型以下内容的语句,后面的数字就是版本号。 image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1拉取 kubernetes-dashboard 镜像(注意修改后面的版本号)。 docker pull registry.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1 docker tag registry.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1 k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1 docker rmi registry.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1安装 kubernetes-dashboard kubectl create -f kubernetes-dashboard.yaml查看安装结果 kubectl get pod --namespace=kube-system配置面板,添加 Admin 账号和权限 复制粘贴下面内容到终端,按回车键。 cat |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |