Fq not install the latest domestic k8s method

Reference address

Details: https: //juejin.im/post/5cb7dde9f265da034d2a0dba
installation Kubernetes node: https://www.cnblogs.com/xieyifeng/p/9383236.html
Helm Dashboard: https://mp.weixin.qq.com/s / S9OvZa7oW7qo_9m4OznVtA
K8S basics: https://www.jianshu.com/p/95c2bc74e2b2?utm_source=oschina-app
official website: https: //yeasy.gitbooks.io/docker_practice/content/opensource/

Installation docker

Replace Ali cloud yum source (non-essential)

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache fast

Uninstall the original docker

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

Installation depends

sudo yum update -y && sudo yum install -y yum-utils device-mapper-persistent-data lvm2

Add official yum repository

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

Installation docker

sudo yum install docker-ce docker-ce-cli containerd.io

View docker version

docker --version

You can install script

(Not recommended):

curl -fsSL "https://get.docker.com/" | sh
systemctl enable --now docker

boot

systemctl enable --now docker

Modify docker cgroup drive, consistent with k8s, use systemd

cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  }
}
EOF

Restart configuration to take effect

systemctl restart docker  

Installation kubelet kubeadm kubectl

master, node node needs to install kubelet kubeadm kubectl.
When installing kubernetes need to install kubelet, kubeadm and other packages, but k8s to the official website of yum source is packages.cloud.google.com, the country can not access, then we can use Ali cloud yum repository mirror.

Add kubernets source

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

Preparing the Environment

#关闭SElinux
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

#关闭防火墙
systemctl stop firewalld
systemctl disable --now firewalld  

#设置iptables(略)

#安装kubelet kubeadm kubectl
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

#开机启动kubelet
systemctl enable --now kubelet  

centos7 Users also need to set routing:

yum install -y bridge-utils.x86_64
modprobe  br_netfilter  # 加载br_netfilter模块,使用lsmod查看开启的模块
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

# 重新加载所有配置文件
sysctl --system  

# k8s要求关闭swap  (qxl)
swapoff -a && sysctl -w vm.swappiness=0  # 关闭swap
sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab  # 取消开机挂载swap

Ready to work

Mirroring needs listed

[root@localhost home]# kubeadm config images list
W0809 11:32:51.518614   18214 version.go:98] could not fetch a Kubernetes version from the internet: unable to get URL "https://dl.k8s.io/release/stable-1.txt": Get https://dl.k8s.io/release/stable-1.txt: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
W0809 11:32:51.519080   18214 version.go:99] falling back to the local client version: v1.15.2
k8s.gcr.io/kube-apiserver:v1.15.2
k8s.gcr.io/kube-controller-manager:v1.15.2
k8s.gcr.io/kube-scheduler:v1.15.2
k8s.gcr.io/kube-proxy:v1.15.2
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1

Description: Tips on paragraph Rom dl.k8s.io/:
We fq visit at: https: //storage.googleapis.com/kubernetes-release/release/stable-1.txt also found: v1.15.2

### 从亚马逊获取镜像(国内可以访问,而且速度不慢)
docker pull gcr.azk8s.cn/google_containers/kube-apiserver:v1.15.2
docker pull gcr.azk8s.cn/google_containers/kube-controller-manager:v1.15.2
docker pull gcr.azk8s.cn/google_containers/kube-scheduler:v1.15.2
docker pull gcr.azk8s.cn/google_containers/kube-proxy:v1.15.2
docker pull gcr.azk8s.cn/google_containers/pause:3.1
docker pull gcr.azk8s.cn/google_containers/etcd:3.3.10
docker pull gcr.azk8s.cn/google_containers/coredns:1.3.1

# 将镜像打Tag成目标镜像
docker tag gcr.azk8s.cn/google_containers/kube-proxy:v1.15.2 k8s.gcr.io/kube-proxy:v1.15.2
docker tag gcr.azk8s.cn/google_containers/kube-controller-manager:v1.15.2  k8s.gcr.io/kube-controller-manager:v1.15.2
docker tag gcr.azk8s.cn/google_containers/kube-scheduler:v1.15.2 k8s.gcr.io/kube-scheduler:v1.15.2
docker tag gcr.azk8s.cn/google_containers/kube-apiserver:v1.15.2  k8s.gcr.io/kube-apiserver:v1.15.2
docker tag gcr.azk8s.cn/google_containers/coredns:1.3.1  k8s.gcr.io/coredns:1.3.1
docker tag gcr.azk8s.cn/google_containers/etcd:3.3.10  k8s.gcr.io/etcd:3.3.10
docker tag gcr.azk8s.cn/google_containers/pause:3.1  k8s.gcr.io/pause:3.1

# 删除下载的镜像
docker rmi gcr.azk8s.cn/google_containers/kube-apiserver:v1.15.2
docker rmi gcr.azk8s.cn/google_containers/kube-controller-manager:v1.15.2
docker rmi gcr.azk8s.cn/google_containers/kube-scheduler:v1.15.2
docker rmi gcr.azk8s.cn/google_containers/kube-proxy:v1.15.2
docker rmi gcr.azk8s.cn/google_containers/pause:3.1
docker rmi gcr.azk8s.cn/google_containers/etcd:3.3.10
docker rmi gcr.azk8s.cn/google_containers/coredns:1.3.1

initialization

[root@localhost home]# kubeadm init --apiserver-advertise-address 192.168.15.174 --pod-network-cidr 192.168.0.0/16 --kubernetes-version 1.15.2

。。。。。。
Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.15.174:6443 --token a04776.b0jwrvh0b7se4w0p \
    --discovery-token-ca-cert-hash sha256:1ccc89d634fb2957c186dd00899b5b9d6421492986457b168523957913910a9a 

Tip of print settings

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

Application flannel Network

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

View

# 查看pod
kubectl get pods --all-namespaces

# 查看节点:
kubectl get nodes

Problems and solutions

  1. When kubelet prompt start of the Masked
    systemctl unmask kubelet.service

  2. token forgotten or expired
    solution is as follows:
    https://blog.csdn.net/weixin_44208042/article/details/90676155

Guess you like

Origin www.cnblogs.com/bugutian/p/11329274.html