背景

当我们需要对k8s进行二次开发时,k8s环境是必须的,那么在ubuntu上部署单机k8s是最方便的,便于开发调试

系统准备

本人用的是Ubuntu18,以下以此为例

部署之前,最好切换至root用户,方便操作

sfeng@sfeng-virtual-machine:~$ sudo passwd root
Enter new UNIX password: // 输入root密码
Retype new UNIX password: // 重复输入
passwd: password updated successfully
sfeng@sfeng-virtual-machine:~$ su - root
Password: // 输入root密码

系统初始化

sudo ufw disable   // 关闭防火墙
sudo systemctl disable ufw // 永久关闭防火墙
sudo swapoff -a // 关闭swap
sed -ri 's/.*swap.*/#&/' /etc/fstab // 永久关闭swap
ubuntu系统默认没有安装selinux

// 更换国内镜像源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
sed -i 's@http://cn.mirrors.ustc.edu.cn/ubuntu/@https://mirrors.tuna.tsinghua.edu.cn/ubuntu/@g' /etc/apt/sources.list
apt update

添加k8s安装秘钥

sudo apt update &&  sudo apt install -y apt-transport-https curl
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -

安装docker

curl -fsSL get.docker.com -o get-docker.sh 
sudo sh get-docker.sh --mirror Aliyun
docker run hello-world // 验证docker是否安装完成

配置k8s源

sudo touch /etc/apt/sources.list.d/kubernetes.list
这里选择阿里云的源
sudo echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" >> /etc/apt/sources.list.d/kubernetes.list

安装kubelet,kubeadm,kubectl

sudo  apt-get update
// 这里带上版本号,防止后续部署报错版本不一致问题
sudo apt install -y kubelet=1.18.2-00
sudo apt install -y kubeadm=1.18.2-00
sudo apt install -y kubectl=1.18.2-00
// 保持版本取消自动更新,这里也可以省略
sudo apt-mark hold kubelet kubeadm kubectl

kubeadm 初始化

sudo kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.2 --pod-network-cidr=10.240.0.0/16

等待出现以下信息,则说明初始化成功

// ...
Your Kubernetes control-plane has initialized successfully! To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config 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/> Then you can join any number of worker nodes by running the following on each as root: kubeadm join 机器IP:6443 --token q1guce.z76o2a2bb65vhd0u \\
--discovery-token-ca-cert-hash sha256:2a57a27853c66d608bc544742b57602a21d47c3d09fe58eef15258946d4341c0

配置非 root 的操作

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config

coredns 问题解决

这时候node 状态还是NotReady,因为网络插件还没有安装,这里安装calico

kubectl apply -f <https://docs.projectcalico.org/v3.10/manifests/calico.yaml>

安装成功后结果如下

root@sfeng-virtual-machine:~# kubectl get node
NAME STATUS ROLES AGE VERSION
sfeng-virtual-machine Ready master 28m v1.18.2
root@sfeng-virtual-machine:~# kubectl get pods --all-namespaces -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system calico-kube-controllers-57546b46d6-hfgx2 1/1 Running 0 23m 192.168.109.129 sfeng-virtual-machine <none> <none>
kube-system calico-node-kpx4p 1/1 Running 0 23m 192.168.57.23 sfeng-virtual-machine <none> <none>
kube-system coredns-7ff77c879f-gjgjb 1/1 Running 0 28m 192.168.109.130 sfeng-virtual-machine <none> <none>
kube-system coredns-7ff77c879f-qq6pz 1/1 Running 0 28m 192.168.109.131 sfeng-virtual-machine <none> <none>
kube-system etcd-sfeng-virtual-machine 1/1 Running 0 28m 192.168.57.23 sfeng-virtual-machine <none> <none>
kube-system kube-apiserver-sfeng-virtual-machine 1/1 Running 0 28m 192.168.57.23 sfeng-virtual-machine <none> <none>
kube-system kube-controller-manager-sfeng-virtual-machine 1/1 Running 0 28m 192.168.57.23 sfeng-virtual-machine <none> <none>
kube-system kube-proxy-jzfts 1/1 Running 0 28m 192.168.57.23 sfeng-virtual-machine <none> <none>
kube-system kube-scheduler-sfeng-virtual-machine 1/1 Running 0 28m 192.168.57.23 sfeng-virtual-machine <none> <none>

去掉master污点

// 这样master就能作为计算节点了哈,不然部署单机也没有意义
kubectl taint nodes --all node-role.kubernetes.io/master-

