CentOS8安装docker及CentOS7安装k8s

257 阅读3分钟

CentOS8安装docker及CentOS7安装k8s 1.CentOS8安装docker 依次执行以下命令 //先移除旧版docker

  1. yum remove docker \
  2. docker‐client \
  3. docker‐client‐latest \
  4. docker‐common \
  5. docker‐latest \
  6. docker‐latest‐logrotate \
  7. docker‐logrotate \
  8. docker‐engine
  9. yum update //安装更新大概250M
  10. dnf install download.docker.com/linux/cento… kages/containerd.io‐1.2.6‐3.3.el7.x86_64.rpm
  11. yum install ‐y yum‐utils device‐mapper‐persistent‐data lvm2
  12. yum‐config‐manager ‐‐add‐repo download.docker.com/linux/cento s/docker‐ce.repo
  13. yum install docker‐ce docker‐ce‐cli containerd.io
  14. systemctl start docker
  15. systemctl enable docker

image.png

image.png

image.png

image.png

image.png

image.png

查看docker版本 docker ‐v

image.png

CentOS7安装k8s*

首先准备两台机器:k8s-master、k8s-node1、k8s-node2

  1. yum update //耗时
  2. yum ‐y install epel‐release
  3. systemctl stop firewalld
  4. systemctl disable firewalld
  5. setenforce 0
  6. yum ‐y install etcd kubernetes‐master
  7. vi /etc/etcd/etcd.conf
  8. vi /etc/kubernetes/apiserver
  9. for SERVICES in etcd kube‐apiserver kube‐controller‐manager kube‐schedule
  10. r; do systemctl restart SERVICES;systemctlenableSERVICES;systemctl enable SERVICES;systemctl stat
  11. us $SERVICES ; doneer
  12. etcdctl mk /atomic.io/network/config '{"Network":"172.17.0.0/16"}'

node节点命令:(vi 内容最下面)

  1. yum update //耗时
  2. yum ‐y install epel‐release
  3. systemctl stop firewalld
  4. systemctl disable firewalld
  5. setenforce 0
  6. yum ‐y install flannel kubernetes‐node
  7. vi /etc/sysconfig/flanneld
  8. vi /etc/kubernetes/config
  9. vi /etc/kubernetes/kubelet
  10. for SERVICES in kube‐proxy kubelet docker flanneld;do systemctl restart

SERVICES;systemctlenableSERVICES;systemctl enable SERVICES;systemctl status $SERVICES; done vi /etc/etcd/etcd.conf

  1. #[Member]
  2. #ETCD_CORS=""
  3. ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
  4. #ETCD_WAL_DIR=""
  5. #ETCD_LISTEN_PEER_URLS="http://localhost:2380"
  6. ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" //此处IP改为0.0.0.0
  7. #ETCD_MAX_SNAPSHOTS="5"
  8. #ETCD_MAX_WALS="5"
  9. ETCD_NAME="default"
  10. #ETCD_SNAPSHOT_COUNT="100000"
  11. #ETCD_HEARTBEAT_INTERVAL="100"
  12. #ETCD_ELECTION_TIMEOUT="1000"
  13. #ETCD_QUOTA_BACKEND_BYTES="0"
  14. #ETCD_MAX_REQUEST_BYTES="1572864"
  15. #ETCD_GRPC_KEEPALIVE_MIN_TIME="5s"
  16. #ETCD_GRPC_KEEPALIVE_INTERVAL="2h0m0s"
  17. #ETCD_GRPC_KEEPALIVE_TIMEOUT="20s"
  18. #[Clustering]
  19. #ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380"
  20. ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"
  21. #ETCD_DISCOVERY=""
  22. #ETCD_DISCOVERY_FALLBACK="proxy"
  23. #ETCD_DISCOVERY_PROXY=""
  24. #ETCD_DISCOVERY_SRV=""
  25. #ETCD_INITIAL_CLUSTER="default=http://localhost:2380"
  26. #ETCD_INITIAL_CLUSTER_TOKEN="etcd‐cluster"
  27. #ETCD_INITIAL_CLUSTER_STATE="new"
  28. #ETCD_STRICT_RECONFIG_CHECK="true"
  29. #ETCD_ENABLE_V2="true"
  30. #[Proxy]
  31. #ETCD_PROXY="off"
  32. #ETCD_PROXY_FAILURE_WAIT="5000"
  33. #ETCD_PROXY_REFRESH_INTERVAL="30000"
  34. #ETCD_PROXY_DIAL_TIMEOUT="1000"
  35. #ETCD_PROXY_WRITE_TIMEOUT="5000"
  36. #ETCD_PROXY_READ_TIMEOUT="0"
  37. #[Security]
  38. #ETCD_CERT_FILE=""
  39. #ETCD_KEY_FILE=""
  40. #ETCD_CLIENT_CERT_AUTH="false"
  41. #ETCD_TRUSTED_CA_FILE=""
  42. #ETCD_AUTO_TLS="false"
  43. #ETCD_PEER_CERT_FILE=""
  44. #ETCD_PEER_KEY_FILE=""
  45. #ETCD_PEER_CLIENT_CERT_AUTH="false"
  46. #ETCD_PEER_TRUSTED_CA_FILE=""
  47. #ETCD_PEER_AUTO_TLS="false"
  48. #[Logging]
  49. #ETCD_DEBUG="false"
  50. #ETCD_LOG_PACKAGE_LEVELS=""
  51. #ETCD_LOG_OUTPUT="default"
  52. #[Unsafe]
  53. #ETCD_FORCE_NEW_CLUSTER="false"
  54. #[Version]
  55. #ETCD_VERSION="false"
  56. #ETCD_AUTO_COMPACTION_RETENTION="0"
  57. #[Profiling]
  58. #ETCD_ENABLE_PPROF="false"
  59. #ETCD_METRICS="basic"
  60. #[Auth]
  61. #ETCD_AUTH_TOKEN="simple"

