K8s install - xiaotiantian1132/k8s-install GitHub Wiki

install on ubuntu 16.04+

准备工作:安装文件传输工具、禁用SWAP、关闭防火墙、关闭SELINUX、配置主机名、IP地址 sudo -i

 apt install lrzsz -y

 swapoff -a

 sed -i '/ swap / s/^/#/' /etc/fstab

 apt-get update

 apt-get upgrade

 修改hosts和hostname

  #关闭防火墙
 systemctl disable firewalld
 systemctl stop firewalld
 systemctl status firewalld

 reboot

配置docker,kubernetes源

sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo add-apt-repository "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"
sudo apt-get -y update
sudo apt-get -y install docker-ce
注:找不到公钥的解决办法:
gpg --keyserver keyserver.ubuntu.com --recv XXXX
gpg --export --armor XXXX | sudo apt-key add -

配置docker镜像站点

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://544m9psd.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装软件

apt-get install kubectl kubeadm kubelet

关闭SELinux

apt install selinux-utils
setenforce 0

配置各个节点

vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
修改KUBELET_KUBECONFIG_ARGS为
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1"

创建master节点

-kubeadm.yaml

kubeadm init --config kubeadm.yaml

配置CNI网络

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

集群加入

kubeadm join 192.168.100.101:6443 --token 3owto2.uop91fw55br4w1bw --discovery-token-ca-cert-hash sha256:8528ba214512da2ea6ed76b89ff65bef87e9dc2914fdd4ca1eff2d05e2b376cf
注:token和hash需要替换成实际生成的

新建集群加入命令:

kubeadm token create --print-join-command 
注:1.9以后的版本才支持的,如果不支持这个参数,整个集群的Kubeadm版本都需要升级到新版本

问题及解决方法:

  问题1:
  The connection to the server localhost:8080 was refused - did you specify the right host or port?
  unable to recognize "kube-flannel.yml": Get http://localhost:8080/api?timeout=32s: dial tcp 
  [::1]:8080:connect: connection refused 

  解决方法:下面如果在root用户下执行的,就不会报错 

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