-
设置源
#选择一个执行,中国科学技术大学源 cat <<EOF > /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 <<EOF >/etc/apt/sources.list.d/kubernetes.list deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main EOF
-
安装相关软件
apt-get update && apt-get install -y kubelet kubernetes-cni kubeadm
-
如果报错需要添加key
gpg --keyserver keyserver.ubuntu.com --recv-keys E084DAB9 gpg --export --armor E084DAB9 | sudo apt-key add
-
关闭swap
swapoff -a
-
获取镜像
编辑 /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
-
初始化
kubeadm init --pod-network-cidr=192.168.0.0/16
-
网络驱动
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
-
去除master节点不允许配置的label
kubectl describe node|grep -E "Name:|Taints:" kubectl taint node #上一步中的节点名 node-role.kubernetes.io/master-
-
worker节点加入
#复制init打印的如下命令 kubeadm join 192.168.100.100:6443 --token xxx \ --discovery-token-ca-cert-hash sha256:xxx #或者可以通过以下命令获取 kubeadm token create --print-join-command
-
其他命令
#获取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
-
部署
#创建部署 kubectl create -f 部署yml文件 #更新部署配置 kubectl apply -f 部署yml文件 #查看已部署pod kubectl get pod [-o wide] #查看Pod详细信息 kubectl describe pod pod名称 #查看pod输出日志 kubectl logs [-f] pod名称
-
手动创建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
如果coredns出现dns转发失败问题
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F