vi /etc/kubernetes/apiserver

  1. kubernetes system config

  2. The following values are used to configure the kube‐apiserver

  3. The address on the local server to listen to.

  4. KUBE_API_ADDRESS="‐‐insecure‐bind‐address=0.0.0.0" //修改此处为0.0.0.0
  5. The port on the local server to listen on.

  6. KUBE_API_PORT="‐‐port=8080"
  7. Port minions listen on

  8. KUBELET_PORT="‐‐kubelet‐port=10250"
  9. Comma separated list of nodes in the etcd cluster

  10. KUBE_ETCD_SERVERS="‐‐etcd‐servers=http://127.0.0.1:2379"
  11. Address range to use for services

  12. KUBE_SERVICE_ADDRESSES="‐‐service‐cluster‐ip‐range=10.254.0.0/16"
  13. default admission control policies

  14. KUBE_ADMISSION_CONTROL="‐‐admission‐control=NamespaceLifecycle,Namespace
  15. Exists,LimitRanger,SecurityContextDeny,ResourceQuota"
  16. Add your own!

  17. KUBE_API_ARGS=""

vi /etc/sysconfig/flanneld

  1. Flanneld configuration options

  2. etcd url location. Point this to the server where etcd runs

  3. FLANNEL_ETCD_ENDPOINTS="http://192.168.146.135:2379" //此处为master节点ip
  4. etcd config key. This is the configuration key that flannel queries

  5. For address range assignment

  6. FLANNEL_ETCD_PREFIX="/atomic.io/network"
  7. Any additional options that you want to pass

  8. #FLANNEL_OPTIONS=""

vi /etc/kubernetes/config

  1. kubernetes system config

  2. The following values are used to configure various aspects of all

  3. kubernetes services, including

  4. kube‐apiserver.service

  5. kube‐controller‐manager.service

  6. kube‐scheduler.service

  7. kubelet.service

  8. kube‐proxy.service

  9. logging to stderr means we get it in the systemd journal

  10. KUBE_LOGTOSTDERR="‐‐logtostderr=true"
  11. journal message level, 0 is debug

  12. KUBE_LOG_LEVEL="‐‐v=0"
  13. Should this cluster be allowed to run privileged docker containers

  14. KUBE_ALLOW_PRIV="‐‐allow‐privileged=false"
  15. How the controller‐manager, scheduler, and proxy find the apiserver

  16. KUBE_MASTER="‐‐master=http://192.168.146.135:8080" //master节点IP

vi /etc/kubernetes/kubelet

  1. kubernetes kubelet (minion) config

  2. The address for the info server to serve on (set to 0.0.0.0 or "" for a

  3. ll interfaces)
  4. KUBELET_ADDRESS="‐‐address=0.0.0.0" //改为0.0.0.0
  5. The port for the info server to serve on

  6. KUBELET_PORT="‐‐port=10250"
  7. You may leave this blank to use the actual hostname

  8. KUBELET_HOSTNAME="‐‐hostname‐override=192.168.146.136" //改为node节点ip
  9. location of the api‐server

  10. KUBELET_API_SERVER="‐‐api‐servers=http://192.168.146.135:8080" //master节
  11. 点ip
  12. pod infrastructure container

  13. KUBELET_POD_INFRA_CONTAINER="‐‐pod‐infra‐container‐image=registry.acces
  14. s.redhat.com/rhel7/pod‐infrastructure:latest"
  15. Add your own!

  16. KUBELET_ARGS=""

测试:

  1. //ip135的master节点输入
  2. kubectl get nodes

注意:所有"//"注释内容都需要删掉,"#"不需要删 master机器命令:(vi 内容最下面)

image.png