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 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