1、centos下安装docker
如果有centos服务器,则可以在linux下安装docker,具体操作如下:
(1)下载程序:wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz
(2)解压:tar -zxvf docker-18.06.3-ce.tgz
cp docker/* /usr/bin/
(3) touch /etc/systemd/system/docker.service
vi /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
(4) 授权并生效
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
(5) 启动
# 启动docker
systemctl start docker
# 设置开机启动
systemctl enable docker
# 查看docker状态
systemctl status docker
# 查看docker版本
docker -v
Docker version 18.06.3-ce, build d7080c1
2、使用Minikube创建本地Kubernetes实验环境
(1) 配置源
echo '#k8s
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
'>/etc/yum.repos.d/kubernetes.repo
(2)安装kubectl:yum -y install kubelet kubeadm kubectl kubernetes-cni
(3)下载: curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
授权:chmod +x minikube
(4)添加: sudo install minikube /usr/local/bin
(5)启动: minikube start --vm-driver=none minikube start --vm-driver=none --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
如果失败多试几次,失败后执行minikube delete再重试。
(6)验证:
minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
timeToStop: Nonexistent
[root@wcz usr]# kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
wcz Ready control-plane,master 52s v1.20.2 172.26.185.15 <none> CentOS Linux 7 (Core) 3.10.0-514.26.2.el7.x86_64 docker://18.6.3
[root@wcz usr]#
查看组件列表:minikube addons list
(7)安装dashboard:
执行:minikube dashboard --url
报错如下:
* Verifying dashboard health ...
* Launching proxy ...
* Verifying proxy health ...
X Exiting due to SVC_URL_TIMEOUT: http://127.0.0.1:45163/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ is not accessible: Temporary Error: unexpected response code: 503
开始进行问题排查:
查看pods: kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-54d67798b7-zjb2p 0/1 Running 0 12h
kube-system etcd-wcz 1/1 Running 0 12h
kube-system kube-apiserver-wcz 1/1 Running 0 12h
kube-system kube-controller-manager-wcz 1/1 Running 0 12h
kube-system kube-proxy-hc95p 1/1 Running 0 12h
kube-system kube-scheduler-wcz 1/1 Running 0 12h
kube-system kubernetes-dashboard-6ff6454fdc-dskft 0/1 CrashLoopBackOff 4 2m44s
kube-system storage-provisioner 1/1 Running 0 12h
kubernetes-dashboard dashboard-metrics-scraper-c85578d8-tzlx5 1/1 Running 0 85m
kubernetes-dashboard kubernetes-dashboard-7db476d994-wv54h 0/1 CrashLoopBackOff 21 85m
docker pull mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1
docker tag mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1 k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
查看日志:
kubectl logs -f pods/kubernetes-dashboard-6ff6454fdc-dskft -n kube-system
2021/03/01 02:50:54 Starting overwatch
2021/03/01 02:50:54 Using in-cluster config to connect to apiserver
2021/03/01 02:50:54 Using service account token for csrf signing
2021/03/01 02:50:55 Error while initializing connection to Kubernetes apiserver. This most likely means that the cluster is misconfigured (e.g., it has invalid apiserver certificates or service account's configuration) or the --apiserver-host param points to a server that does not exist. Reason: Get https://10.96.0.1:443/version: dial tcp 10.96.0.1:443: connect: no route to host
Refer to our FAQ and wiki pages for more information: https://github.com/kubernetes/dashboard/wiki/FAQ
尝试重启网络的ip规则:问题解决
systemctl stop kubelet
systemctl stop docker
iptables --flush
iptables -tnat --flush
systemctl start kubelet
systemctl start docker
此时查看所有的pod,可以看到已经全部正常启动。
kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-54d67798b7-zjb2p 1/1 Running 1 14h
kube-system etcd-wcz 1/1 Running 1 14h
kube-system kube-apiserver-wcz 1/1 Running 1 14h
kube-system kube-controller-manager-wcz 1/1 Running 1 14h
kube-system kube-proxy-hc95p 1/1 Running 1 14h
kube-system kube-scheduler-wcz 1/1 Running 1 14h
kube-system storage-provisioner 1/1 Running 2 14h
kubernetes-dashboard dashboard-metrics-scraper-c85578d8-tzlx5 1/1 Running 1 3h38m
kubernetes-dashboard kubernetes-dashboard-7db476d994-wv54h 1/1 Running 30 3h38m