zoukankan      html  css  js  c++  java
  • ubuntu k8s 单节点快速安装

    ubuntu k8s 单节点快速安装

    很早以前记录过 ubuntu 上 k8s 的单节点安装,现在更新一下 ubuntu 18.04 上 k8s 单节点的快速安装,方便参考。

    安装过程

    安装 docker

    curl -fsSL https://get.docker.com | sudo sh
    

    使用 ubuntu 18.04,先使用 aliyun 的 k8s 源安装 kubeadm 和相关命令行工具

    apt-get update && apt-get install -y apt-transport-https
    curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
    echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
    apt-get update
    apt-get install -y kubelet kubeadm kubectl
    
    systemctl enable kubelet
    

    对于 ubuntu ,需要修改 docker 的 cgroup driver 选项为 systemd,与 k8s 保持一致,并修改 registry-mirror 加速下载,可以用 aliyun 提供的镜像服务,以下内容加入到 /etc/docker/daemon.json

    {
        "exec-opts": ["native.cgroupdriver=systemd"],
        "registry-mirrors": ["https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn"]
    }
    

    重启 docker

    systemctl restart docker
    

    直接使用阿里云上提供的 k8s 镜像 (这里指定的网络与后续使用的网络插件的配置保持一致)

    kubeadm init --image-repository registry.aliyuncs.com/google_containers \
        --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
    

    按照提示把 k8s 配置复制到用户目录下

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

    查看当前节点状态,为 notready

    kubectl get nodes
    

    需要安装 pod 网络插件 flannel(可用 wget 把 github 把文件下载到本地)

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    

    (安装时需要下载镜像 quay.io/coreos/flannel:v0.11.0-amd64,具体的镜像见 kube-flannel.yml 文件,如果下载失败则到 quay-mirror.qiniu.com 下载,并重新打回 tag)

    查看节点状态,为 ready,查看集群状态,各服务正常

    kubectl get cs
    

    允许 master 部署 pod

    kubectl taint nodes --all node-role.kubernetes.io/master-
    

    查看系统状态

    kubectl get pods -n kube-system
    

    部署 nginx 测试

    kubectl create deployment nginx --image=nginx
    kubectl expose deployment nginx --port=8080 --type=NodePort
    kubectl get pods,svc
    

    kubectl 命令补全(bash)

    安装 bash-completion

    apt install bash-completion
    

    然后写入到 bashrc

    echo "source <(kubectl completion bash)" >> ~/.bashrc
    

    注意,在 root 下的命令补全可能被注释了,需要打开,在 ~/.bashrc ,确保以下内容没被注释

    if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
        . /etc/bash_completion
    fi
    

    重置

    直接使用 kubeadm reset 重置环境,可看到所有容器已清理 docker ps -a

    加入 worker 节点

    worker 节点安装 k8s 组件

    apt-get update && apt-get install -y apt-transport-https
    curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
    echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
    apt-get update
    apt-get install -y kubelet kubeadm kubectl
    

    加入当前节点作为 worker,需要到 k8s 的token 和证书的 sha256 ,在 kubeadm init 后提示的输出里面有对应的 token 和证书的 sha256 ,但是 token 有效期为 24 小时,超时需要重新创建

    kubeadm token list  # 查看 token
    kubeadm token create --print-join-command   # 创建 token 并打印 join 命令
    

    或通过 openssl 获得证书的 sha256

    openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
    

    加入到集群

    kubeadm join 172.21.0.9:6443 --token <token> \
        --discovery-token-ca-cert-hash sha256:<证书sha256> 
    

    重装后 kubectl 命令的 x509 错误

    由用户目录下的配置文件引起的,需要删除 ~/.kube/config 后,重新把配置复制到用户目录下即可。

  • 相关阅读:
    计蒜客 奇怪的国家
    计蒜客 泥塑课
    计蒜客 判断质数
    hiho #1143 : 骨牌覆盖问题·一 (运用快速幂矩阵)
    二叉树建立,先序、中序、后序遍历(c实现)
    hiho #1272 买零食 [Offer收割]编程练习赛2
    hiho #1283 hiho密码 [Offer收割]编程练习赛3
    hiho #1288 微软2016.4校招笔试题 Font Size
    hiho一下 第九十八周 搜索一·24点
    hiho一下 第九十七周 数论六·模线性方程组
  • 原文地址:https://www.cnblogs.com/fengyc/p/12392977.html
Copyright © 2011-2022 走看看