ubuntu18 安装单机k8s v1.18.2的更多相关文章

  1. Centos7安装Kubernetes k8s v1.16.0 国内环境

    一. 为什么是k8s v1.16.0? 最新版的v1.16.2试过了,一直无法安装完成,安装到kubeadm init那一步执行后,报了很多错,如:node xxx not found等.centos ...

  2. k8s v1.18.2 centos7 下环境搭建

    准备 服务器:3台机器--1台主.2台工作节点,可以使用virtualbox 搭建虚拟机 主机名 centos version ip docker version flannel version 主机 ...

  3. centos7安装kubernetes k8s 1.18

    可以参考其他网友的阿里云搭建k8s高可用集群(1.17.3) https://www.cnblogs.com/gmmy/p/12372805.html 准备四台centos7虚拟机,用来安装k8s集群 ...

  4. 在Ubuntu上使用离线方式快速安装K8S v1.11.1

    在Ubuntu上使用离线方式快速安装K8S v1.11.1 0.安装包文件下载 https://pan.baidu.com/s/1nmC94Uh-lIl0slLFeA1-qw v1.11.1 文件大小 ...

  5. 【K8S】K8S 1.18.2安装dashboard(基于kubernetes-dashboard 2.0.0版本)

    [K8S]K8S 1.18.2安装dashboard(基于kubernetes-dashboard 2.0.0版本) 写在前面 K8S集群部署成功了,如何对集群进行可视化管理呢?别着急,接下来,我们一 ...

  6. 使用kubeadm部署k8s集群[v1.18.0]

    使用kubeadm部署k8s集群 环境 IP地址 主机名 节点 10.0.0.63 k8s-master1 master1 10.0.0.63 k8s-master2 master2 10.0.0.6 ...

  7. 【k8s学习笔记】使用 kubeadm 部署 v1.18.5 版本 Kubernetes集群

    说明 本文系搭建kubernetes v1.18.5 集群笔记,使用三台虚拟机作为 CentOS 测试机,安装kubeadm.kubelet.kubectl均使用yum安装,网络组件选用的是 flan ...

  8. Kubernetes入门(一)——Kubernetes v1.18.5 安装部署

    Kubernetes的安装有两种方式:一是使用各个厂商封装的Kubernetes发行版,优点是可以一键安装部署,操作简单,缺点也很明显,若安装过程中某一步骤出现问题,很难定位处理:二是使用官方提供的k ...

  9. 二进制安装k8s v1.25.4 IPv4/IPv6双栈

    二进制安装k8s v1.25.4 IPv4/IPv6双栈 https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star,谢谢了 介绍 kubernetes( ...

  10. ansible-kubeadm在线安装k8s v1.19-v1.20版本

    ansible-kubeadm在线安装k8s v1.19-v1.20版本 1. ansible-kubeadm在线安装k8s v1.19-v1.20版本 安装要求 确保所有节点系统时间一致 操作系统要 ...

随机推荐

  1. Fiddler一些用法学习记录

    最近项目中用Fiddler较多,只会之前掌握的一些最简单的用法显得有点不太够.记录一下学习到的新用法. 一.需要mock.打开AutoResponder,Add Rule,填上需要mock的网址,需要 ...

  2. 分库分表ShardingJDBC最佳实践

    1 添加依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId> ...

  3. tModLoader随机掉落模组编写

    pre { overflow-y: auto; max-height: 400px } img { max-width: 500px; max-height: 300px } 1. 整体思路 目标是实 ...

  4. 【Vue原理模拟】模拟Vue实现响应式数据

    1. 预期效果 当数据变动时,触发自定义的回调函数. 2. 思路 对对象 object 的 setter 进行设置,使 setter 在赋值之后执行回调函数 callback(). 3.细节 3.1 ...

  5. [INS-40996] Installer has detected that the Oracle home (/home/grid) is not empty in the following nodes: [rac2] --求助帖?

    问题描述:12c安装grid的时候,一直再报一个[INS-40996] Installer has detected that the Oracle home (/home/grid) is not ...

  6. visio秘钥

    一.Visio2016专业版永久激活码: Visio 2016 Professional Retail零售版 [Key]:NKVJM-8MTT4-8YDFR-6738M-DPFJH [Key]:W9W ...

  7. 论文解读( FGSM)《Adversarial training methods for semi-supervised text classification》

    论文信息 论文标题:Adversarial training methods for semi-supervised text classification论文作者:Taekyung Kim论文来源: ...

  8. ABPvNext-微服务框架基础入门

    ABPvNext-微服务框架基础入门 本文使用的是ABPvNext商业版 最新稳定版本7.0.2为演示基础的,后续如果更新,会单独写一篇最新版本的,此文为零基础入门教程,后续相关代码会同步更新到git ...

  9. Xxl-job安装部署以及SpringBoot集成Xxl-job使用

    1.安装Xxl-job: 可以使用docker拉取镜像部署和源码编译两种方式,这里选择源码编译安装. 代码拉取地址: https://github.com/xuxueli/xxl-job/tree/2 ...

  10. Spring配置数据库连接

    <beans xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="ht ...