centos7_x64   内存4G+ cpu2核

k8s_server 192.168.10.16  k8s1

k8s_client  192.168.10.14  k8s2

Master(管理节点)

API Server:供Kubernetes API接口,主要处理 Rest操作以及更新Etcd中的对象。所有资源增删改查的唯一入口。

Scheduler:绑定Pod到Node上,资源调度。

Controller Manager: 所有其他群集级别的功能,目前由控制器Manager执行。资源对象的 自动化控制中心。

Etcd:所有持久化的状态信息存储在Etcd中

Node(计算节点)

Kubelet:管理Pods以及容器、镜像、Volume等,实现对集群 对节点的管理

Kube-proxy:提供网络代理以及负载均衡,实现与Service通讯

kubeadm:引导集群的命令

kubelet:集群中运行任务的代理程序

kubectl:命令行管理工具

实验软件

kube-flannel.yml

recommended.yaml

软件安装

cp -pv /etc/sysctl.conf  /etc/sysctl.conf.bak   k8s1/k8s2操作

echo net.ipv4.tcp_syncookies = 1 >> /etc/sysctl.conf

echo net.ipv4.tcp_tw_reuse = 1 >> /etc/sysctl.conf

echo net.ipv4.tcp_tw_recycle = 1 >> /etc/sysctl.conf

echo net.ipv4.tcp_fin_timeout = 30 >> /etc/sysctl.conf

echo "vm.max_map_count=262144"  >>  /etc/sysctl.conf

sysctl -p

hostnamectl set-hostname     k8s1/k8s2 操作

echo > /etc/hosts

echo 192.168.10.15 k8s1 >   /etc/hosts

echo 192.168.10.14 k8s2 >> /etc/hosts

echo SELINUX=disabled > /etc/sysconfig/selinux        k8s1/k8s2操作

systemctl stop firewalld && systemctl disable firewalld

systemctl start ntpd && systemctl enable ntpd

ntpdate ntp.aliyun.com && hwclock  -w

swapoff  -a &&  cp -pv /etc/fstab /etc/fstab.bak    k8s1/k82操作

sed -i 's/UUID=b34/#UUID=b34/g' /etc/fstab

modprobe br_netfilter         k8s1/k8s2操作

sh -c 'echo "br_netfilter" > /etc/modules-load.d/br_netfilter.conf'

lsmod|grep br_netfilter

br_netfilter        22248  0

bridge                107106  1 br_netfilter

touch /etc/sysctl.d/k8s.conf

echo net.bridge.bridge-nf-call-ip6tables = 1  >> /etc/sysctl.d/k8s.conf

echo net.bridge.bridge-nf-call-iptables = 1   >> /etc/sysctl.d/k8s.conf

echo 1 > /proc/sys/net/ipv4/ip_forward     k8s1/k8s2操作

scp -pr /etc/yum.repos.d/{docker-ce.repo,kubernetes.repo}  root@192.168.10.14:/etc/yum.repos.d/

yum install -y   yum-utils   net-tools   bridge-utils   device-mapper-persistent-data     docker-ce-18.06.3.ce

yum install -y   kubelet-1.15.0  kubectl-1.15.0  kubeadm-1.15.0           k8s1/k8s操作   kubectl-1.15.0指定版本下载

cp -pv /usr/lib/systemd/system/docker.service /usr/lib/systemd/system/docker.service.bak 

ExecStart=/usr/bin/dockerd  --exec-opt native.cgroupdriver=systemd

docker info | grep systemd

Cgroup Driver: systemd

cp -pv /etc/sysconfig/kubelet /etc/sysconfig/kubelet.bak

echo KUBELET_EXTRA_ARGS="--fail-swap-on=false" > /etc/sysconfig/kubelet    k8s1/k8s2操作

systemctl daemon-reload  &&  systemctl enable docker && systemctl start docker  k8s1/k8s操作

systemctl daemon-reload  &&  systemctl enable kubelet

docker --version &&  kubelet --version

Docker version 18.06.1-ce, build e68fc7a

Kubernetes v1.15.0

touch /root/pullk8s.sh  && chmod +x /root/pullk8s.sh   拉取镜像 k8s1操作 可选操作

cat /root/pullk8s.sh &&  sh /root/pullk8s.sh

#!/bin/bash

images=(

kube-apiserver:v1.15.0

kube-controller-manager:v1.15.0

kube-scheduler:v1.15.0

kube-proxy:v1.15.0

etcd:3.3.10

coredns:1.3.1

pause:3.1

)

for imageName in ${images[@]} ; do

docker pull registry.aliyuncs.com/google_containers/$imageName
    
    docker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
    
    docker rmi registry.aliyuncs.com/google_containers/$imageName
    
done

kubeadm init  \

--apiserver-advertise-address=192.168.10.15 \

--image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers  \

--kubernetes-version v1.15.0  \

--service-cidr=10.1.0.0/16  \

--pod-network-cidr=10.244.0.0/16                  k8s1 服务端初始化

