ubuntu下安装Kubernetes

1 篇文章 0 订阅
1 篇文章 0 订阅

1. 安装并启用 Docker
sudo apt install docker.io
sudo systemctl enable docker
docker --version

2.添加 Kubernetes signing key 和Repository
sudo apt install curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
sudo apt-add-repository “deb http://apt.kubernetes.io/ kubernetes-xenial main”

3.安装Kubeadm

指定Kubeadm安装版本
apt-get install  kubeadm
kubeadm version
#常用命令
重启kubelet服务:
systemctl daemon-reload
systemctl restart kubelet
sudo systemctl restart kubelet.service
 
sudo systemctl daemon-reload
sudo systemctl stop kubelet
sudo systemctl enable kubelet
sudo systemctl start kubelet

出现Unable to locate package kubeadm 错误
需要更新ubuntu源为阿里云
手动更换了阿里的软件源就顺畅了,速度也很快。
方法:
备份原文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
vi /etc/apt/sources.list
添加国内源
deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
更新源
sudo apt-get update
如果遇到执行报错就重启一下再试

**4. ** 先禁用swap
swapoff -a

5.安装 master 节点
这步执行可能会报错有些images镜像找不到,比较笨但是绝对可以解决的办法是
拿着镜像的名字去dockerhub上搜索,找到对应的版本然后docker pull下来,
然后按照报错的名字docker tag 拉取的镜像名字 报错出的镜像名字类似:

建议不要这样搞,后边容易有问题,建议指定kubernetes-version=v1.18.2版本

**初始化 master 节点**
kubeadm init \
--apiserver-advertise-address=master服务ip地址 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.18.2 \
--pod-network-cidr=10.244.0.0/16 \
--v=10

如果在初始化过程中出现了任何Error导致初始化终止了,使用kubeadm reset重置之后再重新进行初始化
注意命令开头的报警信息需要处理一下,不然会影响下边集群部署
如果成功结果中要求执行这几个,就需要执行一下
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown ( i d − u ) : (id -u): (idu):(id -g) $HOME/.kube/config

当你看到如下字样是,就说明初始化成功了,**
kubeadm join 192.168.174.133:6443 --token 745853.br0fr7acgyx047qa --discovery-token-ca-cert-hash sha256:5e98d52160aad2e91339764d43f1bf4ab990bae0d0af7d185c84834b92c558e6 --v=5
请把最后那行以kubeadm join开头的命令复制下来,该命令会在24小时后失效,之后安装工作节点时要用到的**,如果你不慎遗失了该命令,可以在master节点上使用kubeadm token create --print-join-command --v=5命令来重新生成一条。
在这里插入图片描述
这里介绍一下一些常用参数的含义:
–apiserver-advertise-address: k8s 中的主要服务apiserver的部署地址,填自己的管理节点 ip
–image-repository: 拉取的 docker 镜像源,因为初始化的时候kubeadm会去拉 k8s 的很多组件来进行部署,所以需要指定国内镜像源,下不然会拉取不到镜像。
–pod-network-cidr: 这个是 k8s 采用的节点网络,因为我们将要使用flannel作为 k8s 的网络,所以这里填10.244.0.0/16就好
–kubernetes-version: 这个是用来指定你要部署的 k8s 版本的,一般不用填,不过如果初始化过程中出现了因为版本不对导致的安装错误的话,可以用这个参数手动指定。
–ignore-preflight-errors: 忽略初始化时遇到的错误,比如说我想忽略 cpu 数量不够 2 核引起的错误,就可以用–ignore-preflight-errors=CpuNum。错误名称在初始化错误时会给出来。

sudo mkdir -p /etc/cni/net.d
sudo cat > /etc/cni/net.d/10-flannel.conflist <<EOF
{
    "name": "cbr0",
    "cniVersion": "0.2.0",
    "plugins": [
        {
            "type": "flannel",
            "delegate": {
                "hairpinMode": true,
                "isDefaultGateway": true
            }
        },
        {
            "type": "portmap",
            "capabilities": {
                "portMappings": true
            }
        }
    ]
}
EOF

查看错误日志
sudo journalctl -f -u kubelet

配置 kubectl 工具

直接执行即可
mkdir -p /root/.kube && \
cp /etc/kubernetes/admin.conf /root/.kube/config
可以通过下面两条命令测试 kubectl是否可用:
# 查看已加入的节点
kubectl get nodes
# 查看集群状态
kubectl get cs
# 查看所有的pod
kubectl get pods --all-namespaces
# 查看服务
kubectl get svc -n kube-system
# 查看pod日志
kubectl logs -f <pod_name>

部署 flannel 网络
flannel是什么?它是一个专门为 k8s 设置的网络规划服务,可以让集群中的不同节点主机创建的 docker 容器都具有全集群唯一的虚拟IP地址。想要部署flannel的话直接执行下述命令即可:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
如果遇到这个报错he connection to the server raw.githubusercontent.com was refused - did you specify the right host or port?
解决方法:
sudo vi /etc/hosts
151.101.76.133 raw.githubusercontent.com
如果遇到这个报错unable to recognize…的报错就换个kube-flannel.yml连接试试
成功后会打印出这个
root@ubuntu:/usr/local# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
podsecuritypolicy.policy/psp.flannel.unprivileged created
clusterrole.rbac.authorization.k8s.io/flannel configured
clusterrolebinding.rbac.authorization.k8s.io/flannel unchanged
serviceaccount/flannel unchanged
configmap/kube-flannel-cfg configured
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

6. 将 slave 节点加入网络

执行从步骤 5中保存的命令即可完成加入,注意,这条命令每个人的都不一样,不要直接复制执行:
待控制台中输出以下内容后即为加入成功:

This node has joined the cluster:

  • Certificate signing request was sent to apiserver and a response was received.
  • The Kubelet was informed of the new secure connection details.
    Run ‘kubectl get nodes’ on the master to see this node join the cluster.

k8s安装dashboard看下边的就可以
访问时候用火狐然后用https:方式访问
注意dashboard要用新一点的版本2.0以上的,和k8s版本之间有支持版本的范围
https://www.cnblogs.com/zhaojingyu/p/11671178.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值