【k8s】从0开始安装k8s

物理机安装CentOS

1.制作启动盘

2.物理机启动按DELETE键进入BIOS

3.按右方向键 --> 选择boot,最下面选择Hard Drive BBS Priorities,选择#2选择U盘

4.F10保存,后会重启

5.进入安装界面,。。。,安装完成,点击按钮reboot

6.物理机启动按DELETE键进入BIOS

7.按右方向键 --> 选择boot,最下面选择Hard Drive BBS Priorities,刚刚选择U盘的改为disable

8.F10保存,后会重启进入已经安装好的CentOS,就可以开始使用了。

初始配置CentOS

设置主机名

hostnamectl set-hostname k8s-master

vi /etc/hosts

配置网络

vi /etc/sysconfig/network-scripts/ifcfg-ens192
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens192"
DEVICE="ens192"
ONBOOT="yes"
IPADDR=""
PREFIX="22"
GATEWAY=""
DNS1=""
IPV6_PRIVACY="no"
HWADDR=

关闭防火墙

首先执行临时关闭指令:
$ systemctl stop firewalld.service
然后执行永久关闭指令:(记得一定要执行永久指令)
$ systemctl disable firewalld.service
关闭之后查看是否关闭成功:
$ firewall-cmd  --state
显示not running 即为关闭成功

关闭swap

swapoff -a //临时关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab  #永久

时间同步

yum install ntpdate -y
ntpdate -u ntp.api.bz

安装docker

yum install wget

# 安装aliyun的yum源
wget https://mirror.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

yum install -y docker-ce-18.06.1.ce-3.el7

systemctl enable docker && systemctl start docker

docker --version


cat>>/etc/docker/daemon.json<<EOF
{
    "registry-mirrors":["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF

systemctl restart docker

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

yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
systemctl enable kubelet

修改文件 /etc/docker/daemon.json
添加"exec-opts": ["native.cgroupdriver=systemd"]
cat>>/etc/sysctl.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
systemctl daemon-reload
systemctl restart docker
docker info | grep Cgroup



kubeadm init \
--apiserver-advertise-address=192.168.31.21(当前主机ip) \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.0 \
--service-cidr=10.244.0.0/16(不能与已有的网络段重复,注意/16与前面的x.x.0.0匹配) \
--pod-network-cidr=10.96.0.0/16(不能与已有的网络段重复,注意/16与前面的x.x.0.0匹配)

[root@bigdata89 ~]# kubeadm init --apiserver-advertise-address=192.168.31.21 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.244.0.0/16 --pod-network-cidr=10.96.0.0/16



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

kubectl get nodes

安装网络插件

flannel(未安装成功)

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubectl apply -f kube-flannel.yml

kubectl get pods -n kube-system


calico(使用这个安装成功)

官网安装过程,垃圾,没成功
#kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
#kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml

cat>custom-resources.yaml<<EOF
# This section includes base Calico installation configuration.
# For more information, see: https://docs.projectcalico.org/v3.18/reference/installation/api#operator.tigera.io/v1.Installation
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
  name: calico01
spec:
  # Configures Calico networking.
  calicoNetwork:
    # Note: The ipPools section cannot be modified post-install.
    ipPools:
    - blockSize: 26
      cidr: 10.96.0.0/16
      encapsulation: VXLANCrossSubnet
      natOutgoing: Enabled
      nodeSelector: all()
EOF

成功安装calico

成功安装calico
wget https://docs.projectcalico.org/manifests/calico.yaml

kubectl apply -f calico.yaml
 
[root@k8s-master ~]# kubectl get pods --all-namespaces
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-65d7476764-fsx8r   1/1     Running   0          17s
kube-system   calico-node-46x4x                          1/1     Running   0          17s
kube-system   coredns-7ff77c879f-fqklv                   1/1     Running   0          43m
kube-system   coredns-7ff77c879f-h6zm6                   1/1     Running   0          43m
kube-system   etcd-k8s-master                            1/1     Running   0          43m
kube-system   kube-apiserver-k8s-master                  1/1     Running   0          43m
kube-system   kube-controller-manager-k8s-master         1/1     Running   0          43m
kube-system   kube-proxy-gjzlt                           1/1     Running   0          43m
kube-system   kube-scheduler-k8s-master                  1/1     Running   0          43m

测试

允许master节点部署pod
kubectl taint nodes --all node-role.kubernetes.io/master-
如果不允许调度
kubectl taint nodes master1 node-role.kubernetes.io/master=:NoSchedule
污点可选参数
	  NoSchedule: 一定不能被调度
      PreferNoSchedule: 尽量不要调度
      NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod


kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
[root@k8s-master ~]# kubectl get pod,svc
NAME                        READY   STATUS    RESTARTS   AGE
pod/nginx-f89759699-79vs8   1/1     Running   0          3m22s

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.244.0.1      <none>        443/TCP        49m
service/nginx        NodePort    10.244.88.178   <none>        80:31737/TCP   3m10s
[root@k8s-master ~]# kubectl get pods -o wide
NAME                    READY   STATUS    RESTARTS   AGE     IP              NODE         NOMINATED NODE   READINESS GATES
nginx-f89759699-79vs8   1/1     Running   0          5m12s   10.96.235.196   k8s-master   <none>           <none>

[root@k8s-master ~]# curl 10.96.235.196
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@k8s-master ~]# 

浏览器访问http://192.168.31.21:31737/


停止k8s

CMD=stop
systemctl $CMD etcd
echo "---------- $CMD: kube-apiserver --------"
systemctl $CMD kube-apiserver
echo "---------- $CMD: kube-controller-manager --------"
systemctl $CMD kube-controller-manager
echo "---------- $CMD: kube-scheduler --------"
systemctl $CMD kube-scheduler
echo "---------- $CMD: kubelet--------"
systemctl $CMD kubelet
echo "---------- $CMD: kube-proxy--------"
systemctl $CMD kube-proxy

命令

查看pods

kubectl get pods --all-namespaces
kubectl get pods -A
kubectl get pods -n kube-system
kubectl get pods -o wide

安装插件

kubectl apply -f xxx.yml
kubectl create -f xxx.yml

删除插件

kubectl delete -f xxx.yml

查看pod描述

kubectl describe pod pod名称 -n kube-system(namespace名称)
kubectl describe pod calico-node-46x4x -n kube-system
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值