0%

「notes」k8s学习笔记

  • 查看docker的进程状态

    1
    systemctl status docker
  • 安装kubeadm、kubelet和kubectl等工具的命令和步骤:

    1
    curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
    1
    2
    3
    cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
    deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
    EOF

    执行更新,并且安装

    1
    2
    apt-get update
    apt-get install -y kubeadm=1.14.1-00 kubectl=1.14.1-00 kubelet=1.14.1-00
  • 从k8s的mirror镜像库下载k8s master组件和node组件镜像步骤:

    • 查看核心组件版本
    1
    kubeadm config images list
    • Kuiki的方法
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # master节点
    # 先将难以拉去的镜像通过阿里源拉下来
    sudo -i # 切root方便操作docker
    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;
    exit # 退出root
    • master节点
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    docker pull anjia0532/kube-apiserver-amd64:v1.10.2
    docker pull anjia0532/kube-controller-manager-amd64:v1.10.2
    docker pull anjia0532/kube-scheduler-amd64:v1.10.2
    docker pull anjia0532/kube-proxy-amd64:v1.10.2
    docker pull anjia0532/etcd-amd64:3.1.12
    docker pull anjia0532/pause-amd64:3.1
    docker pull anjia0532/k8s-dns-sidecar-amd64:1.14.8
    docker pull anjia0532/k8s-dns-kube-dns-amd64:1.14.8
    docker pull anjia0532/k8s-dns-dnsmasq-nanny-amd64:1.14.8

    docker tag anjia0532/kube-apiserver-amd64:v1.10.2 k8s.gcr.io/kube-apiserver-amd64:v1.10.2
    docker tag anjia0532/kube-scheduler-amd64:v1.10.2 k8s.gcr.io/kube-scheduler-amd64:v1.10.2
    docker tag anjia0532/kube-controller-manager-amd64:v1.10.2 k8s.gcr.io/kube-controller-manager-amd64:v1.10.2
    docker tag anjia0532/kube-proxy-amd64:v1.10.2 k8s.gcr.io/kube-proxy-amd64:v1.10.2
    docker tag anjia0532/etcd-amd64:3.1.12 k8s.gcr.io/etcd-amd64:3.1.12
    docker tag anjia0532/pause-amd64:3.1 k8s.gcr.io/pause-amd64:3.1
    docker tag anjia0532/k8s-dns-sidecar-amd64:1.14.8 k8s.gcr.io/k8s-dns-sidecar-amd64:1.14.8
    docker tag anjia0532/k8s-dns-kube-dns-amd64:1.14.8 k8s.gcr.io/k8s-dns-kube-dns-amd64:1.14.8
    docker tag anjia0532/k8s-dns-dnsmasq-nanny-amd64:1.14.8 k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64:1.14.8
  • worker节点

    1
    2
    3
    4
    5
    docker pull anjia0532/pause-amd64:3.1
    docker pull anjia0532/kube-proxy-amd64:v1.10.2

    docker tag anjia0532/pause-amd64:3.1 k8s.gcr.io/pause-amd64:3.1
    docker tag anjia0532/kube-proxy-amd64:v1.10.2 k8s.gcr.io/kube-proxy-amd64:v1.10.2

    查看可供安装的kubeadm的版本

    1
    apt-cache madison kubeadm
  • 初始化kubeadm(master节点)

    1
    kubeadm init --apiserver-advertise-address=172.18.94.63 --pod-network-cidr=10.244.0.0/16 --kubernetes-version=1.14.1
  • 从节点加入主节点

    1
    kubeadm join 10.0.2.15:6443 --token 8t3pie.0n7ra7idaqzl7i1j --discovery-token-ca-cert-hash sha256:00dd3ee3f9c2592bb4ce15dce533f3cae193f30a457c5c2deffd30b548f46b0a
  • 初始化配置

    1
    kubeadm reset
  • The connection to the server localhost:8080 was refused - did you specify the right host or port?

    原因:kubenetes master没有与本机绑定,集群初始化的时候没有设置
    解决办法:执行以下命令

    1
    export KUBECONFIG=/etc/kubernetes/admin.conf

    /etc/kubernetes/admin.conf这个文件主要是集群初始化的时候用来传递参数的

  • 检查功能

    1
    kubectl get pods -n kube-system -o wide
  • 安装weave

    1. 方法1:
      1
      kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
    2. 方法2: (应对weave pod启动时出现:Network 10.32.0.0/12 overlaps with existing route xx.xx.xx.xx/16 on host 错误信息)
      1
      curl -L "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" > weave.yaml
      在weave容器,修改:IPALLOC_RANGE
      1
      2
      3
      4
      vim weave.yaml

      - name: IPALLOC_RANGE
      value: 192.168.16.0/20
      1
      kubectl apply -f weave.yaml
  • 安装dashboard的步骤:

    1. 下载dashboard镜像

      1
      2
      docker pull anjia0532/kubernetes-dashboard-amd64:v1.8.3
      docker tag anjia0532/kubernetes-dashboard-amd64:v1.8.3 k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.3
    2. 安装dashboard

      1
      kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta1/aio/deploy/recommended.yaml

      Dashboard 可以参考这个网址https://www.kubernetes.org.cn/5462.html

      另外,1.7章,6:30 教怎么样创建dashboard的用户

  • 其他

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # 在kubeadm init后此时root用户还不能使用kubelet控制集群,还需要配置该环境变量。
    echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

    # 立即生效
    source ~/.bash_profile

    kubectl get pods -n kube-system -o wide
    echo xxxx|base64 -d

    # 编辑kubelet的参数配置
    vim /var/lib/kubelet/config.yaml

    # 修改后重启生效
    systemctl daemon-reload
    systemctl restart kubelet

    # 查看运行状态
    service kubelet status