k8s安装

356 阅读2分钟

两种k8s安装方式

minikube安装

安装docker-ce

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce
sudo systemctl start docker
sudo systemctl enable docker

安装kubectl

curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

安装minikube

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
  && chmod +x minikube
sudo mkdir -p /usr/local/bin/
sudo install minikube /usr/local/bin/
minikube start --vm-driver=none
minikube status

注意事项

  1. 这里用的不是虚拟机的方案,使用docker来安装minikube
  2. 这里有google的环境,没有的可以使用阿里云的香港服务器
  3. minikube使用docker进行安装是不能ssh的,所以这里不推荐docker安装
  4. minikube使用虚拟机安装,但是虚拟机要用普通身份的linux权限才行,要不然启动报错

rancher安装minikube

安装rancher有2种方式

  1. 使用k8s集群来安装rancher
  2. 使用docker来安装rancher

具体rancher使用看rancher的文档

kubeadm安装k8s

参考 www.qikqiak.com/post/use-ku…

参考 www.kubernetes.org.cn/5462.html

全部机器

//设置hostname
hostnamectl set-hostname master

//根据内网ip设置host
cat <<EOF >>/etc/hosts
10.10.10.10 master
10.10.10.11 node1
10.10.10.12 node2
EOF

//关闭防火墙、selinux和swap
systemctl stop firewalld

systemctl disable firewalld

setenforce 0

sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

swapoff -a

sed -i 's/.*swap.*/#&/' /etc/fstab

//配置内核参数,将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

//配置国内yum源
yum install -y wget

mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo

wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo

yum clean all && yum makecache

//配置国内Kubernetes源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

//配置 docker 源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

//安装docker
yum install -y docker-ce

systemctl enable docker && systemctl start docker

vi /etc/docker/daemon.json

{
"exec-opts":["native.cgroupdriver=systemd"]
}

systemctl restart docker

//安装kubeadm、kubelet、kubectl
yum install -y kubelet kubeadm kubectl

systemctl enable kubelet

//配置CNI bridge

mkdir -p /etc/cni/net.d
cat >/etc/cni/net.d/10-mynet.conf <<-EOF
{
    "cniVersion": "0.3.0",
    "name": "mynet",
    "type": "bridge",
    "bridge": "cni0",
    "isGateway": true,
    "ipMasq": true,
    "ipam": {
        "type": "host-local",
        "subnet": "10.244.0.0/16",
        "routes": [
            {"dst": "0.0.0.0/0"}
        ]
    }
}
EOF
cat >/etc/cni/net.d/99-loopback.conf <<-EOF
{
    "cniVersion": "0.3.0",
    "type": "loopback"
}
EOF

初始化master

kubeadm init \

--apiserver-advertise-address=master的ip地址 \

--image-repository registry.aliyuncs.com/google_containers \

--service-cidr=10.1.0.0/16 \

--pod-network-cidr=10.244.0.0/16

配置kubectl工具

mkdir -p /root/.kube

cp /etc/kubernetes/admin.conf /root/.kube/config

kubectl get nodes

kubectl get cs

node连接master

kubeadm join 10.10.10.10:6443 --token kekvgu.nw1n76h84f4camj6 \

--discovery-token-ca-cert-hash sha256:4ee74205227c78ca62f2d641635afa4d50e6634acfaa8291f28582c7e3b0e30e

查看集群状态

kubectl get nodes
//查看日志是否异常
journalctl -u kubelet -f

设置master节点可以被调度

kubectl taint node k8s-1001 node-role.kubernetes.io/master-

设置master节点不可被调度

kubectl taint node k8s-1001 node-role.kubernetes.io/master="":NoSchedule