table of Contents
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
When kubelet prompt start of the Masked
systemctl unmask kubelet.servicetoken forgotten or expired
solution is as follows:
https://blog.csdn.net/weixin_44208042/article/details/90676155