Ubuntu下部署k8s

  1. 设置源

    #选择一个执行,中国科学技术大学源
    cat < /etc/apt/sources.list.d/kubernetes.list
    deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
    EOF
    
    
    #选择一个执行,阿里源
    apt-get update && apt-get install -y apt-transport-https
    curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
    cat </etc/apt/sources.list.d/kubernetes.list
    deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
    EOF  
    
    
    
  2. 安装相关软件

    apt-get update && apt-get install -y  kubelet kubernetes-cni kubeadm
    
  3. 如果报错需要添加key

    gpg --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
    gpg --export --armor E084DAB9 | sudo apt-key add 
    
  4. 关闭swap

    swapoff -a
    
  5. 获取镜像

    编辑 /etc/docker/daemon.json
    {
      "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"],
      "exec-opts": ["native.cgroupdriver=systemd"]
    }
    
    kubeadm config images list
    #根据获取到的镜像版本填充images里面的版本
    
    images=( 
    kube-apiserver:v1.18.20
    kube-controller-manager:v1.18.20
    kube-scheduler:v1.18.20
    kube-proxy:v1.18.20
    pause:3.2
    etcd:3.4.3-0
    coredns:1.6.7
    )
    
    for imageName in ${images[@]} ; do
        docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
        docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
        docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
    done
    #如果corednspull失败,可以使用如下方式拉拉取   
    docker pull coredns/coredns:1.8.0
    docker tag coredns/coredns:1.8.0  k8s.gcr.io/coredns/coredns:v1.8.0
    docker rmi  coredns/coredns:1.8.0
    
  1. 初始化

    kubeadm init --pod-network-cidr=192.168.0.0/16
    
  2. 网络驱动

    wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    多网卡需要修改kube-flannel.yml中如下位置,增加网卡名称
    containers:
          - name: kube-flannel
            image: quay.io/coreos/flannel:v0.11.0-amd64
            command:
            - /opt/bin/flanneld
            args:
            - --ip-masq
            - --kube-subnet-mgr
            - --iface=eth0
            
    kubectl apply -f kube-flannel.yml
    
  1. 去除master节点不允许配置的label

    kubectl describe node|grep -E "Name:|Taints:"
    kubectl taint node #上一步中的节点名 node-role.kubernetes.io/master-
    
  1. worker节点加入

    #复制init打印的如下命令
    kubeadm join 192.168.100.100:6443 --token xxx \
            --discovery-token-ca-cert-hash sha256:xxx
    #或者可以通过以下命令获取
    kubeadm token create --print-join-command
    
  1. 其他命令

     #获取kube-system命名空间下的所有pod
     kubectl get pods -n kube-system
     #获取所有命名空间下的pods
     kubectl get pods --all-namespaces
     #获取所有的节点信息
     kubectl get nodes
     #查看pod信息
     kubectl describe pod coredns-558bd4d5db-v9fb6 -n kube-system
     #获取token,用以生成join命令
     kubeadm token list 
     kubeadm join 192.168.100.100:6443 --token #上一步中的token
     --discovery-token-unsafe-skip-ca-verification
     
     # 查看 现有的服务
     kubectl get svc --all-namespaces
     # 删除
     kubectl delete service kubernetes-dashboard --namespace=kubernetes-dashboard
    
  2. 部署

    #创建部署
    kubectl create -f 部署yml文件 
    #更新部署配置
    kubectl apply -f 部署yml文件 
    #查看已部署pod
    kubectl get pod [-o wide] 
    #查看Pod详细信息
    kubectl describe pod pod名称 
    #查看pod输出日志
    kubectl logs [-f] pod名称
    
    
    
    
  1. 手动创建pod脚本

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: tomcat-deploy
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: tomcat-cluster
      template:
        metadata:
          labels:
            app: tomcat-cluster
        spec:
          containers:
          - name: tomcat-cluster
            image: tomcat:latest
            ports:
            - containerPort: 8080
    
  2. 如果coredns出现dns转发失败问题

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F

你可能感兴趣的:(Ubuntu下部署k8s)