kubeadm reset    从新初始化

kubectl get cs   查看群集状态

kubectl get pod

kubeadm join 192.168.10.15:6443 --token fm5nxe.u0sn7lom0fwk65b7   生成群集令牌环

--discovery-token-ca-cert-hash sha256:2e833f2f489a0a6029548566f5155db899944de860c901d4aa6ce792f836af93

kubeadm token create --print-join-command     忘记令牌环可以使用此命令

kubeadm join 192.168.10.15:6443 --token xrhyq0.viahks9tnuufsbfy

--discovery-token-ca-cert-hash sha256:14cae1d7dda1602ea3a8af42b970a6999058b8e1939b8036be71e3533615ebcd

mkdir -p $HOME/.kube  &&  cp -i   /etc/kubernetes/admin.conf $HOME/.kube/config   k8s1操作

cp -pv /etc/profile    /etc/profile.bak    k8s1/k8s2操作

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile  &&   source /etc/profile

kubectl get nodes

NAME   STATUS     ROLES    AGE     VERSION

k8s1   NotReady   master   4m26s   v1.15.0

k8s2   NotReady   worker   39s        v1.15.0

k8s配置网络

docker pull lizhenliang/flannel:v0.11.0-amd64          k8s1/k8s2操作

docker save lizhenliang/flannel:v0.11.0-amd64 > /root/flannel.tar.gz     导出flannel镜像

docker load  < /root/flannel.tar.gz                                                                导入flannel镜像

kubectl apply -f /etc/kubernetes/kube-flannel.yml

daemonset.apps/kube-flannel-ds-amd64 created

daemonset.apps/kube-flannel-ds-arm64 created

cat /run/flannel/subnet.env

FLANNEL_NETWORK=10.244.0.0/16

FLANNEL_SUBNET=10.11.0.1/24

FLANNEL_MTU=1450

FLANNEL_IPMASQ=true     k8s1/k8s2操作

ip addr | grep docker  &&  ip addr | grep flannel

docker0:

inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0

flannel.1:

inet 10.11.0.0/32 scope global flannel.1               k8s1/k8s2操作

k8s创建pod

kubectl create deployment nginx --image=nginx     k8s1操作

kubectl expose deployment nginx --port=80 --target-port=80   --type=NodePort

kubectl get svc

NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE

nginx        NodePort    10.1.240.181   <none>        80:32418/TCP   19m

kubectl edit svc nginx   修改运行nginx服务

kubectl  get pods  查看运行pod

NAME                     READY   STATUS        RESTARTS   AGE

nginx-554b9c67f9-l78mn   1/1     Runing   0          15h

kubectl  delete pods  nginx-554b9c67f9-l78mn      删除pod

kubectl get deployments   查看运行控制器

NAME    READY   UP-TO-DATE   AVAILABLE   AGE

nginx   0/1     1            0           15h

kubectl logs -f  pod-name                                                        查看pod日志

kubectl exec -it nginx-554b9c67f9-l78mn  ls /                         pod外部执行命令

kubectl cp nginx-554b9c67f9-l78mn x:/etc/hosts ./hosts        容器拷贝文件到物理机

kubectl cp hosts nginx-554b9c67f9-l78mn :/tmp/hosts          物理机拷贝文件到容器

http://k8s1ip:32418/

k8s控制台

cp -pv recommended.yaml recommended.yaml.bak

spec:

type: NodePort         添加配置

ports:

- port: 443

targetPort: 8443

kubectl apply -f recommended.yaml

kubectl get svc -n kubernetes-dashboard

NAME                        TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)         AGE

kubernetes-dashboard        NodePort    10.1.78.212   <none>        443:30988/TCP   11s

kubectl create serviceaccount dashboard-admin -n kube-system  创建管理用户

kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin  --serviceaccount=kube-system:dashboard-admin    绑定为群集管理员

kubectl get secrets -n kube-system | grep dashboard-admin  获取Token

dashboard-admin-token-ktz88

kubectl describe secrets -n kube-system   dashboard-admin-token-ktz88

https://k8s1ip:30988

ps aux | grep docker

root      10285  1.5  1.7 485556 50916 ?        Ssl  23:31   0:00 /usr/bin/dockerd --exec-opt native.cgroupdriver=systemd

root      10292  1.2  0.8 327152 25224 ?        Ssl  23:31   0:00 docker-containerd --config /var/run/docker/containerd/containerd.toml

root      10419  0.0  0.0 112808   968 pts/1    S+   23:31   0:00 grep --color=auto docker

lsof -i:10250

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

kubelet 11055 root   15u  IPv6 112547      0t0  TCP *:10250 (LISTEN)

lsof -i:6443

COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

kube-apis 41905 root    7u  IPv6 259024      0t0  TCP *:sun-sr-https (LISTEN)

kube-apis 41905 root   80u  IPv6 260793      0t0  TCP k8s1:sun-sr-https->k8s1:44312 (ESTABLISHED)

