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],我们会很快的为您处理。