Ubuntu 18.04 搭建单节点 k8s 记录 (不需要科学上网的方案)

文章目录

[隐藏]

  • ubuntu 安装 k8s
    • 注释 01
    • 注释 02
    • 注释 03
ubuntu 安装 k8s

安装环境

  • 阿里云服务器: 1C2G
  • ubuntu 18.04
  • kubernetes 1.14.2
# 设置环境变量, 命令行看着舒服点  export PS1="[33[33m]u[33[0m]@[33[36m]k8s[33[0m]:[33[32m]W [33[0m]$ "    # vim 显示行号  cat <<EOF > ~/.vimrc  set nu  EOF    # 一些初始配置  apt udpate  apt -y install apt-transport-https ca-certificates curl software-properties-common    # 写入两个 key  curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -  curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -    # 添加镜像源  cat <<EOF >/etc/apt/sources.list.d/docker-k8s.list  deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main  deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable  EOF    # 更新并安装  apt update && apt install -y docker-ce kubelet kubeadm kubectl    # 关闭 swap  swapoff -a  vim /etc/fstab # 注释 01    # 设置阿里云镜像加速, 也可以不用弄这个  cat <<EOF >/etc/docker/daemon.json  {      "registry-mirrors": ["https://{阿里云分配的地址}.mirror.aliyuncs.com"]  }  EOF    # 安装镜像包  kubeadm config images list # 注释 03    # 初始化  kubeadm init --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=NumCPU # 注释 02    # 根据初始化之后输出的内容, 使用这个命令将其他节点加入集群    # 设置网络插件  export KUBECONFIG=/etc/kubernetes/admin.conf  kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml    # 安装 kubernetes-dashboard  wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/alternative/kubernetes-dashboard.yaml    # 拉取 kubernetes-dashboard 镜像, 注意版本, 可在 kubernetes-dashboard.yaml 文件中查看  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    # 直接为 Dashboard 赋予 Admin 的权限    # 新建 dashboard-admin.yaml 文件    cat <<EOF > dashboard-admin.yaml  apiVersion: rbac.authorization.k8s.io/v1beta1      kind: ClusterRoleBinding  metadata:      name: kubernetes-dashboard  labels:      k8s-app: kubernetes-dashboard  roleRef:      apiGroup: rbac.authorization.k8s.io          kind: ClusterRole          name: cluster-admin      subjects:          - kind: ServiceAccount          name: kubernetes-dashboard          namespace: kube-system  EOF    # 安装  kubectl create -f dashboard-admin.yaml    # 查看端口  kubectl get svc --namespace=kube-system    # 单节点情况下, 无法操作节点  kubectl taint nodes --all node-role.kubernetes.io/master-    ## END ######################################################    # 不直接为 Dashboard 赋予 Admin 的权限  # 创建账户  kubectl create serviceaccount k8sadmin -n kube-system  kubectl create clusterrolebinding k8sadmin --clusterrole=cluster-admin --serviceaccount=kube-system:k8sadmin    # 查看账号是否建立成功  kubectl get sa --all-namespaces    # 获取 Token 登陆  kubectl get secret -n kube-system | grep k8sadmin | cut -d "  " -f1 | xargs -n 1 | xargs kubectl get secret -o 'jsonpath={.data.token}' -n kube-system | base64 --decode    # 端口转发, kubernetes-dashboard-54fb766c84-psnrh 是通过 `kubectl get pod --namespace=kube-system` 查出来的  kubectl port-forward kubernetes-dashboard-54fb766c84-psnrh 8443:8443 --namespace=kube-system &  

注释 01

# 注释掉这一行  # /swapfile none swap sw 0 0  

注释 02

init 常用主要参数:

  • –kubernetes-version: 指定 Kubenetes 版本,如果不指定该参数,会从 google 网站下载最新的版本信息。
  • –pod-network-cidr: 指定 pod 网络的 IP 地址范围,它的值取决于你在下一步选择的哪个网络网络插件,比如我在本文中使用的是 flannel 网络,需要指定为 10.244.0.0/16。
  • –apiserver-advertise-address: 指定 master 服务发布的 Ip 地址,如果不指定,则会自动检测网络接口,通常是内网 IP。

kubeadm init 输出的 token 用于 master 和加入节点间的身份认证,token 是机密的,需要保证它的安全,因为拥有此标记的人都可以随意向集群中添加节点。

如果只有一个 cpu 请加参数: --ignore-preflight-errors=NumCPU

注释 03

k8s-pull.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;  

原文出处:learnku -> https://learnku.com/articles/29209

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。