转载地址:https://blog.51cto.com/mailfile/2525878

kubernetes+docker相关推荐

  1. 130 道 Kubernetes + Docker + DevOps 大厂面试题及知识点详解

    最近,各大互联网巨头在技术战略层面,都把云原生列为了主要发展方向.以阿里巴巴为例,他们技术老大说,云原生是云计算释放红利的最短路径,是企业数字化的最短路径. 现在云原生工程师.Kubernetes 工 ...

  2. VituralBox从零搭建基于CentOS 7(64位)的Kubernetes+docker集群

    VituralBox从零搭建基于CentOS 7(64位)的Kubernetes+docker集群 1. 下载CentOS 7官方minimal镜像 2. 安装VituralBox(Windows 1 ...

  3. 如何在CentOS 7上安装Kubernetes Docker群集

    如何在CentOS 7上安装Kubernetes Docker群集 Kubernetes是一个开源平台,用于管理由Google开发的容器化应用程序.它允许您在集群环境中管理,扩展和自动部署容器化应用程 ...

  4. kubernetes+docker安装及部署服务

    kubernetes+docker安装及部署服务 参考文章: kubernetes详细介绍 kubernetes官网 1.安装docker(安装过的跳过此步骤) https://blog.csdn.n ...

  5. Kubernetes Docker 容器网络终极之战(十四)

    与 Docker 默认的网络模型不同,Kubernetes 形成了一套自己的网络模型,该网络模型更加适应传统的网络模式,应用能够平滑的从非容器环境迁移到 Kubernetes 环境中. 自从 Dock ...

  6. NETGEAR拒绝连接请求_破案:Kubernetes/Docker 上无法解释的连接超时

    编译:bot(才云) 技术校对:星空下的文仔(才云) 编者按:将应用迁移到 Kubernetes 时,有时候工程师们会发现一些令人费解的连接超时,无论怎么排查都找不到原因.在这篇文章中,软件架构师 M ...

  7. 【Kubernetes/docker】生成docker镜像推送到hub并在Kubernetes部署应用-20220407

    生成docker镜像推送到hub 参考https://blog.csdn.net/boonya/article/details/74906927 在本地登录docker docker login do ...

  8. Jenkins+Kubernetes+Docker实现微服务持续集成

    nfs添加共享目录 cat /etc/exports /opt/nfs/jenkins *(rw,no_root_squash) /opt/nfs/maven *(rw,no_root_squash) ...

  9. 选择 podman 的理由, 以及它和 Kubernetes , Docker 的区别

    一.podman 是什么 官方网站: podman.io 官方自己的介绍: https://podman.io/whatis.html 名称 podman ,官方说明是 Pod Manager , 所 ...

最新文章

  1. 中国电子学会scratch等级考试四级编程题:找出出现次数最多的数字
  2. springmvc json 406
  3. 关于临时表和表变量的差别1
  4. ora-14400插入的分区关键字未映射到任何分区---oracle数据库表过期问题
  5. LeetCode 696. Count Binary Substrings
  6. STM32 - 定时器的设定 - 基础- 02 - Capture/compare channels 和相关设置寄存器 - 和STM32缩写词条解释
  7. 设置超链接在各种状态改变的样式颜色
  8. python save保存图片到本地_python爬取网站上的图片并保存到本地
  9. 此内容不能显示在一个框架中_.NET开发框架(二)框架功能简述
  10. 集团进口煤炭行业经历“冰火两重天”说明了啥?
  11. 数据分析案例 |【01】电影数据分析
  12. mysql routines是什么_MySQL入门:Stored Routines 的变数与流程 - Break易站
  13. 典型相关分析及相关知识
  14. VRP远程管理(华为设备telnet登录密码配置与测试环境搭建)——在物理机上创建回环网卡及eNSP模拟器与物理机实现连接通信
  15. 科普博客:摩尔定律和安迪-比尔定律
  16. java.lang.NoClassDefFoundError: org/jdom2/JDOMException
  17. 未来的计算机 展望未来作文,展望未来作文(通用10篇)
  18. 关于Blurry无法加载的问题
  19. 对某邮件盗号诈骗团队的追踪分析和研究
  20. 2019,推荐几个牛逼大佬的公号

热门文章

  1. jQuey/js 省市县三级下拉框联动的回显(简单易懂)
  2. vuedraggable嵌套块拖拽_Vue 基于 vuedraggable 实现选中、拖拽、排序效果
  3. AOP五大通知注解详解
  4. eclipse拒绝mysql,eclipse连接mysql的有关问题
  5. python绘制基因结构图_Python调用graphviz绘制结构化图形网络示例
  6. 《JavaScript高效图形编程(修订版)》——6.7 画布绘制基础
  7. Mysql ERROR 2002 (HY000) Can't connect to local MySQL server through socket
  8. Android短信彩信收发流程(应用层)
  9. C# NameValueCollection
  10. 学习STP的一些总结