安装前准备
1、关于防火墙的原因(nftables后端兼容性问题,产生重复的防火墙规则),因此要关闭防火墙,我这里喜欢一次到位,永久关闭。
(1)临时关闭:
systemctl status firewalld
systemctl stop firewalld
(2)永久关闭:
systemctl disable firewalld
2、关于selinux的原因(关闭selinux以允许容器访问宿主机的文件系统),因此要关闭selinux
(1)临时关闭:
getenforce
setenforce 0
(2)永久关闭:
vim /etc/selinux/config
更改:SELINUX=disabled
3、关于SWAP的原因(关闭SWAP是为了防止集群化的服务出现差错),因此要关闭SWAP
(1)临时关闭:
swapoff -a
(2)永久关闭:
vim /etc/fstab
在这里面,注释掉swap,我这里采取永久方式,因为我喜欢彻底,,哪怕牺牲服务器性能。
配置参数
cat <<EOF > /etc/sysctl.d/k8s.conf
写入以下配置:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOF
查看配置:
sysctl --system
安装k8s的工具
修改或增加k8s镜像源:
vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes Repository
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
安装工具:
yum install -y kubeadm-1.14.0 kubectl-1.14.0 kubelet-1.14.0 --disableexcludes=kubernetes
设置开机启动:
systemctl enable kubelet && systemctl start kubelet
修改Kubernets配置
1、修改kubernetes配置
kubeadm config print init-defaults > init.default.yaml
vim init-config.yaml
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
imageRepository: docker.io/dustise
kubernetesVersion: v1.14.0
networking:
podSubnet: “192.168.0.0/16”
注:podSubnet的网段与你的服务器网段不能一致。
下载镜像
kubeadm config images pull --config=init-config.yaml
修改服务器主机名
临时修改主机名:
hostnamectl set-hostname master
永久修改:
vim /etc/hostname
当然是选择永久修改啦!
运行 kubeadm init 命令安装 Master
kubeadm init --config=init-config.yaml
复制配置文件到普通用户的home目录下:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl taint node master node-role.kubernetes.io/master-
Kubernetes 切换context
Git命令安装:
git clone https://github.com/ahmetb/kubectx
sudo cp kubectx/kube* /usr/local/bin/
列出全部context:
kubectx
切换指定context:
kubectx kubernetes-admin@kubernetes
Kubernetes 切换namespace
列出全部namespace:
kubens
切换到指定namespace:
kubens kube-system
最近使用过的2个namespace快速切换:
kubens -
安装网络插件
查看节点状态
kubectl get nodes
此时需要安装CNI网络插件,这里选择 weave 插件:
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
验证一下:
kubectl get nodes
配置镜像仓库密钥
以下有两个参数需要替换,ip和密码:
kubectl create secret docker-registry myregistrykey --docker-server=(ip:端口) --docker-username=fae --docker-password=(密码)